Ssh कनेक्शन खोने के बाद "apt-get upgrade" स्थिति की जांच कैसे करें?


16

आमतौर पर मैं अपने Ubuntu इंस्टालेशन को ssh कनेक्शन के माध्यम से अपग्रेड करता हूं। कभी-कभी यह ssh कनेक्शन खो जाएगा या मैं गलती से टर्मिनल विंडो बंद कर दूंगा।

कंप्यूटर में ssh फिर से लॉगिन करने के बाद उन्नयन स्थिति की जांच करना संभव है?

जवाबों:


34

निम्नलिखित लॉग उपयुक्त उन्नयन से संबंधित हैं:

/var/log/apt/history.log
/var/log/apt/term.log
/var/log/dpkg.log

यदि आदेश था dist-upgrade, तो इसमें अतिरिक्त लॉग हैं:

/var/log/dist-upgrade

FYI करें, यह आम तौर पर अपग्रेड को फिर से चलाने के लिए सुरक्षित होता है और यह जारी रहेगा कि डिस्कनेक्ट होने के कारण यह कब बंद हो गया। तथापि...

एक GNU स्क्रीन प्राइमर:

जब एक दूरस्थ सर्वर में ssh'ing और अग्रभूमि में लंबे समय से चलने वाली प्रक्रिया शुरू होती है, तो GNU स्क्रीन का उपयोग करना सबसे अच्छा अभ्यास है। स्क्रीन एक वर्चुअल टर्मिनल प्रदान करता है जो आपके ssh कनेक्शन खो जाने पर भी चालू रहता है।

स्क्रीन स्थापित करें:

sudo apt-get install screen

रन स्क्रीन:

screen

स्क्रीन चलाने के बाद आपको एक सामान्य टर्मिनल के साथ कमांड लाइन प्रॉम्प्ट मिलेगा। फिर आप स्क्रीन के अंदर से अपग्रेड रन कर सकते हैं:

sudo apt-get upgrade

यह समझने के लिए कि यह कैसे काम करता है, Ctrl + a, d दबाकर "detach" स्क्रीन । यह आपको गैर-स्क्रीन टर्मिनल पर लौटा देगा। आप साथ चल रहे स्क्रीन की सूची देख सकते हैं

screen -list

यदि आपके पास केवल एक स्क्रीन चल रही है, तो आप इसे रीटचैट कर सकते हैं:

screen -raAd

(यदि यह कहीं और संलग्न है, तो यह स्क्रीन को अलग कर देता है, और आप इसे उस टर्मिनल पर फिर से भेजते हैं जो आप वर्तमान में चला रहे हैं।)

आमतौर पर आप कुछ अतिरिक्त सेटअप के बिना स्क्रीन के भीतर से सामान्य रूप से स्क्रॉल नहीं कर सकते। स्क्रीन के भीतर स्क्रॉल करने के लिए, कर्सर मोड में प्रवेश करने के लिए Ctrl-Esc दबाएँ । फिर आप जम्मू और कश्मीर के साथ नीचे और ऊपर स्क्रॉल कर सकते हैं । Esc दबाएँ फिर कर्सर मोड से बाहर निकलने के लिए।

अतिरिक्त स्क्रीन कार्यों के लिए उपलब्ध नेट पर कई और संसाधन हैं। यह सिस्टम प्रशासन के लिए एक अमूल्य मानक उपकरण है।

यह सभी देखें:


2
+1 वूर वास्तव में सवाल का जवाब दे रहा है और स्क्रीन का उल्लेख कर रहा है :)
नन्न डे

3
इसके अलावा, screen -x- दूसरों को अलग किए बिना स्क्रीन चलाने के लिए संलग्न करें, स्क्रीन सत्र को "मल्टीप्लेयर" बना दें।
एसएफ।

यह सहायक है, लेकिन उत्तर के अलावा रोकथाम भी शामिल है। इसके अलावा, देखने के लिए सही लॉग का हवाला दिया गया है, लेकिन एक शुरुआती उपयोगकर्ता tail -fकमांड और ध्वज विकल्प से परिचित नहीं हो सकता है, जो उपयोगकर्ता को वास्तविक समय में प्रगति का निरीक्षण करने की अनुमति देगा (या देखें कि यह दुर्घटनाग्रस्त हो गया) लॉग इन करें।" मुझे इसका पुराना और स्वीकृत पता है, लेकिन मुझे लगता है कि इस निर्देश सेट में पूंछ को जोड़ा जाना चाहिए, क्योंकि इस विवरण का अभाव है, @TheAnonymousBear द्वारा नीचे दिया गया उत्तर अधिक प्रत्यक्ष और बिंदु पर है। @doublerebel
oemb1905

अक्सर sudo dpkg --configure -aउपयुक्त उन्नयन के लिए जारी रहेगा, जब वह अभी भी खर्च कर रहा था।
खतरे at

10

ड्यूलरेबेल के उत्तर के अलावा, मैंने आज एक विकल्प देखा।

मैं SSH पर अपग्रेड शुरू करने के बाद कल रात बिस्तर पर गया। मैं मूर्खता से इसे शुरू करना भूल गया screenऔर रातों-रात अपना SSH सत्र हार गया।

