Script para descobrir diferenças entre sistemas de arquivos locais e remotos através do SSH

3

Estou procurando um script para descobrir as diferenças entre um sistema de arquivos local e remoto (via SSH). Idealmente, o script deve fazer o seguinte: - procurar no sistema de arquivos local por pastas
- descobrir se a pasta está presente no sistema de arquivos remoto (informe se faltando e pare de inspecionar ainda mais a pasta)
- para pastas presentes de ambos os sistemas de arquivos, faça um diff dos arquivos que eles contêm (relate se o arquivo remoto está faltando ou é diferente).

A única coisa que pude encontrar no serverfault foi o exemplo de como fazer diffs em arquivos e pastas individuais: Como comparar diferenças entre diretórios (linux)
Como fazer diff no ssh?

O script pode ser escrito em qualquer idioma, não importa neste momento (apesar de bash / perl serem preferidos).

    
por Max 28.02.2012 / 13:00

2 respostas

5

rsync com os parâmetros --dry-run e -v relatarão os arquivos e diretórios, estejam eles presentes no lado remoto e também detectarão diferenças nos arquivos (por soma de verificação). Há muita documentação na rede sobre como fazer com que ele seja executado em SSH .

Se você preferir uma abordagem diferente, pode montar um diretório remoto localmente usando o FUSE / SSHfs e usar qualquer conjunto de ferramentas que funcionariam localmente.

    
por 28.02.2012 / 13:16
2

Uma solução simples e terrível que faz quase tudo o que você quer, mas não para de descer em pastas inexistentes no destino, seria usar rsync com a validação da soma de verificação fazendo um --dry-run :

rsync -av -c --dry-run source/ user@target:/target/  
    
por 28.02.2012 / 13:17