Você pode usar rsyncno modo de simulação, conforme sugerido brevemente em outra resposta . Ele lista todos os arquivos que são diferentes.
Para isso, use as rvncopções ( r=recursive, v=verbose, n= dry-run, c=checksum). Com rsyncno modo pull ( rsync [OPTION...] [USER@]HOST:SRC... [DEST]), um exemplo é:
Usei SFTP para o servidor remoto e digitei meu nome de usuário/pwd quando solicitado. Então eu usei o dir que foi criado no .gvfsdir no meu diretório home no comando diff.
diff -r --brief /home/user dir/.gvfs/SFTP\ on\ freenas.local/path to dir/dir1 /path to local dir/dir2
Você pode fazer isso com a substituição de processo do Bash :
Ou, se ambos estiverem em servidores remotos:
Finalmente encontrei uma ótima solução: vimdiff
graças a http://linux.spiney.org/remote_diff_with_vim_and_ssh veja também http://www.vim.org/scripts/script.php?script_id=1075 .
Se você quiser apenas ver quais arquivos são diferentes, em vez de um diff dos arquivos reais, você pode usar
rsync --dry-run
Aqui está outra receita de linha de comando rápida e suja. Ao contrário da resposta escolhida, funciona dentro de makefiles:
Use scp para trazer os arquivos para uma máquina comum e diferenciá-los lá?
Ou, se você quiser apenas saber se os arquivos são diferentes ou não, faça um hash com md5sum em cada máquina.
Você também pode procurar algo como SSHFS , mas não sei quão bem um algoritmo como diff funciona sobre isso.
Uma maneira, se for possível em seu sistema, seria simplesmente montar o sistema de arquivos remoto com sshfs .
Você pode usar
rsync
no modo de simulação, conforme sugerido brevemente em outra resposta . Ele lista todos os arquivos que são diferentes.Para isso, use as
rvnc
opções (r
=recursive,v
=verbose,n
= dry-run,c
=checksum). Comrsync
no modo pull (rsync [OPTION...] [USER@]HOST:SRC... [DEST]
), um exemplo é:Lembre -se de que isso não fornece informações sobre se o arquivo local ou remoto é mais recente. Apenas se eles diferem.
em sua máquina local, faça uma cópia recursiva do diretório que você deseja diferenciar. Por exemplo:
use rsync para replicar o diretório remoto na cópia local:
use diff para encontrar a diferença entre o diretório local e a réplica local do remoto:
Se você tiver sshfs e precisar diferenciar diretórios:
Aqui está como eu fiz isso.
Usei SFTP para o servidor remoto e digitei meu nome de usuário/pwd quando solicitado. Então eu usei o dir que foi criado no
.gvfs
dir no meu diretório home no comando diff.