मैं अभी शोध शुरू करने वाला था rettyजब मैंने देखा कि rootएक screenसत्र शुरू हो गया था ।

me@GAMMA:~$ ps aux | grep -E 'release|upgrade|apt'
root      6208  0.0  0.0  29140  1628 ?        Ss   01:57   0:05 SCREEN -e \0\0 -L -c screenrc -S ubuntu-release-upgrade-screen-window /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
root      6209  0.2  5.6 287428 93144 pts/2    Ss+  01:57   3:13 /usr/bin/python /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
root      6239  0.0  0.0  50052  1184 ?        Ss   01:58   0:00 /usr/sbin/sshd -o PidFile=/var/run/release-upgrader-sshd.pid -p 1022
root      7306  0.0  4.6 287432 77284 pts/2    S+   02:43   0:08 /usr/bin/python /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
me       26829  0.0  0.0   9440   956 pts/5    S+   22:18   0:00 grep --color=auto -E release|upgrade|apt

इसलिए मैंने rootस्क्रीन को सूचीबद्ध किया और इसे संलग्न किया:

me@GAMMA:~$ sudo screen -list
There is a screen on:
        6208.ubuntu-release-upgrade-screen-window       (12/11/2013 01:57:58 AM)        (Detached)
1 Socket in /var/run/screen/S-root.
me@GAMMA:~$ sudo screen -x -r

और बाम! मैं खेल में वापस आ गया था।


मुझे लगा कि आप स्क्रीन शुरू करना भूल गए हैं। यदि आप "स्क्रीन में शुरू करना भूल गए तो स्क्रीन कैसे चल रही थी?"
oemb1905

1
@ oemb1905 क्योंकि उबंटू आपके लिए एक शुरुआत करता है, इस धारणा के तहत कि आप भूल जाएंगे :)
Huckle

दिलचस्प, यह do-release-upgradeubuntu के लिए विशिष्ट कमांड के साथ है ? मुझे डेबियन पर जांच करने की कभी आवश्यकता नहीं थी, जिसका मैं विशेष रूप से उपयोग करता हूं, क्योंकि मैं हमेशा इसे मैन्युअल रूप से चलाता हूं, अलग करता हूं, और फिर वापस आता हूं। और, बेशक, हम बदले के sudo apt dist-upgradeबाद उपयोग /etc/apt/sources.listकरते हैं।
oemb1905

मैंने पाया कि, यह उबंटू-विशिष्ट है इसलिए मेरे जैसे किसी भी शुद्ध डेबियन लोग, आस्कयूबंटू से आने वाले शिकार को ठीक करना चाहिए, यह नहीं मानना ​​चाहिए कि यह उनके सिस्टम पर होगा। इस विषय पर मूल धागा: serverfault.com/questions/387547/…
oemb1905

यह कैसे पता चलेगा कि आपके पास स्क्रीन स्थापित होगी?
नाच -

4

बैकग्राउंड aptजॉब से रियल-टाइम आउटपुट देखने के लिए , उपयोग करें:

sudo tail -f /var/log/apt/term.log

यह सही उत्तर है - ऊपर दिए गए उत्तर में कुछ सहायक लॉग का स्थान बताया गया है, फिर रोकथाम पर स्विच किया जाता है। यह उत्तर उपयोगकर्ता को दिखाता है कि उसे कहाँ देखना है, और उसे कैसे देखना है ( tail) जिसे उन्होंने "पुनः लॉगिन" कहा था।
oemb1905

0

वास्तव में एक ही मुद्दा था, मेरा कनेक्शन खो गया और dpkg प्रक्रिया इनपुट की प्रतीक्षा कर रही थी।

शायद अगली बार कोशिश करें: sudo dpkg --configure -a


1
जब मैं यह कोशिश करता हूं, तो मुझे बस इतना ही मिलता है,"dpkg: error: dpkg frontend is locked by another process"
CivMeierFan

मैंने यह देखने के लिए एक संदर्भ grep किया कि शुक्र है कि यह एक उपप्रकार था जिसने इनपुट के इंतजार में एक संदेश संवाद उत्पन्न किया था, इसलिए मैं सिर्फ एपेट अपग्रेड प्रक्रिया को मारने के बिना इसे मारने में सक्षम था।
CivMeierFan

यह दृष्टिकोण जांच की अनदेखी करता है कि क्या अभी भी सिस्टम पर repgin पर dpkg प्रक्रिया चल रही है। इसके अलावा, अगर यह चल रहा है, तो यह संभवतः सबसे खराब पर हानिकारक हो सकता है, या बस सबसे अच्छा बुरा अभ्यास, क्योंकि dpkg में इस पर एक लॉक होगा /var/dpkg/lockयदि यह अभी भी चल रहा है। और इसकी परवाह किए बिना, यह इस सवाल का जवाब नहीं देता है कि "अपग्रेड स्थिति की जांच कैसे करें" और, इसके बजाय, केवल तभी काम करेगा जब अपग्रेड क्रैश हो गया (और केवल तब जब लॉक सक्रिय नहीं है)। मैं किसी को भी इस दृष्टिकोण की सिफारिश नहीं करूंगा। सम्मान से, oemb1905
oemb1905
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.