कमांड चलाने का एक सरल तरीका क्या है, कहते हैं, अब से 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-schedule
gui का उपयोग करने का सुझाव दिया गया है , जो टर्मिनल में सभी कूड़ेदानों को टाइप करने की तुलना में बहुत अच्छा है (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
? यह "अनुचित" क्यों है?