显示新旧服务器之间的变化

显示新旧服务器之间的变化

我在异地使用无头 Linux 服务器,并使用 访问它ssh

由于一直有人抱怨 Ubuntu 14.04 已经过时,我尝试升级到 Ubuntu 18.04 LTS 64 位,但之后我收到了很多错误消息。例如,邮件服务器不再工作。

现在,我的提供商提供完全重新安装可运行的 Ubuntu 18.04 LTS 64 位的服务,但代价是删除之前存在的所有数据。

是否有一个差异工具可以准确地告诉我我的系统与现成的 Ubuntu 14.04 有何区别,以便我可以轻松地只备份我需要的文件?

答案1

是的,这是可能的,但你需要知道不再存在的东西 有什么不同吗所以:

  1. 不再存在的是:

    rsync --archive --verbose --update --dry-run --delete $szOldServerPath $szNewServerPath | grep "^deleting "
    

    上述命令将为您提供新服务器中不存在的文件列表。

    grep ^deleting因为每行都会打印:deleting ..file..

  2. 有什么不同吗:

    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 键。

这将尝试安装所有当前软件包。但是,可能有一些软件包版本不再可用。可能有一些其他版本“没有安装候选”,您必须搜索这些软件包才能查看哪个软件包可以替换旧软件包。

来源:我改编了 ostechnix.com 上这篇博文中使用的命令

单击此处获取有关执行完整备份的信息。

相关内容