2013-01-22 34 views
11

Tôi đang cố gắng tìm một cronjob được tạo để đảm bảo rằng tập lệnh không trùng lặp với cronjob chính xác.Tìm kiếm cronjob bằng crontab -l

Tôi đã cố gắng sử dụng một cái gì đó dọc theo những dòng nhưng đã không có nhiều may mắn:

if ! crontab -l | xargs grep -l '/var/www/arix/update.php'; then 
    echo "Cronjob already exists" 
else 
    echo "Cronjob doesn't exist" 
fi 
+0

Điều gì đã xảy ra sau khi bạn thực hiện các dòng này? –

+0

bạn không cần xarg. và tại sao bạn muốn 'grep -l'? có lẽ chỉ là 'nếu! crontab -l | grep -q '....'; sau đó' sẽ hoạt động. Cuối cùng, để gỡ rối tình huống, hãy thi hành phần tử bên trong, sau đó gắn thêm phần tiếp theo, tức là 'crontab -l' (nó tạo ra kết quả bạn mong đợi?) Thì' crontab -l | ... '. Chúc may mắn. – shellter

Trả lời

22

/var/spool/cron/crontabs là thư mục mẹ thường cho các tập tin crontab. Có những tập tin có tên của người dùng - ví dụ như root là crontab gốc. Có một tiềm năng cho mọi người dùng trên hệ thống đã sử dụng crontab -e và tạo ra crontab của riêng mình.

Dưới root bạn có thể:

cd /var/spool/cron/crontabs 
grep 'search string' * 

Lệnh này (như root) sẽ cho bạn biết những gì người dùng của crontab có chuỗi. Và nếu nó tồn tại. Nếu bạn chắc chắn rằng đó là nơi tốt nhất để kiểm tra:

crontab -l | grep -q 'search string' && echo 'entry exists' || echo 'entry does not exist' 
+1

Đã hoạt động! Cảm ơn bạn. Tôi đã thay đổi thói quen để trông như sau và nó hoạt động khi cần thiết. nếu ! crontab -l | grep -q '/var/www/arix/update1.php'; sau đó echo "Cronjob không tồn tại" – user0000001

+3

Điều này làm việc hoàn hảo! Cảm ơn bạn!! – ChrisPrime

+0

Cảm ơn @ user0000001, đó là một cách hữu ích để định dạng nó. – Noumenon

Các vấn đề liên quan