Respostas:
ssh user@remote_host "cat remote_file.txt" | diff - local_file.txt
cat, que na verdade são apenas o arquivo original?
sshcomando remoto para o diffque está aguardando para comparar stdincom o arquivo local.
Experimentar:
diff local_file <(ssh user@server 'cat remote_file')
ou usando vimdiff:
vimdiff local_file scp://server//path/to/remote_file
diff local_file <(ssh user@server 'cat remote_file')apenas para SSH sem senha? Parece que não consigo obter um prompt de senha com ele ...
cat <(ssh user@server 'cat remote_file')e cat < <(ssh user@server 'cat remote_file')veja as diferenças.
Talvez isso não seja útil no seu caso exato, mas geralmente uso
sum -r
em cada máquina e compare manualmente as somas de verificação. Isso permite comparações de arquivos, mesmo quando eles não são acessíveis através de uma conexão ssh. Obviamente, tudo o que ela responde é "eles são idênticos", mas geralmente isso é suficiente para minhas necessidades. Também facilita verificar se um único arquivo é igual em 3 ou 4 ou mais máquinas.
catpara executar o catcomando apenas quando for determinado que os arquivos diferem.
info coreutils 'sum invocation'diz, inter alia: "'sum' é fornecido para compatibilidade; o programa 'cksum' (consulte a próxima seção) é preferível em novos aplicativos".
Se você preferir uma abordagem mais visual na sua sessão terminal. O comandante da meia-noite possui uma opção de sistema de arquivos remoto (opção SFTP link ... no menu) e uma opção de comparação visual de arquivos. Ele não é instalado por padrão na maioria dos sistemas Linux, mas está disponível na maioria dos repositórios base. Passos:
mc:) na pasta que contém o arquivo a ser comparadosftp://<user>@<servername>/<path>).instecla, selecione / realce os arquivos a serem comparados. ( tabmuda entre os painéis esquerdo e direito).Nota: O menu do comandante da meia-noite geralmente pode ser acessado usando o mouse na sua sessão do terminal. Se não funcionar, F9você também fica no menu.
SSHFSe acessá-lo como se fosse local.