这是我的问题。我在 proxmox 下管理两个 VM 服务器。最近,我通过更新升级了apt update & apt upgrade
很多 VM Linux 内核。linux-image-4.9.0-13-amd64
linux-image-amd64/oldstable
4.9+80+deb9u11 amd64
发行版是 Debian:
lsb_release -a No LSB modules are available. Distributor ID: Debian
Description: Debian GNU/Linux 9.13 (stretch) Release: 9.13
Codename: stretch
其中一个虚拟机上有 mongoDB。由于我进行了升级并重新启动了机器(没有任何错误),mongoDB 消失了(不再安装),我不得不重新安装它。
供您参考,在我开始管理这些服务器之前,已经apt upgrade
在另一台服务器上完成了管理,其中一台服务器带有mysql
.升级后Mysql也被卸载了...
我的问题是:为什么,我能做些什么来避免这种情况?
这是我的文件的结尾/var/log/apt/history.log
(过去 7 天):
Start-Date: 2020-07-22 12:00:07
Commandline: apt-get upgrade -y
Upgrade: nodejs:amd64 (10.21.0-1nodesource1, 10.22.0-1nodesource1)
Error: Sub-process /usr/bin/dpkg returned an error code (1)
End-Date: 2020-07-22 12:00:14
Start-Date: 2020-07-23 12:00:04
Commandline: apt-get upgrade -y
Upgrade: librsvg2-common:amd64 (2.40.16-1+b1, 2.40.21-0+deb9u1), librsvg2-2:amd64 (2.40.16-1+b1, 2.40.21-0+deb9u1)
Error: Sub-process /usr/bin/dpkg returned an error code (1)
End-Date: 2020-07-23 12:00:05
Start-Date: 2020-07-24 12:00:04
Commandline: apt-get upgrade -y
Error: Sub-process /usr/bin/dpkg returned an error code (1)
End-Date: 2020-07-24 12:00:04
Start-Date: 2020-07-27 10:17:29
Commandline: apt upgrade
Install: linux-image-4.9.0-13-amd64:amd64 (4.9.228-1, automatic)
Upgrade: libcomerr2:amd64 (1.43.4-2+deb9u1, 1.43.4-2+deb9u2), e2fsprogs:amd64 (1.43.4-2+deb9u1, 1.43.4-2+deb9u2), e2fslibs:amd64 (1.43.4-2+deb9u1, 1.43.4-2+deb9u2), libss2:amd64 (1.43.4-2+deb9u1, 1.43.4-2+deb9u2), linux-image-amd64:amd64 (4.9+80+deb9u10, 4.9+80+deb9u11)
End-Date: 2020-07-27 10:37:34
下面是今天重新安装 mongoDB 后的情况:
Start-Date: 2020-07-29 11:55:34
Commandline: apt-get install -y mongodb-org
Requested-By: user (1001)
Install: mongodb-org-mongos:amd64 (3.6.19, automatic), mongodb-org-tools:amd64
(3.6.19, automatic), mongodb-org-shell:amd64 (3.6.19, automatic), mongodb-org:amd64 (3.6.19), mongodb-org-server:amd64 (3.6.19, automatic)
End-Date: 2020-07-29 11:55:50
Start-Date: 2020-07-29 12:00:07
Commandline: apt-get upgrade -y
Upgrade: libcurl3:amd64 (7.52.1-5+deb9u10, 7.52.1-5+deb9u11), curl:amd64 (7.52.1-5+deb9u10, 7.52.1-5+deb9u11), libcurl3-gnutls:amd64 (7.52.1-5+deb9u10, 7.52.1-5+deb9u11)
End-Date: 2020-07-29 12:00:09
和
> dpkg.log | grep remove
没有给我任何东西。
我在升级之前对虚拟机进行了备份,因此如果需要,我可以发布升级之前的文件。
这是我第一次使用 stackexchange,所以请原谅我,并告诉我我在帖子中是否做错了什么!
任何帮助理解这种现象的帮助都值得赞赏!
谢谢。
编辑
我刚刚完成恢复备份,但mongodb
已经不存在了。无论如何,我可以检查它何时被卸载吗?我有一个错误
[26] 12:00:35 R servername Exited with error code 100
来自管理此更新的远程服务器。能有关联吗?
编辑2
> zgrep mongodb-org /var/log/apt/history.log.*
我在以下位置找到了这个history.log.4.gz
:
Start-Date: 2020-03-04 11:47:17
Commandline: apt autoremove
Remove: mongodb-org-mongos:amd64 (3.6.17), sgml-base:amd64 (1.29), libicu64:amd64 (64.1-0.1+0~20190410090943.5+stretch~1.gbp38f694), php7.3-mysql:amd64 (7.3.15-4+0~20200224.55+debian9~1.gbpbea824), mongo-tools:amd64 (3.2.11-1+b2), mongodb-org-shell:amd64 (3.6.17), libtcmalloc-minimal4:amd64 (2.5-2.2), xml-core:amd64 (0.17), libgoogle-perftools4:amd64 (2.5-2.2), libunwind8:amd64 (1.1-4.1), linux-image-4.9.0-8-amd64:amd64 (4.9.144-3.1), libstemmer0d:amd64 (0+svn585-1+b2), mongodb-org-server:amd64 (3.6.17), libyaml-cpp0.5v5:amd64 (0.5.2-4)
End-Date: 2020-03-04 11:47:27
那么,罪魁祸首就在这里?有什么方法可以找到谁发出了该命令以及为什么它在没有安装新版本的情况下删除了 mongoDB ?最近的文件不再history.log
显示任何mongo-db
活动。奇怪的是,直到今天似乎还没有用户注意到任何问题?我在内核更新后重新启动是否有可能做到这一点?可能是某个地方有缓存?
答案1
正如我们在评论中确定的那样,MongoDB 的删除与内核升级无关。您问题末尾的日志,
Commandline: apt autoremove
显示最多的 MongoDB 软件包已被删除,因为它们已自动安装但不再需要。这可能是因为它们是作为 的依赖项安装的mongodb-org
,而后者随后被删除。删除mongodb-org
将于 3 月 4 日发生,并且不再出现在日志中。
就注意到变化而言,我怀疑关键因素是重新启动。符合 Debian 政策的软件包将在删除时停止其服务,但 MongoDB 软件包(并非来自 Debian)可能并非如此。因此,这些软件包在三月份被删除,但该服务继续运行并提供数据;仅当服务器重新启动时它才停止。