हर 30 मिनट में स्वचालित रूप से पुनरारंभ कैसे करें?


14

मैं हर 30 मिनट में अपने उबंटू को फिर से शुरू करना चाहता हूं। क्या ऐसा करने के लिए कोई कमांड या चित्रमय तरीका है?


12
मैं बस उत्सुक हूं: हर 30 मिनट को पुनरारंभ करने का उद्देश्य क्या हो सकता है?
राफेल सिलेक

जवाबों:


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 [देखने के लिए देखें कि परीक्षण कैसे किया जाता है।


12

मैं सत्र प्रबंधक को यह कहकर प्यार करता हूं कि हम रिबूट करना चाहते हैं। यह रूट अनुमतियों के बिना किया जा सकता है, और हमें एक अच्छी खिड़की मिलती है जो हमें चेतावनी देती है कि सिस्टम रिबूट किया जा रहा है -यदि हम चाहें तो रिबूट को रद्द कर सकते हैं।

आलेखीय तरीका - पसंदीदा विधि

gnome-scheduleउबंटू सॉफ्टवेयर सेंटर से इंस्टॉल करें । यदि आप कुछ अतिरिक्त स्थापित नहीं करना चाहते हैं, तो इसे टर्मिनल वे करें।

gnome-scheduleडैश से खोलें , एक नया दोहराया गया कार्य बनाएं और इन विकल्पों को सेट करें:

  • विवरण: आप जो भी चाहते हैं
  • कमान: dbus-send --print-reply --dest="org.gnome.SessionManager" /org/gnome/SessionManager org.gnome.SessionManager.Reboot
  • कमांड के ठीक नीचे X एप्लिकेशन चुनें ।
  • समय और दिनांक, उन्नत:
    • मिनट: 0,30

अन्य विकल्पों को उनके डिफ़ॉल्ट मानों पर छोड़ दें। 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

यह पुष्टि के लिए नहीं पूछेगा, और भीतर की ओर फिर से शुरू करेगा, लेकिन सभी वातावरणों पर काम करेगा, यह मानते हुए कि आपने मैन्युअल रूप से कंसोल कंसोल की स्थापना रद्द नहीं की है।


6

sudo crontab -eकमांड लाइन से चलाएं और इस लाइन को फाइल में जोड़ें:

0,30 * * * * reboot

यह सिस्टम को rebootहर 30 मिनट में रूट के रूप में चलाने के लिए सिस्टम को बताता है । समय सिंटैक्स के अवलोकन के लिए, यहां देखें: http://linuxmoz.com/crontab-syntax-tomutorial/


3
यह काम नहीं करेगा, जैसा rebootकि चलाया जाना चाहिए root, और यह इसे उपयोगकर्ता के व्यक्तिगत क्राउटैब में जोड़ता है, इसलिए यह उस गैर-रूट उपयोगकर्ता के रूप में चलता है। (इसके साथ एक ही चीज़ sudo rebootभी काम नहीं sudoकरेगी क्योंकि पासवर्ड के लिए संकेत देने और विफल /etc/crontabहोने का प्रयास किया जाएगा ।) इसके लिए उपयोग किया जाना चाहिए (कृपया ध्यान दें कि इसका सिंटैक्स थोड़ा अलग है)।
एलियाह कगन

1
आप जारी कर सकते हैं sudo crontab -eऔर फिर एक क्रोन प्रविष्टि बना सकते हैं ।
टास

-3

cronहर 30 मिनट में नौकरी शेड्यूल करने के लिए उपयोग करें । उस कार्य को एक शेल स्क्रिप्ट पर इंगित करें जो कि बस है

reboot

इस में।

चूंकि cronरूट के रूप में चलता है, आपको अनुमतियों के संदर्भ में कुछ विशेष करने की आवश्यकता नहीं होनी चाहिए।

अपडेट करें

हां, मैं वास्तव में अपने किसी भी सिस्टम पर कभी भी उपयोगकर्ता आधारित कॉन्टैब्स की अनुमति नहीं देता हूं (उपयोगकर्ताओं को उपयोगकर्ता के स्तर के निर्धारित कार्यों को करने की अनुमति देने के बेहतर तरीके हैं) क्रोन को सिस्टम स्वचालन के लिए बहुत शुरुआत से डिज़ाइन किया गया था और उपयोगकर्ताओं को सामान्य शेड्यूल करने के लिए नहीं। कार्य। लॉग रोटेशन जैसी चीजें (जो आज भी होती हैं)

रीबूट MUST को सही तरीके से काम करने के लिए रूट के रूप में चलाया जाना चाहिए, विकल्प यह चिपचिपा सा सेट करने के लिए है, ताकि जब एक नियमित उपयोगकर्ता के रूप में चला जाए तो यह वास्तव में रूट के रूप में निष्पादित हो और अपेक्षा के अनुरूप काम करे, लेकिन ऐसा करने में आपका तब नियमित रूप से अनुमति देने के लिए अपना सर्वर खोलना उपयोगकर्ताओं को यह इच्छा पर रिबूट करने के लिए।

आप संभवतः SUDO को कॉल को स्वचालित कर सकते हैं, लेकिन मुझे उस एक में खुदाई करने की आवश्यकता है, यह सुनिश्चित नहीं है कि क्या आप SUDO के साथ पासवर्ड की आवश्यकता को स्वचालित कर सकते हैं (मैं इसे अक्सर उपयोग नहीं करता हूं, मैं सीधे एक रूट पर छोड़ना पसंद करता हूं एसयू का उपयोग करके शेल)

यदि आप इसे सिस्टम वाइड क्रैस्टब में सेट करते हैं तो सब कुछ रूट के रूप में चलाया जाता है, इसलिए मेरा कथन सटीक है (मैं सिर्फ यह उल्लेख करने के लिए उपेक्षित हूं कि सिस्टम वाइड एक का उपयोग किया जाना चाहिए)

जैसा कि आपके प्रश्न के लिए "स्क्रिप्ट में क्यों लपेटें?" जरूर क्यों नहीं? यदि ओपी इसे एक शेल स्क्रिप्ट में डालता है, तो भविष्य में किसी बिंदु पर इसे जोड़ने की आवश्यकता है, वह बस स्क्रिप्ट में जोड़ता है, इसके बजाय क्रॉस्टब खोलने के लिए नौकरी का पता लगाएं, इसे हटा दें, इसे शेल स्क्रिप्ट के साथ बदलें। फिर पुराने + नए में एक स्क्रिप्ट लिखें।

सिस्टम के साथ काम करने वाले Sys Admin / Developer के रूप में 20 साल से अधिक समय तक Ultrix / Solaris और यहां तक ​​कि VAX ने मुझे एक प्रमुख बिंदु सिखाया है।

यदि आप शुरुआत में इसे आसान बना सकते हैं, तो यह जीवन के लिए आसान है।

मुझे वास्तव में यह "न्यूनतमवादी" रवैया नहीं मिला है कि बहुत सारे आधुनिक दिन एसआईएस के व्यवस्थापक हैं, जहां संभव के रूप में बहुत कम करना सफलता की कुंजी है। इन दिनों अधिकांश सर्वर आसानी से 20 गुना + अधिक शक्तिशाली होते हैं, जो मैंने कभी भी शुरू किया था, और इस तरह के परिदृश्य (शेल स्क्रिप्ट में लपेटना) का अभ्यास तब किया गया था, इसलिए अब ऐसा नहीं करने के लिए वास्तव में कोई तर्क नहीं है।

जब तक आप वास्तव में हार्डकोर यूनिक्स / लिनक्स नहीं जाना चाहते हैं, उस स्थिति में यह क्रोन प्रविष्टि पर सभी को टैग करता है, और सब कुछ एक साथ पाइप करता है जिस तरह से इसे किया जाना चाहिए :-)

