Como posso diferenciar dois servidores Redhat Linux?

15

Eu tenho dois servidores que devem ter a mesma configuração, exceto as diferenças conhecidas.

Ao executar:

find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | sort > allfiles.txt

Eu posso encontrar uma lista de todos os arquivos em um servidor e compará-lo com a lista de arquivos no outro servidor. Isso mostrará as diferenças nos nomes dos arquivos que residem nos servidores.

O que eu realmente quero fazer é executar uma soma de verificação em todos os arquivos em ambos os servidores e compará-los para também encontrar onde o conteúdo é diferente. por exemplo

find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | xargs /usr/bin/sha1sum

Esta é uma maneira sensata de fazer isso? Eu estava pensando que o rysnc já tem a maior parte dessa funcionalidade, mas pode ser usado para fornecer a lista de diferenças?

    
por Stuart Woodward 01.06.2009 / 11:49

3 respostas

22

Você está certo, o rsync é perfeito para isso. Use --itemize-changes (vulgo -i). Certifique-se de que você pode executar isso como root em ambos os lados (ou algum outro usuário com acesso total à máquina):

rsync -ani --delete / root@remotehost:/
  • -a é para arquivar e basicamente faz com que o rsync faça uma cópia exata (além de alguns casos envolvendo links)
  • -n é para execução a seco e significa que nada será realmente alterado (Este é IMPORTANTE!:))
  • -i é para alterações de itemize e gera um formato simples de entender, uma vez obtido, mostrando todos os arquivos que precisam ser atualizados (a sintaxe é explicada integralmente na página man sob a ajuda detalhada para isso gatilho).
  • --delete faz o rsync excluir arquivos que existem no destino, mas não na origem.

Se você quiser excluir determinados caminhos, use comandos como --exclude /var . Os padrões de exclusão são relativos ao diretório de origem (que, nesse caso, é /, portanto, são efetivamente absolutos).

    
por 01.06.2009 / 11:58
7

Você pode querer investigar o sinalizador -s do rsync. De man rsync :

    -c, --checksum              skip based on checksum, not mod-time & size

Eu deixo um comentário para a resposta de Alex Jurkiewicz, mas não tenho o suficiente de rep: '(ainda ...

    
por 01.06.2009 / 12:02
4

Uma ferramenta útil que você deve considerar é "rpm -Va". Isso imprimirá uma lista de todos os arquivos empacotados que diferem de quando foram empacotados. Isso ignora todos os arquivos não-empacotados, mas é uma ótima maneira de ter uma idéia dos arquivos que foram alterados desde a instalação, que fazem parte do sistema básico. Eles também incluem um sinalizador que informa se eles são considerados arquivos de configuração.

Por exemplo:

S.5....T  c /root/.bashrc
S.5....T  c /etc/yum/yum-updatesd.conf
.M......    /usr/bin/rdate
..5....T  c /etc/dbbackup.conf
S.5....T  c /etc/webalizer.conf
SM5....T  c /etc/sysconfig/iptables-config

Então ".bashrc" e "yum-updatesd.conf" são arquivos de "configuração" que mudaram em tamanho, tempo e checksum MD5. "rdate" teve sua mudança de modo ...

O banco de dados RPM é uma coisa muito útil.

    
por 26.11.2011 / 07:51

Tags