कमांड चलाने का एक सरल तरीका क्या है, कहते हैं, अब से 8 घंटे? मैं इस तरह से सोच सकता हूं:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
क्या अधिक "उचित" तरीका है?
कमांड चलाने का एक सरल तरीका क्या है, कहते हैं, अब से 8 घंटे? मैं इस तरह से सोच सकता हूं:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
क्या अधिक "उचित" तरीका है?
जवाबों:
आप atकमांड का उपयोग कर सकते हैं । atबाद में आदेश पर अमल। atउपयोगिता मानक इनपुट और उन्हें एक साथ समूह से आदेश पढ़ा जाएगा के रूप में एक पर नौकरी, बाद में निष्पादित किया जाना है।
आमतौर पर, atउबंटू में डिफ़ॉल्ट रूप से स्थापित किया जाता है, लेकिन यदि आपकी रिलीज़ में यह शामिल नहीं है, तो इसके माध्यम से इंस्टॉल करें:
sudo apt-get install at
अधिक जानकारी के लिए, विकल्प, उदाहरण और अन्य लोग उबंटू मैनपेज रिपोजिटरी देखते हैं
उदाहरण:
at now +8 hours -f ~/myscript.sh
आप सुविधाजनक शॉर्टहैंड का उपयोग कर सकते हैं, जैसे tomorrowया noon, जैसा कि अंदर
echo "tweet fore" | at teatime
चेतावनी: यह कमांड को पाइप के बाईं ओर तुरंत चलाएगालेकिन केवल इसका आउटपुट बाद में प्रस्तुत करेगा। उदाहरण यह भी दर्शाता है कि आप कार्यों को कैसे पाइप कर सकते हैंat। at -cजिस तरह से आप अनुसूचित कार्यों की जांच कर सकते हैं, जिसे आप उनकी संख्या के साथ आसानी से सूचीबद्ध कर सकते हैं:
at -c 3
at now +8 hours -f ~/myscript.sh
at 8:00एक निरपेक्ष समय पर कमांड को चलाना है, और batch"जब यह कंप्यूटर बेकार लग रहा है" के लिए
teatimeतो शाम 4 बजे होगा। कुछ कारणों से उस में नहीं उल्लेख किया गया है manpages.ubuntu.com/manpages/raring/man1/at.1posix.html लेकिन यह में है man atऔर यहाँ manpages.ubuntu.com/manpages/raring/en/man1/at.1.html ।
gpio write 8 1लेकिन इसे तुरंत निष्पादित किया गया।
हां, आप क्रॉन जॉब सेट कर सकते हैं।
उदाहरण के लिए, यदि अब समय 14:39:00 है और आज शुक्रवार है, तो 30 अगस्त, आप crontab -eकमांडो का उपयोग करके अपने crontab फ़ाइल में निम्नलिखित क्रॉन जॉब (8 घंटे के बाद निष्पादित करने के लिए) जोड़ सकते हैं :
39 22 30 8 5 /path/to/mycommand.sh
के बारे में अधिक:
crontabजब तक आप इसे हटाते हैं, तब तक कमांड आपके पास रहेगा। एक साल बाद, जब आप भूल गए हैं कि इसे वहां किसने और क्यों रखा है, तो आप अपने सिर को खरोंचते हुए छोड़ देंगे और सोचेंगे कि कमांड का क्या करना है।
के लिए Gnome-आधारित जीयूआई का उपयोग करें cron, atऔर जैसे:
CronHowto की शुरूआत में gnome-schedulegui का उपयोग करने का सुझाव दिया गया है , जो टर्मिनल में सभी कूड़ेदानों को टाइप करने की तुलना में बहुत अच्छा है (esp। "औसत" उबंटू उपयोगकर्ताओं के लिए जो "पावर" * nix / bsd उपयोगकर्ता नहीं हैं।)
अनुसूचित कार्य या चलाने के लिए एकता डैश (या अन्य एप्लिकेशन मेनू) का उपयोग करके इसे चलाएं gnome-schedule।
Gnome- आधारित उबंटू सिस्टम पर Gnome शेड्यूल किए गए कार्य टूल (सूक्ति-शेड्यूल पैकेज से) अनुप्रयोगों में -> सिस्टम टूल क्रोन का उपयोग करने के लिए संकेत के साथ एक ग्राफिकल इंटरफ़ेस प्रदान करता है। परियोजना की वेबसाइट http://gnome-schedule.sourceforge.net/ पर है ; सॉफ़्टवेयर सॉफ़्टवेयर केंद्र से या टाइप करके इंस्टॉल करने योग्य है
sudo apt-get install gnome-scheduleएक टर्मिनल में।
का उपयोग करते हुए gnome-schedule, अपने घर निर्देशिका में एक स्क्रिप्ट के लिए, "पर" एक नया कमांड विंडो के इस प्रकार का उपयोग कर सेट किया जाएगा:

मुझे यह पता चलने से पहले एक त्वरित और गंदे तरीके से ऐसा करने का पता चला at।
कहो कि आप अपनी स्क्रिप्ट दोपहर में चलाना चाहते हैं:
until [[ "$(date)" =~ "12:00:" ]]; do
sleep 10
done
./mycommand.sh
कहते हैं कि आप इसे कल दोपहर में चलाना चाहते हैं (आज मेरे लिए 24 नवंबर है):
until [[ "$(date)" =~ "25 12:00:" ]]; do
sleep 30
done
./mycommand.sh
अपडेट : थोड़ा बेहतर तरीका: केवल उन नंबरों का परीक्षण करें जिनके बारे में आप ध्यान रखते हैं date +FORMAT:
until [[ $(date +%H:%M) == 21:06 ]]; do
...
at, cronया किसी भी अन्य असली अनुसूचक आवेदन। टास्क शेड्यूलिंग कठिन है, और एक पहिया नहीं जिसे आपको फिर से स्थापित करना चाहिए।
at।
atहै कि इसकी नौकरियां एक रिबूट से बच जाएंगी।
nohup+sleep? यह "अनुचित" क्यों है?