हालांकि, मैं डिग्रेस करता हूं, और यह भी समझता हूं कि कई लोग इन दिनों गहरे अंत में फेंक देते हैं और चीजों को काम करने के लिए कहा जाता है, जैसे कि उनके पास समय की कमी होती है (और आमतौर पर झुकाव) नई तकनीकों के बारे में जानने के लिए (या) इस मामले में पुराने) या यहां तक ​​कि काम के बाहर इस सामान के साथ खेलना चाहते हैं।

मैं व्यक्तिगत रूप से उन लोगों के बीच एक ही सर्वर रखता हूं, जो मेरे द्वारा चलाए जाने वाले शुद्ध रूप से मेरे चारों ओर खेलने के लिए समर्पित है, इसलिए मैं इस तरह की चीजों का परीक्षण कर सकता हूं ... जो कि बेहतर ए या बी है, इसलिए यह बिना किसी कारण के है कि मैं किसी पर सलाह देता हूं इस।


मेरा अपडेट देखें .. अगर आप चाहें तो आप मुझे अपना 1 अंक वापस दे सकते हैं ;-)
shawty

फिर से कोशिश करें ... धैर्य रखें ...
श्वेत

2
यह अब सब पर एक जवाब नहीं है! (इसके अलावा, आप चिपचिपे बिट और सेट्युड बिट को भ्रमित कर रहे हैं ।)
एलियाह कगन

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