SSH 연결이 끊긴 후 "apt-get upgrade"상태를 확인하는 방법은 무엇입니까?


16

일반적으로 ssh 연결을 통해 Ubuntu 설치를 업그레이드합니다. 때로는이 ssh 연결이 끊어 지거나 실수로 터미널 창을 닫을 수 있습니다.

ssh가 컴퓨터에 다시 로그인 한 후 업그레이드 상태를 확인할 수 있습니까?

답변:


33

다음 로그는 적절한 업그레이드와 관련이 있습니다.

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

명령이 dist-upgrade인 경우 추가 로그가 있습니다.

/var/log/dist-upgrade

참고로, 일반적으로 업그레이드를 다시 실행하는 것이 안전하며 연결이 끊어져 프로세스가 종료되었을 때 중단 된 부분에서 계속 진행됩니다. 하나...

GNU 스크린 프라이머 :

원격 서버에 ssh 's하고 포 그라운드에서 장기 실행 프로세스를 시작할 때 GNU Screen을 사용하는 것이 가장 좋습니다. Screen은 SSH 연결이 끊긴 경우에도 계속 실행되는 가상 터미널을 제공합니다.

설치 화면 :

sudo apt-get install screen

화면 실행 :

screen

화면을 실행하면 일반 터미널과 같은 명령 줄 프롬프트가 나타납니다. 그런 다음 내부 화면에서 업그레이드를 실행할 수 있습니다.

sudo apt-get upgrade

작동 방식을 이해하려면 Ctrl + a, d를 눌러 "분리"화면을 표시하십시오 . 화면이 아닌 터미널로 돌아갑니다. 당신은 실행중인 화면의 목록을 볼 수 있습니다

screen -list

하나의 화면 만 실행중인 경우 다음을 사용하여 다시 연결할 수 있습니다.

screen -raAd

(이는 다른 곳에 부착 된 경우 화면을 분리하고 현재 실행중인 터미널에 다시 연결합니다.)

일반적으로 추가 설정없이 화면 내에서 '정상적으로'스크롤 할 수 없습니다. 화면 내에서 스크롤하려면 Ctrl-Esc눌러 커서 모드로 들어갑니다. 그런 다음 jk 로 아래 위로 스크롤 할 수 있습니다 . 를 눌러 Esc 키를 다시 커서 모드를 종료합니다.

추가 화면 기능에 사용할 수있는 더 많은 리소스가 인터넷에 있습니다. 시스템 관리를위한 귀중한 표준 도구입니다.

또한보십시오:


2
+1 voor 실제로 질문에 대답하고 화면을 언급 :)
Nanne

2
또한 screen -x-다른 사람을 분리하지 않고 실행중인 화면에 연결하여 화면 세션을 "멀티 플레이어"로 만듭니다.
SF.

이것은 도움이되지만 답변 외에도 예방이 포함됩니다. 또한, 볼 수있는 올바른 로그가 인용되었지만 초보자는 tail -f명령 및 플래그 옵션에 익숙하지 않을 수 있습니다 .이를 통해 사용자는 "재전송시 로그인." 나는 오래되고 받아 들였지만 꼬리를이 명령 세트에 추가해야한다고 생각합니다.이 세부 정보가 부족하면 @TheAnonymousBear의 아래 답변이 더 직접적이고 중요하기 때문입니다. @doublerebel
oemb1905

sudo dpkg --configure -a여전히 비용이 많이 들었을 때 종종 적절한 업그레이드를 계속합니다.
danger89

10

doublerebel의 답변 외에도 오늘 대안이 나타났습니다.

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-upgrade우분투 전용 명령입니까? 나는 항상 수동으로 실행하고 분리했다가 다시 돌아 오기 때문에 독점적으로 사용하는 데비안을 확인할 필요가 없었습니다. 물론 sudo apt dist-upgrade변경 후 사용 /etc/apt/sources.list합니다.
oemb1905

예, 우분투 전용이므로 AskUbuntu의 밀렵 수정 프로그램이 시스템에서 발생할 것이라고 가정해서는 안되는 순수한 데비안 사람들이 있습니다. 이 주제의 원래 스레드 : serverfault.com/questions/387547/…
oemb1905

화면이 설치 될 것임을 어떻게 알 수 있습니까?
Nacht-복원 모니카

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을 수행 했으므로 전체 apt 업그레이드 프로세스를 종료하지 않고 해당 프로세스를 종료 할 수있었습니다.
CivMeierFan

이 방법은 재 로그인시 dpkg 프로세스가 시스템에서 여전히 실행 중인지에 대한 조사를 무시합니다. 또한 dpkg /var/dpkg/lock가 여전히 실행 중이면 잠그기 때문에 최악의 경우 또는 최악의 경우 나쁜 습관이 될 수 있습니다 . 그리고 "업그레이드 상태를 확인하는 방법"에 대한 질문에 대답하지 않고 업그레이드가 중단 된 경우 (잠금이 활성화되지 않은 경우에만) 작동합니다. 나는이 방법을 누구에게도 추천하지 않을 것이다. 각각 oemb1905
oemb1905
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.