2013-01-22 13 views
11

Komut dosyasının aynı cronjob kopyasını almamasını sağlamak için oluşturulmuş bir cronjob bulmaya çalışıyorum.crontab -l ile bir cronjob arayın

Ben bu satırlar boyunca bir şey kullanmak çalışıyordum ama çok şans olmadı:

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

Bu satırı yürüttükten sonra ne oldu? –

+0

xargs'a ihtiyacınız yok. ve neden grep-l'yi istiyorsun? belki sadece 'eğer! crontab -l | grep -q '....'; o zaman çalışmalı. Son olarak, durumu ayıklamak için, iç elemanı çalıştır, sonra bir sonraki parçayı ekleyelim, yani 'crontab -l' (beklediğiniz çıktıyı üretiyor mu?) Sonra 'crontab -l | ... ' İyi şanslar. – shellter

cevap

22

/var/spool/cron/crontabs crontab dosyaları için olağan üst dizinidir. Orada kullanıcı isimleri var dosyalar var - kök örneğin root crontab. Sistemdeki her kullanıcının crontab -e kullanması ve kendi crontab'ını yaratması için bir potansiyel var. yapabilirsiniz root olarak

: (root olarak)

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

Bu komutun dize neler kullanıcının crontab söyleyecektir. Ve eğer varsa.

sadece SİZİN crontab'ınıza, şu anda kaydedilir kullanıcı şeyler verir

sen şeyler vardır crontabs ne olduğundan emin değilseniz eğer bu yapacağını crontab -l Bunu kontrol için en iyi yerdir eminseniz:..

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

Çalıştı! Teşekkür ederim. Aşağıdaki gibi bakmak için rutin değiştirdim ve gerektiğinde çalıştı. Eğer ! crontab -l | grep -q '/var/www/arix/update1.php'; sonra echo "Cronjob yok" – user0000001

+3

Bu mükemmel çalıştı! Teşekkür ederim!! – ChrisPrime

+0

Teşekkür @ user0000001, biçimlendirmek için kullanışlı bir yol. – Noumenon