लिनक्स मशीन के रिबूट होने की प्रतीक्षा करें


2

मेरे पास अपनी रिमोट मशीन को अपडेट करने के लिए एक छोटी स्क्रिप्ट है।

मैं मशीन को दूर से रिबूट करना चाहूंगा और अगर इसे रिबूट किया जाता है, तो कुछ और कमांड के साथ जारी रखें। वर्तमान में मैं क्या कर रहा हूँ:

ssh root@myMachine << COMMANDS_ISSUED
   ###... Tasks
   init 6
COMMANDS_ISSUED
sleep 180s
ssh root@myMachine << POST_REBOOT_COMMANDS
   ###.... More stuff
POST_REBOOT_COMMANDS

क्या इसे करने का एक और अधिक सुरुचिपूर्ण तरीका है? मशीन को पिंग करने की तरह सभी 5 सेकंड अधिकतम 4 मिनट तक? मैं कुछ लाइनक्स मशीनों के साथ खेलता हूं, जिनमें अलग-अलग बूट अप बार होता है और अगर रिबूट के तुरंत बाद मेरी स्क्रिप्ट जारी रहेगी, तो यह मेरे लिए काफी समय तक सुरक्षित रह सकता है। (नोट: मैं सभी मशीनों पर निष्पादन को समानांतर नहीं करना चाहता क्योंकि मैं प्रत्येक मशीन के लिए देखना चाहता हूं अगर सब कुछ ठीक रहा)

जवाबों:


2

मैं कहूंगा कि मशीन उठने तक।

while ! ping -c 1 192.168.1.1 &>/dev/null; do :; done

"सी 1" एक समय में एक अनुरोध भेजेगा, इसलिए प्रत्येक लूप। यदि कोई प्रतिक्रिया नहीं है तो पिंग झूठा वापस आ जाएगा और लूप जारी रहेगा।

लूप का शरीर खाली है - यदि आप चाहते हैं तो आप एक छोटी नींद की कमान डाल सकते हैं। अन्यथा, बृहदान्त्र ":" जो कि [नो-ऑप कमांड] [1] है, का उपयोग किया जाता है। ऐसा इसलिए है क्योंकि आपके पास खाली लूप बॉडी नहीं हो सकती है।


इस तथ्य के बावजूद कि मुझे पिंग के बजाय पिंग-एन का उपयोग करने की आवश्यकता है-यह एक आकर्षण की तरह काम करता है, धन्यवाद :)
थियो

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