जवाबों:
आप वर्तमान उपयोगकर्ताओं को इस तरह से crontab के निचले भाग में पंक्ति को प्रतिध्वनित कर सकते हैं:
#!/bin/bash
line="* * * * * /path/to/command"
(crontab -u userhere -l; echo "$line" ) | crontab -u userhere -
cron
जिसे बदल दिया गया था।
crontab
कि अगर उस उपयोगकर्ता के लिए अभी तक मौजूद नहीं है (?)
यदि आप अपने क्रेस्टैब में कोई मान संपादित करना चाहते हैं, तो आप निम्न के साथ कुछ कर सकते हैं:
$ crontab -l | sed -e 's/foo/bar/' | crontab -
स्पष्ट रूप से आपको अपने प्रतिस्थापन के साथ सावधान रहने की आवश्यकता है यह सुनिश्चित करने के लिए कि यह केवल उस रेखा से मेल खाता है जिसे आप बदलना चाहते हैं; अन्यथा सभी foos
को bars
इस उदाहरण में बदल दिया गया है ।
इस पद्धति का लाभ यह है कि आप पूरे कॉन्टैब की जगह नहीं ले रहे हैं। (एक स्लेजहेमर के बजाय एक रूपक चिमटी।)
आप sed के बजाय किसी भी एडिटिंग कमांड का उपयोग कर सकते हैं । उदाहरण के लिए, यदि आप एक पंक्ति को छूने के लिए एड का उपयोग करना चाहते हैं जो इस तरह दिखना शुरू करता है:
2 * * * * /sbin/flitch --days 3,4 > /var/log/flitch.out 2>&1
कहें कि यह लाइन कई लाइनों में से है या आपके पास अलग-अलग सिस्टम पर अपडेट करने के लिए कई अलग-अलग crontabs हैं और आप केवल यह जानते हैं कि आपकी लाइन उस शब्द के साथ एकमात्र लाइन होने जा रही flitch
है।
ऐसा लग सकता है:
$ cat /tmp/edscript
/flitch
s/3/9/
w
q
$ crontab -l > /tmp/out && ed /tmp/out < /tmp/edscript && crontab - < /tmp/out
$ crontab -l
...
2 * * 1 * /sbin/flitch --days 9,4 > /var/log/flitch.out 2>&1
...
अब मुझे यह स्वीकार करना चाहिए कि लगभग 100% समय सेड वही करेगा जो एड करेगा, लेकिन स्विस सेना के चाकू पर एक अतिरिक्त टूल रखना हमेशा अच्छा होता है। ^। ^