2013-01-22 50 views
11

के साथ cronjob के लिए खोजें मैं एक cronjob खोजने की कोशिश कर रहा हूं जो यह सुनिश्चित करने के लिए बनाया गया था कि स्क्रिप्ट एक ही सटीक cronjob डुप्लिकेट नहीं करता है।crontab -l

मैं इन पंक्तियों के साथ कुछ का उपयोग करने की कोशिश कर दिया गया है, लेकिन बहुत किस्मत नहीं पड़ा है:

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

इन पंक्तियों को निष्पादित करने के बाद क्या हुआ? –

+0

आपको xargs की आवश्यकता नहीं है। और आप 'grep -l' क्यों चाहते हैं? शायद बस 'अगर! crontab -l | grep -q '....'; तो काम करना चाहिए। अंत में, स्थिति को डीबग करने के लिए, आंतरिक तत्व निष्पादित करें, फिर अगले भाग को जोड़ना, यानी 'crontab -l' (क्या वह आपके द्वारा अपेक्षित आउटपुट का उत्पादन करता है?) तो' crontab -l | ... '। सौभाग्य। – shellter

उत्तर

22

/var/spool/cron/crontabs crontab फ़ाइलों के लिए हमेशा की तरह मूल निर्देशिका है। वहां ऐसी फाइलें हैं जिनमें उपयोगकर्ताओं के नाम हैं - रूट रूट क्रोंटैब है, उदाहरण के लिए। सिस्टम पर हर उपयोगकर्ता के लिए crontab -e का उपयोग करने की क्षमता है और उसने अपना स्वयं का क्रॉन्टाब बनाया है।

जड़ आप कर सकते हैं के रूप में:

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

यह (रूट के रूप में) कमांड आपको बता देंगे क्या उपयोगकर्ता के crontab स्ट्रिंग है। और यदि यह मौजूद है।

आप यदि यदि आप सुनिश्चित क्या crontabs बातों में नहीं हैं इस करना होगा crontab -l केवल अपने crontab, उपयोगकर्ता जो वर्तमान में लॉग ऑन है में सामान देता है आप यह सुनिश्चित करें कि जाँच करने के लिए सबसे अच्छी जगह है कर रहे हैं:।।

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

यह काम किया! धन्यवाद। मैंने नियमित रूप से निम्नानुसार देखने के लिए बदल दिया और यह आवश्यकतानुसार काम किया। अगर ! crontab -l | grep -q '/var/www/arix/update1.php'; फिर गूंजें "क्रोनबॉज मौजूद नहीं है" – user0000001

+3

यह पूरी तरह से काम किया! धन्यवाद!! – ChrisPrime

+0

धन्यवाद @ user0000001, यह प्रारूपित करने का एक उपयोगी तरीका है। – Noumenon