मैं हर 30 मिनट में अपने उबंटू को फिर से शुरू करना चाहता हूं। क्या ऐसा करने के लिए कोई कमांड या चित्रमय तरीका है?
मैं हर 30 मिनट में अपने उबंटू को फिर से शुरू करना चाहता हूं। क्या ऐसा करने के लिए कोई कमांड या चित्रमय तरीका है?
जवाबों:
ऐसा करने का सबसे अच्छा तरीका इस बात पर निर्भर करेगा कि आप उबंटू को हर आधे घंटे में फिर से क्यों शुरू करना चाहते हैं।
इसलिए मैं आपको यह समझाने की सलाह देता हूं कि आप ऐसा क्यों करना चाहते हैं।
लोगों की मानें तो मशीन का उपयोग स्थानीय या दूरस्थ रूप से किया जा सकता है, यह बिना किसी चेतावनी के उबंटू को फिर से चालू करने से बचने के लिए सबसे अच्छा है। इसलिए, reboot
कमांड को शेड्यूल करने के बजाय , मैं कमांड को शेड्यूल करने की सलाह देता हूं shutdown
ताकि यह उपयोगकर्ता को चेतावनी दे।
5 मिनट पहले चेतावनी के साथ हर आधे घंटे में शटडाउन करने के लिए इसे इसमें जोड़ें /etc/crontab
:
#minute hour mday month wday user command
*/30 * * * * root shutdown -r +5
आपको वास्तव में मुट्ठी की रेखा को जोड़ना नहीं है, जो एक टिप्पणी है। मैंने इसे स्पष्टता के लिए शामिल किया है - ऐसा कुछ है जो पहले से ही है।
-r
) पांच मिनट बाद ( +5
) कमांड चलता है। यह हर आधे घंटे के निशान ( */30
) पर चलता है । देखें man cron
और man 5 crontab
।+5
परिवर्तन कब तक उन के बाद रिबूट की चेतावनी दी जा रही है करने के लिए कुछ और करने के लिए।0,30
अंडर मिनट भी काम करेगा, अगर आप इसे पसंद करते हैं। (इसी तरह, अगर यह हर 20 मिनट में होता है, तो आप लिख सकते हैं */20
या 0,20,40
)/sbin
है PATH
चर के शीर्ष के निकट निर्दिष्ट /etc/crontab
। अन्यथा, shutdown
(अंडर command
) के रूप में आमंत्रित किया जाएगा /sbin/shutdown
।यदि मशीन ऊपर है और उस समय चल रही है , तो कमांड हमेशा आधे घंटे के निशान पर चलेगी । इससे हर आधे घंटे में शटडाउन की घोषणा की जाएगी और घंटे के 5 मिनट और 35 मिनट पर प्रदर्शन किया जाएगा।
sudo shutdown -c
।shutdown
लेकिन समान रूप से लागू होगा यदि आप शेड्यूल कर रहे थे reboot
।) उस मामले में, कृपया अपनी विशिष्ट आवश्यकताओं को समझाने के लिए अपने प्रश्न को संपादित करें। (मैं इसके लिए सलाह anacron
दूंगा, लेकिन आपका समय अंतराल बहुत कम है।)आप इसे सेट करना चाह सकते हैं ताकि किसी व्यवस्थापक के लिए सभी स्वचालित रूप से निर्धारित रिबूट को निलंबित करना आसान हो:
#minute hour mday month wday user command
*/30 * * * * root [ -e /etc/noautoreboot ] || shutdown -r +5
यह शेड्यूल उसी तरह रिबूट करता है - हर आधे घंटे में, पांच मिनट की चेतावनी के साथ - सिवाय इसके कि यह रिबूट शेड्यूल नहीं करेगा यदि कोई फाइल noautoreboot
मौजूद है, जिसमें मौजूद है /etc
।
यह नियंत्रण फ़ाइल किसी व्यवस्थापक द्वारा बनाई जा सकती है:
sudo touch /etc/noautoreboot
इसे इसके साथ हटाया जा सकता है:
sudo rm /etc/noautoreboot
ध्यान दें कि यह फ़ाइल मौजूद है या नहीं , इसमें वह नहीं है, जो मायने रखता है।
यदि रिबूट शेड्यूल किया गया है और उपयोगकर्ताओं को चेतावनी दी जाती है, तो फ़ाइल बनाई जाती है, (तुरंत आगामी) रिबूट अभी भी होगा।
यह कैसे काम करता है? इसके लिए शॉर्टहैंड के रूप में शॉर्ट सर्किट -वैल्युएटेड या ऑपरेटर ( ||
) का उपयोग किया जाता है:
यदि
/etc/noautoreboot
मौजूद नहीं है, तो चलाएंshutdown -r +5
।
इस उत्तर बताते हैं कि कैसे शॉर्ट सर्किट और और या ऑपरेटरों प्रदर्शन कर सकते हैं if
- then
तर्क। एक संक्षिप्त, सहज और अत्यधिक अनौपचारिक व्याख्या के लिए, आप इस तरह से कमांड पढ़ सकते हैं:
/etc/noautoreboot
मौजूद! या, भागोshutdown -r +5
।
यह man [
देखने के लिए देखें कि परीक्षण कैसे किया जाता है।
मैं सत्र प्रबंधक को यह कहकर प्यार करता हूं कि हम रिबूट करना चाहते हैं। यह रूट अनुमतियों के बिना किया जा सकता है, और हमें एक अच्छी खिड़की मिलती है जो हमें चेतावनी देती है कि सिस्टम रिबूट किया जा रहा है -यदि हम चाहें तो रिबूट को रद्द कर सकते हैं।
gnome-schedule
उबंटू सॉफ्टवेयर सेंटर से इंस्टॉल करें । यदि आप कुछ अतिरिक्त स्थापित नहीं करना चाहते हैं, तो इसे टर्मिनल वे करें।
gnome-schedule
डैश से खोलें , एक नया दोहराया गया कार्य बनाएं और इन विकल्पों को सेट करें:
dbus-send --print-reply --dest="org.gnome.SessionManager" /org/gnome/SessionManager org.gnome.SessionManager.Reboot
अन्य विकल्पों को उनके डिफ़ॉल्ट मानों पर छोड़ दें। Add पर क्लिक करें ।
टर्मिनल से चलाएं:
crontab -e
इस पंक्ति को जोड़ें:
0,30 * * * * DISPLAY=:0 dbus-send --print-reply --dest="org.gnome.SessionManager" /org/gnome/SessionManager org.gnome.SessionManager.Reboot
बचा कर बाहर आ जाओ। मान लें कि आप nano
(डिफ़ॉल्ट एक) का उपयोग कर रहे हैं , Ctrl + o और Ctrl + x दबाएँ ।
कृपया ध्यान दें कि यदि आपका प्रदर्शन वास्तव में अलग है :0
, तो यह काम नहीं करेगा और यही कारण है कि यह विधि पसंद नहीं की जाती है। लेकिन, ईमानदारी से, यदि आप हर 30 मिनट में अपने कंप्यूटर को रिबूट कर रहे हैं, तो आपका प्रदर्शन हमेशा सबसे अधिक होगा :0
।
ऊपर बताई गई दोनों विधियां कुछ सूक्ति घटकों पर निर्भर करती हैं, दोनों को गनोम सत्र और एकता पर पाया गया। यदि आप इसे अन्य वातावरणों (जैसे कुबंटू के केडीई, कुबंटू के एलएक्सडीई ...) पर करना चाहते हैं, तो आप बेहतर तरीके से इसके बजाय कमांड को बदल सकते हैं:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
यह पुष्टि के लिए नहीं पूछेगा, और भीतर की ओर फिर से शुरू करेगा, लेकिन सभी वातावरणों पर काम करेगा, यह मानते हुए कि आपने मैन्युअल रूप से कंसोल कंसोल की स्थापना रद्द नहीं की है।
sudo crontab -e
कमांड लाइन से चलाएं और इस लाइन को फाइल में जोड़ें:
0,30 * * * * reboot
यह सिस्टम को reboot
हर 30 मिनट में रूट के रूप में चलाने के लिए सिस्टम को बताता है । समय सिंटैक्स के अवलोकन के लिए, यहां देखें: http://linuxmoz.com/crontab-syntax-tomutorial/
reboot
कि चलाया जाना चाहिए root
, और यह इसे उपयोगकर्ता के व्यक्तिगत क्राउटैब में जोड़ता है, इसलिए यह उस गैर-रूट उपयोगकर्ता के रूप में चलता है। (इसके साथ एक ही चीज़ sudo reboot
भी काम नहीं sudo
करेगी क्योंकि पासवर्ड के लिए संकेत देने और विफल /etc/crontab
होने का प्रयास किया जाएगा ।) इसके लिए उपयोग किया जाना चाहिए (कृपया ध्यान दें कि इसका सिंटैक्स थोड़ा अलग है)।
sudo crontab -e
और फिर एक क्रोन प्रविष्टि बना सकते हैं ।
cron
हर 30 मिनट में नौकरी शेड्यूल करने के लिए उपयोग करें । उस कार्य को एक शेल स्क्रिप्ट पर इंगित करें जो कि बस है
reboot
इस में।
चूंकि cron
रूट के रूप में चलता है, आपको अनुमतियों के संदर्भ में कुछ विशेष करने की आवश्यकता नहीं होनी चाहिए।
हां, मैं वास्तव में अपने किसी भी सिस्टम पर कभी भी उपयोगकर्ता आधारित कॉन्टैब्स की अनुमति नहीं देता हूं (उपयोगकर्ताओं को उपयोगकर्ता के स्तर के निर्धारित कार्यों को करने की अनुमति देने के बेहतर तरीके हैं) क्रोन को सिस्टम स्वचालन के लिए बहुत शुरुआत से डिज़ाइन किया गया था और उपयोगकर्ताओं को सामान्य शेड्यूल करने के लिए नहीं। कार्य। लॉग रोटेशन जैसी चीजें (जो आज भी होती हैं)
रीबूट MUST को सही तरीके से काम करने के लिए रूट के रूप में चलाया जाना चाहिए, विकल्प यह चिपचिपा सा सेट करने के लिए है, ताकि जब एक नियमित उपयोगकर्ता के रूप में चला जाए तो यह वास्तव में रूट के रूप में निष्पादित हो और अपेक्षा के अनुरूप काम करे, लेकिन ऐसा करने में आपका तब नियमित रूप से अनुमति देने के लिए अपना सर्वर खोलना उपयोगकर्ताओं को यह इच्छा पर रिबूट करने के लिए।
आप संभवतः SUDO को कॉल को स्वचालित कर सकते हैं, लेकिन मुझे उस एक में खुदाई करने की आवश्यकता है, यह सुनिश्चित नहीं है कि क्या आप SUDO के साथ पासवर्ड की आवश्यकता को स्वचालित कर सकते हैं (मैं इसे अक्सर उपयोग नहीं करता हूं, मैं सीधे एक रूट पर छोड़ना पसंद करता हूं एसयू का उपयोग करके शेल)
यदि आप इसे सिस्टम वाइड क्रैस्टब में सेट करते हैं तो सब कुछ रूट के रूप में चलाया जाता है, इसलिए मेरा कथन सटीक है (मैं सिर्फ यह उल्लेख करने के लिए उपेक्षित हूं कि सिस्टम वाइड एक का उपयोग किया जाना चाहिए)
जैसा कि आपके प्रश्न के लिए "स्क्रिप्ट में क्यों लपेटें?" जरूर क्यों नहीं? यदि ओपी इसे एक शेल स्क्रिप्ट में डालता है, तो भविष्य में किसी बिंदु पर इसे जोड़ने की आवश्यकता है, वह बस स्क्रिप्ट में जोड़ता है, इसके बजाय क्रॉस्टब खोलने के लिए नौकरी का पता लगाएं, इसे हटा दें, इसे शेल स्क्रिप्ट के साथ बदलें। फिर पुराने + नए में एक स्क्रिप्ट लिखें।
सिस्टम के साथ काम करने वाले Sys Admin / Developer के रूप में 20 साल से अधिक समय तक Ultrix / Solaris और यहां तक कि VAX ने मुझे एक प्रमुख बिंदु सिखाया है।
यदि आप शुरुआत में इसे आसान बना सकते हैं, तो यह जीवन के लिए आसान है।
मुझे वास्तव में यह "न्यूनतमवादी" रवैया नहीं मिला है कि बहुत सारे आधुनिक दिन एसआईएस के व्यवस्थापक हैं, जहां संभव के रूप में बहुत कम करना सफलता की कुंजी है। इन दिनों अधिकांश सर्वर आसानी से 20 गुना + अधिक शक्तिशाली होते हैं, जो मैंने कभी भी शुरू किया था, और इस तरह के परिदृश्य (शेल स्क्रिप्ट में लपेटना) का अभ्यास तब किया गया था, इसलिए अब ऐसा नहीं करने के लिए वास्तव में कोई तर्क नहीं है।
जब तक आप वास्तव में हार्डकोर यूनिक्स / लिनक्स नहीं जाना चाहते हैं, उस स्थिति में यह क्रोन प्रविष्टि पर सभी को टैग करता है, और सब कुछ एक साथ पाइप करता है जिस तरह से इसे किया जाना चाहिए :-)
हालांकि, मैं डिग्रेस करता हूं, और यह भी समझता हूं कि कई लोग इन दिनों गहरे अंत में फेंक देते हैं और चीजों को काम करने के लिए कहा जाता है, जैसे कि उनके पास समय की कमी होती है (और आमतौर पर झुकाव) नई तकनीकों के बारे में जानने के लिए (या) इस मामले में पुराने) या यहां तक कि काम के बाहर इस सामान के साथ खेलना चाहते हैं।
मैं व्यक्तिगत रूप से उन लोगों के बीच एक ही सर्वर रखता हूं, जो मेरे द्वारा चलाए जाने वाले शुद्ध रूप से मेरे चारों ओर खेलने के लिए समर्पित है, इसलिए मैं इस तरह की चीजों का परीक्षण कर सकता हूं ... जो कि बेहतर ए या बी है, इसलिए यह बिना किसी कारण के है कि मैं किसी पर सलाह देता हूं इस।