2013-01-22 15 views
11

Próbuję znaleźć cronjob, który został stworzony, aby upewnić się, że skrypt nie powiela dokładnie tego samego cronjob.Szukaj cronjob z crontab -l

Próbowałem użyć czegoś w tym kierunku, ale nie miał dużo szczęścia:

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

Co się stało po wykonaniu tych linii? –

+0

nie potrzebujesz xargs. i dlaczego chcesz "grep -l"? może po prostu "jeśli! crontab -l | grep -q '....'; wtedy "powinno działać. Na koniec, aby debugować sytuację, wykonaj wewnętrzny element, a następnie dołącz kolejną część, tj. 'Crontab -l' (czy to daje wynik, którego oczekujesz?), A następnie' crontab -l | ... '. Powodzenia. – shellter

Odpowiedz

22

/var/spool/cron/crontabs jest zwykle katalog nadrzędny dla plików crontab. Są tam pliki z nazwami użytkowników - root to na przykład root crontab. Istnieje możliwość, że każdy użytkownik systemu użyje crontab -e i utworzy własny crontab.

Jako root można:

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

To polecenie (jako root) powie, co ma crontab użytkownika ciąg. A jeśli istnieje.

Można by to zrobić, jeśli, jeśli nie jesteś pewien, co crontaby rzeczy są w crontab -l daje tylko rzeczy w crontab, użytkownik, który jest aktualnie zalogowany Jeżeli jesteś pewien, że jest to najlepsze miejsce do sprawdzenia:..

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

Udało się! Dziękuję Ci. Zmieniłem rutynę, aby wyglądać następująco i działało w razie potrzeby. gdyby ! crontab -l | grep -q '/var/www/arix/update1.php'; następnie echo "Cronjob nie istnieje" – user0000001

+3

To działało idealnie! Dziękuję Ci!! – ChrisPrime

+0

Dzięki @ user0000001, jest to przydatny sposób na sformatowanie. – Noumenon