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

Anu*_*uri 11 unix linux diff

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

dog*_*ane 23

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

或者ssh到远程主机并diff使用如下的单个命令:

ssh user@remote "cat /path/to/remote/file" | diff - /path/to/local/file
Run Code Online (Sandbox Code Playgroud)


Jef*_*ges 9

如果你比较多个文件,那么查找rsyncrdiff,这可以节省复制所有文件的带宽.

顺便说一句,如果您的文件非常大,请用这些信息更新您的问题.


Has*_*tur 7

我知道这是一个迟到的答案,但我从字面上理解这个问题,没有本地文件和两个远程文件
bash(不仅如此)中,可以使用进程替换 [ 1 , 2 ]<(...)

diff <(ssh Server1 'cat /path/to/file1') <(ssh Server2 'cat /path/to/file2')
Run Code Online (Sandbox Code Playgroud)

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

笔记

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

    ssh Server1 'diff /path/to/file1 /path/to/file2'
    
    Run Code Online (Sandbox Code Playgroud)


Cor*_*son 5

“-”与 STDIN 不同。你可以这样做:

ssh server 'cat file_to_diff' | diff -u localfile -
Run Code Online (Sandbox Code Playgroud)