获取两个不同 Linux 安装差异的工具或技术

获取两个不同 Linux 安装差异的工具或技术

艾尔伯特爱因斯坦引用

疯狂:一遍又一遍地做同样的事情却期待不同的结果

很多时候,Linux 让我发疯,因为我一遍又一遍地做同样的事情得到不同盒子的结果不同。 (看我之前的问题)。

对我来说,最大的困惑是接管别人安装的机器(就像与网络托管公司注册时的情况一样)。你只是不知道自己在面对什么。

有没有什么聪明的办法差异工具我可以在 Linux (Ubuntu) 安装上运行,以便让我了解该计算机如何偏离默认安装?

即可以向我显示将表现出令人惊讶的命令列表的东西,从而避免尝试和错误的方法。

答案1

每当我有一个好的参考系统和一个表现不佳的参考系统时,我都会尝试将它们与 vimdiff 进行比较。我比较的内容因问题而异,例如

1)在包级别比较服务器时,我在每个服务器上创建排序的包列表,将结果发送到文件并比较它们,例如

在服务器1上:

dpkg --get-selections|sort > server1_packages

在服务器2上:

dpkg --get-selections|sort > server2_packages

将这两个文件复制到同一台机器上并比较(或 vimdiff)它们。

2) 列出正在运行的服务,如示例 1 所示

sysv-rc-conf --list|sort > server1_services

sysv-rc-conf --list|sort > server2_services

...等等,以及 vimdiff 那些。

3) 如果您正在排除与 Apache 不一致的配置,请复制配置文件,然后使用 vimdiff 等。

答案2

同一发行版的两个安装之间的大部分差异都在/etc.将一台计算机的内容复制/etc到另一台计算机上的临时目录并运行

diff -ru /etc /copy/of/other/etc

如果您想将计算机与默认安装进行比较,请从全新的默认安装(可能在虚拟机中)获取副本。

如果您可以从一开始就控制机器,请确保安装等等管理员保持/etc在版本控制之下。然后您将能够准确地看到发生了什么变化。

当然,会有很多差异。如果您还不知道在哪里寻找,那么这是调查特定行为差异的错误方法。例如,假设该命令adduser在两台机器上的行为不同。那么最好的方法就是看看adduser正在做什么;在两台机器上运行并进行比较。如果它有一个选项让它变得更详细(adduser没有),请使用它。更彻底的是,在下面运行该程序斯特雷斯,例如

strace -s9999 -efile adduser …

查看adduser访问哪些文件。

答案3

回到之前的问题,你的漂亮工具对我来说听起来是个好主意,但我从未听说过存在这样的野兽,它需要检查文件系统类型和大小等内容。

2002 年发生在我身上的一个真实例子:两个人在两台相邻的机架式服务器上安装了 SuSE 7.3 系统。他们投入了大量的精力来使两台服务器上的软件包完全相同。不久之后,我们在开发中的一些软件遇到了问题。一台服务器上使用 ext3 文件系统,另一台服务器上使用 Reiserfs。 Reiserfs 上的普通“ls”按词法顺序给出文件名,但 ext3 上则不然。一个程序因文件名乱序而失败。

答案4

对于我使用过的文件、用户、组、包、服务等http://www.scriptrock.com;它对一些服务器是免费的,并为您提供了服务器之间差异的良好视觉比较......对于漂移非常方便

相关内容