Como detectar a partir de um shellscript que um arquivo no servidor remoto foi alterado?

1

O que pode ser usado para detectar que o arquivo remoto é diferente comparado a um arquivo local?

Possivelmente usando o ssh como canal de comunicação. Scripted no bash, tendo servidores linux em mente.

Isso pode ser baseado no conteúdo do arquivo (md5sum), mas eu gostaria de deduzir (do tempo de modificação) qual arquivo é mais recente ...

Estou tentando detectar se alguns arquivos de configuração foram editados nos servidores em comparação com cópias sob controle de versão e mesclar as alterações.

    
por timmu 15.11.2014 / 11:16

1 resposta

0

Uma solução que lida com hosts locais e remotos (por meio de ssh) seria rsync :

rsync -av -n -c src/ dst/

O -n sinalizador diz ao rsync para não fazer nenhuma transferência - então a saída seria apenas os arquivos que ele deseja que transfiram, ou os arquivos alterados. O -c garante que o rsync faça uma comparação MD5. Se você quiser apenas fazer uma correspondência com o tamanho e a hora da última modificação, basta omitir -c .

Outro método seria verificar os dois diretórios em git repositories. Isso requer uma familiaridade significativa com git , mas poderia ser conseguido mantendo os arquivos de cada host em uma ramificação separada. Em seguida, pode-se usar git fetch (que omite a mesclagem implícita de git pull ) e usar git diff entre filiais para inspecionar as alterações. Esta questão pode ser útil em tal configuração.

    
por 16.11.2014 / 04:09

Tags