web-dev-qa-db-fra.com

Comment vérifier le statut "apt-get upgrade" après avoir perdu la connexion ssh?

Habituellement, je mets à niveau mon installation Ubuntu via une connexion ssh. Parfois, cette connexion SSH était perdue ou je fermais accidentellement la fenêtre du terminal.

Il est possible de vérifier l'état de la mise à niveau après une nouvelle connexion ssh à l'ordinateur?

15
Josema

Les journaux suivants sont liés aux mises à niveau apt:

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

Si la commande était dist-upgrade, il existe des journaux supplémentaires dans:

/var/log/dist-upgrade

Pour votre information, il est généralement prudent de simplement réexécuter la mise à jour et apt continuera là où elle s'était arrêtée à la fin du processus en raison d'une déconnexion. Toutefois...

A GNU Screen Primer:

Lorsque vous vous connectez à un serveur distant et que vous démarrez un processus de longue durée au premier plan, il est recommandé d'utiliser GNU Screen. Screen fournit un terminal virtuel qui continue à fonctionner même si votre connexion SSH est perdue.

Écran d'installation:

Sudo apt-get install screen

Lancer l'écran:

screen

Après avoir exécuté l'écran, vous obtiendrez une invite de ligne de commande comme avec un terminal normal. Vous pouvez ensuite exécuter la mise à niveau à partir de l'écran intérieur:

Sudo apt-get upgrade

Pour comprendre comment cela fonctionne, "détachez" l'écran en appuyant sur Ctrl + a, d . Cela vous ramènera au terminal non-écran. Vous pouvez voir la liste des écrans en cours avec

screen -list

Si vous n'avez qu'un seul écran actif, vous pouvez le rattacher avec:

screen -raAd

(Cet écran se détache au cas où il serait attaché ailleurs et le rattacherait au terminal que vous utilisez actuellement.)

En règle générale, vous ne pouvez pas faire défiler l'écran normalement à partir de l'écran sans une configuration supplémentaire. Pour faire défiler l'écran, appuyez sur Ctrl-Esc pour passer en mode curseur. Vous pouvez ensuite faire défiler de haut en bas avec j et k . Appuyez de nouveau sur Echap pour quitter le mode curseur.

Il y a beaucoup plus de ressources sur le net disponibles pour des fonctions d'écran supplémentaires. C'est un outil standard inestimable pour l'administration système.

Voir également:

31
doublerebel

En plus de la réponse de doublerebel, j'ai remarqué une alternative aujourd'hui.

Je me suis couché la nuit dernière après avoir lancé une mise à niveau via SSH. J'ai bêtement oublié de le démarrer dans screen et j'ai perdu ma session SSH du jour au lendemain.

J'étais sur le point de commencer à rechercher retty quand j'ai remarqué que root avait démarré une session 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

J'ai donc listé les écrans de root et y ai attaché:

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

Et Bam! J'étais de retour dans la partie.

10
Huckle

Pour voir la sortie en temps réel du travail d'arrière-plan apt, utilisez:

Sudo tail -f /var/log/apt/term.log
4
TheAnonymousBear

Avait exactement le même problème, perdu ma connexion et le processus dpkg attendait une entrée.

Peut-être que la prochaine fois, essayez: Sudo dpkg --configure -a

0
Sebastian Faujour