失去 ssh 连接后如何检查“apt-get upgrade”状态?

失去 ssh 连接后如何检查“apt-get upgrade”状态?

通常我通过 ssh 连接升级我的 Ubuntu 安装。有时这个 ssh 连接会丢失,或者我会不小心关闭终端窗口。

ssh 重新登录计算机后可以检查升级状态吗?

答案1

以下日志与 apt 升级相关:

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

如果命令是dist-upgrade,则有附加日志:

/var/log/dist-upgrade

仅供参考,通常情况下,重新运行升级是安全的,并且 apt 将在进程因断开连接而终止时继续执行。但是...

GNU Screen 入门:

当通过 ssh 连接到远程服务器并在前台启动长时间运行的进程时,最好使用 GNU Screen。Screen 提供了一个虚拟终端,即使您的 ssh 连接丢失,它仍会继续运行。

安装屏幕:

sudo apt-get install screen

运行屏幕:

screen

运行 screen 后,您将获得与普通终端一样的命令行提示符。然后您可以从 screen 内部运行升级:

sudo apt-get upgrade

要了解其工作原理,请按“分离”屏幕Ctrl+a、d。这将返回到非屏幕终端。您可以使用以下命令查看正在运行的屏幕列表

screen -list

如果只有一个屏幕正在运行,则可以使用以下命令重新连接它:

screen -raAd

(如果屏幕连接在其他地方,这将分离它,并将其重新连接到您当前正在运行的终端。)

通常,如果没有额外的设置,您无法在屏幕内“正常”滚动。要在屏幕内滚动,请按Ctrl-Esc进入光标模式。然后您可以使用。 按Esc键再次退出光标模式。

网络上还有更多资源可用于附加屏幕功能。它是系统管理的宝贵标准工具。

也可以看看:

答案2

/var/log/apt/term.log当我的终端被其他人关闭时,我正在升级(询问我是否保留或替换配置文件;此信息是我从中获取的)。重新启动时apt upgrade,提示锁定文件被保留。

我的解决方法是执行以下操作:

sudo killall apt # to release the lock
sudo dpkg --configure -a # to fix the interrupted upgrade
sudo apt upgrade # to make sure no packages are left not upgraded

答案3

要查看后台作业的实时输出apt,请使用:

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

答案4

遇到了完全相同的问题,失去了连接,dpkg 进程正在等待输入。

也许下次尝试:sudo dpkg --configure -a

相关内容