答案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;它对一些服务器是免费的,并为您提供了服务器之间差异的良好视觉比较......对于漂移非常方便