我在 Ubuntu Server 的do-release-upgrade
过程中不小心按下了 Ctrl+C 。我掉到一个 shell 来比较 /etc/ 中的 .conf 文件。当我按下 Ctrl-C 时,它询问我是否想尝试重新连接到升级过程,但它没有这样做。
所以我退出了,现在有一个挂起的 dpkg 进程持有 apt 锁。这是一个没有 GUI 前端的虚拟化服务器......
是否可以恢复升级过程,或者我是否必须终止 dpkg 进程并重新启动?
我有一个 Ubuntu 8.04 LTS 服务器。有几个包分别是“忍住了”(“以下更新已存回”),当我做的apt-get upgrade
。我的理解是我可以apt-get dist-upgrade
升级这些软件包,但我有一些担忧:
如果我这样做dist-upgrade
,我会从 8.04 升级到更高版本(我猜是 8.10)吗?如果是这样,8.04 成为“长期支持”(LTS)的意义何在?
这是一个“危险”的过程吗?我假设包被保留,因为它们依赖于新包。是dist-upgrade
简单地拉取新软件包并进行相当简单的升级,还是有需要注意的问题?
我只是尝试sudo do_release_upgrade
在 AWS EC2 Ubuntu 13.10 服务器上升级到 14.04。一切都很顺利,直到我收到以下消息:
Run Code Online (Sandbox Code Playgroud)A new version of /boot/grub/menu.lst is available, but the version installed currently has been locally modified. What would you like to do about menu.lst? * install the package maintainer's version * keep the local version currently installed * show the differences between the versions * show a side-by-side difference between the versions * show a 3-way difference between available versions * do a 3-way merge between available versions (experimental) * …
我们想要备份我们的 Debian 服务器上的所有内容,该服务器在世界的另一端远程运行(由 Linode 托管),而无需关闭它。
这个系统运行 shell、电子邮件、XMPP/prosody 和 web,有几个简单的 nginx 设置。
为了安全起见,我们希望备份与这些内容相关的文件。例如,用户存储在其主目录中的文件。
我们不需要在每个 /etc 文件中完全复制现有的设置;相反,我们甚至首先进行备份的原因是我们可以将其全部移至新设置(较新版本的 Debian 仍在 Linode 上)。
我看到 Linode 提供备份服务。但从长远来看,我们也需要我们自己的备份,以防万一它们倒闭或发生其他奇怪的事情。
这个问题存在的原因是,当我过去尝试进行备份时,我一直在犯以下两个错误:
/
它下面的所有内容”然后陷入一些奇怪的无限循环,因为我复制的驱动器安装在 /media/backup 下并且它正在递归复制自身 [obv该特定问题不适用于此处,因为我们将通过 rsync 或类似方式进行备份] 或者它在尝试复制 /proc 或 /var 或其他任何“活动”内容时卡住了,例如试图跟上不断变化的日志,或者/var
),让我们/etc
在 /var/ 下获取一份和所有旧邮件的副本vmail”,然后我总是搞砸了文件权限或时间戳(确保这次我不会将 unix 文件备份到 FAT 驱动器)或忘记某些东西(“哦,拍摄,我在 /usr/ 中有一些自定义脚本/我从未在其他任何地方存储过的本地/垃圾箱,我忘了拿那些,我猜它们现在已经不见了”)。因此,直接复制整个驱动器会导致陷阱,而选择性地复制目录会导致陷阱。我想知道如何正确地做到这一点。
服务器故障问题一个完整的备份系统需要什么?涵盖哲学和良好实践,但我正在寻找以下更具体的细节:
rsync -HXaz
我认为对我们来说是一个不错的选择?该-z
OBV没有真正涉及到这是“我该怎么维护”的问题我看到的很多备份建议,例如使用dd
,似乎都假定驱动器已卸载且未在使用中。但我我不应该排除“活”的目录,如/ proc和一些在/ var子目录(但是,一些在/ var我知道我们肯定的东西做必要保持)和/安装?在这种情况下,我还需要考虑什么?然后我想我可以使用 rsync 并使用一堆--exclude
标志来捕捉它。
或者有更好的想法,尤其是 FOSS 友好的想法?
我有一台在发行版升级期间意外关闭的计算机(Ubuntu 8.10 -> 9.04)。它现在无法完成启动 - 各种 X 错误,然后它会进入登录屏幕但不允许登录。
我有它的备份,驱动器上的 /home 数据仍然正常,所以它不是紧急情况,但是完全重建仍然是一个烦人且耗时的过程。有什么办法可以从中恢复吗?我有一张 9.04 的 CD,我正在讨论尝试在顶部安装 - 这是一个好主意吗?
如果做不到这一点,有没有什么好的方法可以检查驱动器并生成已安装的软件列表,甚至最好是 /home 外部的设置(如 /etc)?
如果我必须从头开始,有什么建议可以与负责意外关机的人打交道吗?:)
编辑:非常感谢您提供所有答案,我真的需要接受所有答案,因为我需要使用每个答案。我能够使用这样的东西完全修复安装:
sudo dpkg --configure -a
sudo apt-get update
sudo dpkg --configure -a
sudo dpkg --configure -a --abort-after=99999
sudo apt-get dist-upgrade
sudo apt-get -f install
sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud) apt-get dist-upgrade 会做与运行 do-release-upgrade 完全相同的事情吗?
我目前正在运行 Ubuntu Server 11.04。
PayPal 正在升级所有 Web 和 API 端点上的 SSL 证书。由于对计算能力进步的安全担忧,业界正在逐步淘汰 1024 位 SSL 证书 (G2) 以支持 2048 位证书 (G5),并正在转向更高强度的数据加密算法以保护数据传输,SHA -2 (256) 高于旧的 SHA-1 算法标准。
但是,我们仍在使用与升级不兼容的系统,更新我们的服务器不是一种选择。因此,我们认为代理(nginx)paypal 端点,以便paypal 认为nginx 服务器(支持更新)正在访问该端点,而不是我们的旧服务器。这可能吗?如果没有,绕过此升级的可能选项是什么?
这是 nginx 代理的示例配置
服务器 { 听80; server_name api.sandbox.paypal.com; access_log /var/log/nginx/api.sandbox.paypal.com.access.log; error_log /var/log/nginx/api.sandbox.paypal.com.error.log; 位置/nvp { proxy_pass https://api.sandbox.paypal.com/nvp; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header 主机 $http_host; } }
推荐升级路径,TL;DR:
备份数据,然后
apt update
apt upgrade
apt dist-upgrade
reboot
Run Code Online (Sandbox Code Playgroud)
还要禁用所有非主流包(如果有)。
然后为新发行版准备 APT:
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/*
Run Code Online (Sandbox Code Playgroud)
第一个命令显示错误:
apt update
...
Err:6 http://security.debian.org/debian-security bullseye/updates Release
404 Not Found
Reading package lists... Done
E: The repository 'http://security.debian.org/debian-security bullseye/updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Run Code Online (Sandbox Code Playgroud) Ubuntu 的软件更新经常需要重新启动(这可能会产生副作用,例如停机时间)。
我看到 Ubuntu 有https://www.ubuntu.com/livepatch,它允许在不重启的情况下进行内核更新,但是,这是一项付费服务。还有ksplice。
是否存在升级/补丁不需要重启的 Linux 发行版/进程?
(我知道设置高可用性 (HA) 服务器并拥有一次性服务器是最佳实践 - 所以我不是在要求保持服务,而是在实际服务器上。)
我正在寻找升级服务器并试图找出一个好的计划。
我们目前有4台服务器:
FreeBSD 服务器
~2010 FreeBSD 8.4,32gb 内存,双 Xeon E5520 ZFS(8 个磁盘,镜像对中的 zraid 磁盘,8TB)
服务:
我的计划(基本)
我计划进行服务器升级,让我们从一台主服务器切换到两台服务器,每台服务器都会承担上面列表中的一些服务器职责(并相互复制),这样如果一台服务器出现故障,我可以快速激活第二个的所有功能。就像是:
服务器 1:
服务器 2:
我只运行过裸机,除了在 VirtualBox 上运行 Windows 2k3 之外,我没有使用 VM 的经验。我应该将我的服务器实例作为虚拟机运行吗?我认为这可能会使从崩溃中恢复更容易。总的来说,这看起来是一个好计划吗?
我一直在研究 ixSystems 服务器和戴尔机架硬件,如果这有什么不同的话。(我也从未使用过任何机架安装设备。)
upgrade ×10
ubuntu ×6
apt ×2
debian ×2
linux ×2
amazon-ec2 ×1
backup ×1
bare-metal ×1
freebsd ×1
linode ×1
linux-kernel ×1
rhel4 ×1
ubuntu-11.04 ×1
update ×1