ssh user@remote_host "cat remote_file.txt" | diff - local_file.txt
Estou conectado em um host via ssh
e gostaria de comparar (digamos com diff
) um determinado arquivo de configuração com seu equivalente em outro host, também acessível via ssh
, sem ter para baixar manualmente o arquivo remoto antes de executar o diff.
ssh user@remote_host "cat remote_file.txt" | diff - local_file.txt
Tente:
diff local_file <(ssh user@server 'cat remote_file')
ou usando vimdiff
:
vimdiff local_file scp://server//path/to/remote_file
Talvez isso não seja útil em seu caso exato, mas eu 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 estão acessíveis através de uma conexão ssh. Claro, tudo o que responde é "eles são idênticos", mas muitas vezes isso é suficiente para as minhas necessidades. Também facilita a verificação de que um único arquivo é o mesmo em 3 ou 4 ou mais computadores.
Se você preferir uma abordagem mais visual em sua sessão de terminal. O comando da meia-noite tem 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 de base. Etapas:
mc
) na pasta que contém o arquivo a ser comparado sftp://<user>@<servername>/<path>
). ins
, selecione / realce os arquivos a serem comparados. ( tab
muda entre o painel esquerdo e direito). Observação: normalmente, o menu do comando da meia-noite pode ser acessado usando o mouse na sua sessão de terminal. Isso não funciona F9
te coloca no menu também.