Crontab -l में सब कुछ निष्क्रिय कैसे करें?


68

मैं बस सब कुछ रोकना चाहता हूं। पर सूचीबद्ध कुछ भी निष्पादित न करें crontab -l

जवाबों:


61

crontab -eफिर प्रत्येक पंक्ति पर टिप्पणी करें जिसे आप चलाना नहीं चाहते हैं #


133

सबसे पहले, कॉटैब का बैकअप लें:

crontab -l > my_cron_backup.txt

तो आप इसे खाली कर सकते हैं:

crontab -r

पुन: स्थापित करने हेतु:

crontab my_cron_backup.txt
crontab -l

2
/tmpदूषित होने पर यह विशेष रूप से सहायक होता है (और यदि आपका कॉर्ताब-ई उपयोग करता mktempहै /tmp
केविन ली

1
+1 अंत में, यह वही है जो मेरे लिए काम करता है। धन्यवाद
पवन

@alex यह स्वीकृत उत्तर होना चाहिए
लुइस फेरो

crontab -rजिसकी मुझे तलाश थी वह है। धन्यवाद !
forzagreen

64

क्या आपके पास रूट एक्सेस है? बस क्रोन को रोकें

sudo /etc/init.d/crond stop

फिर तैयार होने पर इसे पुनः आरंभ करें

sudo /etc/init.d/crond start

5
यह मान रहा है कि आप रूट सहित सभी उपयोगकर्ताओं के लिए कॉन्टैब को रोकना चाहते हैं। चयनित उत्तर, और कुब्जामैक का उत्तर यह केवल वर्तमान (वांछित) उपयोगकर्ता के लिए करेगा।
केविन के

हमारी क्रोन सेवा बंद कर दी गई थी। इसने हमें सही दिशा में यह जांचने के लिए इशारा किया कि क्या crond चल रहा था, और पुनः आरंभ करें।
पॉल

4
आप Ubuntu पर कर रहे हैं आप उपयोग कर सकते हैंsudo service cron stop
जोएल

1
डेबियन पर यह है /etc/init.d/cron stop
फहीम मीठा

2
@ फहीम पर डेबियन आजकल यह भी है service cron stop
स्टीफन किट

10

यदि आप vi को संपादक के रूप में उपयोग कर रहे हैं, तो बस :%s/^/#/कमांड मोड में प्रवेश करें। सभी लाइनों (%) में, यह हैश (#) के साथ लाइन (^) की शुरुआत को प्रतिस्थापित करता है।


यदि आप vi को डिफ़ॉल्ट संपादक के रूप में उपयोग नहीं कर रहे हैं, तो आप vi की तरह "बल" का उपयोग EDITOR=vi; crontab -eकर सकते हैं, और इससे ऊपर की चाल का उपयोग कर सकते हैं।
बेटलिस्टा

2
:%s/^#//
असहज

3

ऊपर के विकल्पों से खुश नहीं थे क्योंकि वे एक लाइनर नहीं थे।

निष्क्रिय करने के लिए crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab

सक्षम करने के लिए crontab -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab

उपयोग उदाहरण (यह दिखाने के लिए कि यह टिप्पणियों को अक्षम नहीं करता है)

$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh

$ crontab -l|perl -nle 's/^([^#])/# $1/;print'|crontab
$ crontab -l
# Comment
# 0 0 * * 0 /opt/something.sh

$ crontab -l|perl -nle 's/^#\s*([0-9*])/$1/;print'|crontab
$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh

आरएचईएल और एआईएक्स पर यह परीक्षण किया गया है, और स्थापित किए जाने की आवश्यकता के बिना बॉक्स से बाहर काम करना चाहिए


1
इसके अलावा cronjob crontab -l में विशिष्ट विवरण देख सकते हैं perl -nle 's / ^ # \ s * ([0-1 *]) / $ 1 /; प्रिंट अगर / .+mytexttofind.+/'
जेसन

क्या आप बता सकते हैं कि टिप्पणियां प्रभावित क्यों नहीं हुईं? उनका पता लगाने के लिए आप किस पैटर्न का उपयोग करते हैं?
शोपाजो डे एरियेरेज़

हम्म, डेबियन जेसी के तहत मुझे निम्नलिखित त्रुटि मिलती है crontab: usage error: file name must be specified for replace:। ऐसा लगता है कि आपको crontabबिना किसी पैरामीटर (जो replaceडिफ़ॉल्ट रूप से है) का उपयोग करते हुए एक फ़ाइल (?) निर्दिष्ट करनी होगी ।
14

2

मेरे सीमित परीक्षण में, शेल को / बिन / झूठे कार्यों पर सेट करना। आप अभी भी /opt/job.shअपने लॉग में निष्पादित होते देखेंगे , लेकिन यह एक noop होगा:

SHELL=/bin/false

*/1 * * * *    root  /some/job.sh

1

यूनिक्स / लिनक्स के किसी भी स्वाद में जो मुझे पता है:

mv /var/spool/cron  /var/spool/cron_is_disabled

इस:

  • सभी उपयोगकर्ताओं के crontabs अक्षम करता है
  • लेकिन सिस्टम / आदि / crontab (/etc/cron.daily। आदि) नहीं
  • एक रिबूट में बनी रहती है
  • एक लाइनर है, डुह :)

1

मुझे @segaps द्वारा प्रदान किए गए उत्तर से विचार मिला

निष्क्रिय करने के लिए:

crontab -l | awk '{print "# "$1}' | crontab

सक्षम करने के लिए:

crontab -l | cut -c 3- | crontab

सेगैप द्वारा प्रदान किए गए समाधान के साथ एकमात्र समस्या यह है कि यह नौकरियों को अनियंत्रित कर देगा, जो पहले से ही उपयोगकर्ता द्वारा टिप्पणी की गई है।


0

ऐसा करने के लिए, संपादक के रूप में नैनो का उपयोग करना:

sudo env EDITOR=nano crontab -e

फिर प्रत्येक पंक्ति पर टिप्पणी करें जिसे आप # के साथ नहीं चलाना चाहते

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.