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?
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:
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.
Pour voir la sortie en temps réel du travail d'arrière-plan apt
, utilisez:
Sudo tail -f /var/log/apt/term.log
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