Execute um diff entre arquivos locais e remotos

32

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.

    
por fduff 14.07.2014 / 16:07

4 respostas

47
ssh user@remote_host "cat remote_file.txt" | diff - local_file.txt

Fonte

    
por 14.07.2014 / 16:08
18

Tente:

diff local_file <(ssh user@server 'cat remote_file')

ou usando vimdiff :

vimdiff local_file scp://server//path/to/remote_file
    
por 14.07.2014 / 16:16
8

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.

    
por 14.07.2014 / 16:51
1

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:

  1. Iniciar o comando midnight (comando: mc ) na pasta que contém o arquivo a ser comparado
  2. No outro lado (por exemplo, o menu Direito ), crie um link sftp para o outro servidor na mesma pasta ( sftp://<user>@<servername>/<path> ).
  3. Usando a tecla ins , selecione / realce os arquivos a serem comparados. ( tab muda entre o painel esquerdo e direito).
  4. No menu Comando , selecione Comparar arquivos

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.

    
por 11.05.2016 / 15:56

Tags