我在异地使用无头 Linux 服务器,并使用 访问它ssh
。
由于一直有人抱怨 Ubuntu 14.04 已经过时,我尝试升级到 Ubuntu 18.04 LTS 64 位,但之后我收到了很多错误消息。例如,邮件服务器不再工作。
现在,我的提供商提供完全重新安装可运行的 Ubuntu 18.04 LTS 64 位的服务,但代价是删除之前存在的所有数据。
是否有一个差异工具可以准确地告诉我我的系统与现成的 Ubuntu 14.04 有何区别,以便我可以轻松地只备份我需要的文件?
答案1
是的,这是可能的,但你需要知道不再存在的东西 和 有什么不同吗所以:
不再存在的是:
rsync --archive --verbose --update --dry-run --delete $szOldServerPath $szNewServerPath | grep "^deleting "
上述命令将为您提供新服务器中不存在的文件列表。
grep ^deleting
因为每行都会打印:deleting ..file..
有什么不同吗:
rsync --archive --verbose --dry-run --checksum $szOldServerPath $szNewServerPath
会给你的列表不同的文件(包括新文件)
祝你好运根据这台服务器运行的时间长短,你会得到数千到数百万个不同的文件,所以无论你使用哪个系统,永远不会简单的正如您所要求的。
答案2
您可以轻松列出所有当前安装的软件包,并且可以使用此列表在以后安装所有当前安装的软件包。
您需要找到一种方法来保存此列表。您可以通过电子邮件发送列表文件,也可以将其复制到 pastebin 或以某种方式下载。只需确保将此列表的副本保存在某个地方,以便以后可以检索。
运行以下命令创建名为“INSTALLED.txt”的列表文件:
echo $(dpkg -l | awk '{print $2}') | tee packages1404.txt
当列表文件位于当前目录中时,您可以使用以下命令安装列表中的软件包:
sudo apt update
sudo apt install $(cat packages1404.txt)
或者,您可以将列表以纯文本形式复制并粘贴到终端中sudo apt install
,然后将列表粘贴到终端中,然后按 Enter 键。
这将尝试安装所有当前软件包。但是,可能有一些软件包版本不再可用。可能有一些其他版本“没有安装候选”,您必须搜索这些软件包才能查看哪个软件包可以替换旧软件包。