Diff命令用于比较不同服务器上的文件 - Unix

时间:2011-12-21 17:25:39

标签: linux unix diff

我可以使用diff命令比较两个不同服务器上的文件吗? 如果没有,还有其他选择吗?

5 个答案:

答案 0 :(得分:21)

您可以使用scp从其他服务器复制文件,然后使用diff

ssh到远程主机和diff使用如下命令:

ssh user@remote "cat /path/to/remote/file" | diff - /path/to/local/file

答案 1 :(得分:9)

如果您比较多个文件,请查找rsyncrdiff,这样可以节省复制所有文件的带宽。

顺便说一句,如果您的文件非常大,请使用该信息更新您的问题。

答案 2 :(得分:4)

“ - ”与STDIN区别开来。你可以这样做:

ssh server 'cat file_to_diff' | diff -u localfile -

答案 3 :(得分:2)

我知道这是一个迟到的答案,但我从字面上看问题,没有本地文件和两个远程文件
bash(而且不仅仅是),可以使用流程替换 [12] <(...)

diff <(ssh Server1 'cat /path/to/file1') <(ssh Server2 'cat /path/to/file2')
  

进程<(list)以异步方式运行,其输入或输出显示为文件名。

注意

  • 当然,如果您只需要一个远程文件,则可以将本地文件改为<(...)之一。
  • 如果两个文件都在同一台服务器上,您可以使用更简单的

    ssh Server1 'diff /path/to/file1 /path/to/file2'
    

答案 4 :(得分:0)

如果您正在对AWS实例进行故障排除,那么停止inatanceA然后将其驱动器附加到您想要与之比较的实例B可能是有意义的。