+ Responder ao Tópico



  1. #1

    Exclamation Backup com md5

    Alguém tem algum script de backup que confira o md5 após terminar? ou seja um script que confira a instegridade da copia entre 2 hosts da rede.

  2. #2

    Padrão

    Tarde...

    Então pronto eu não tenho mas acho que funcionaria implementar no script o md5sum -b "file" e comparar... a origem com o destino

    Se for utilizar entre dois hosts usa o ssh para executar o comando, de preferência com chaves criadas...

    Você já tem o script de backup e só quer implementar o md5sum ou precisa de tudo ainda... ?

    Abço
    Filipe

  3. #3

    Padrão

    Já tenho um script pronto com sshpass, como assim? md5sum compara com o host remoto ?

  4. #4

    Padrão

    O md5sum não compara com o host remoto, o que eu quis dizer é para você gerar o checksum do arquivo enviado p/ o host2 utilizando o md5sum via ssh e armazenar o hash, depois comparar com o checksum executado no host1

  5. #5

    Smile

    Tá, vejamos...

    No host 1
    md5sum arquivo.tar.bz2 > md5host1.txt
    faço a copia do md5host1.txt para o host2

    No host 2
    md5sum arquivo.tar.bz2 >md5host2.txt

    Como ficaria a comparação (IF) dos dois arquivos, por que tentei algumas comparações mais percebi que não eram verdadeiras.

  6. #6

    Padrão

    Citação Postado originalmente por bokaoxD Ver Post
    Tá, vejamos...

    No host 1
    md5sum arquivo.tar.bz2 > md5host1.txt
    faço a copia do md5host1.txt para o host2

    No host 2
    md5sum arquivo.tar.bz2 >md5host2.txt

    Como ficaria a comparação (IF) dos dois arquivos, por que tentei algumas comparações mais percebi que não eram verdadeiras.
    md5sum -c nome.do.arquivo.md5
    Este comando compara o MD5 com o arquivo que foi usado para cria-lo... Ele retorna algo como "/dir/nome.do.arquivo: OK" como resultado.

    Se voce usar um bash script, daria pra fazer algo do genero:
    RESULTADO=`md5sum -c nome.do.arquivo.md5 | cut -d\ -f2" <-- 2 espacos depois de -d\

    O resultado seria apenas um "OK".

    Com um IF, voce compara a variavel
    if ["$RESULT" == "OK"]; then
    bla bla...

    Nao lembro exatamente a sintaxe do IF agora de cabeca... Mas acho que ja da uma ideia... Ha algum tempo uso PHP ao inves de shell script pois me da mais opcoes...

  7. #7

    Padrão

    Eh cara tem várias formas... abaixo eu fiz um barato tosco... mas q funciona
    Código :
    #!/bin/bash
    CH01=$( md5sum calc.sh | awk '{print $1}' )
    CH02=$( md5sum calc.sh_bkp | awk '{print $1}' )
    if [ $CH01 = $CH02 ]; then
            echo Backup Ok
    else
            echo Xiiii....
    fi

  8. #8

    Padrão

    Amigos,

    talvez tenha me expressado mal, ou copreendido voces mal... mas precisava que o MD5 do arquivo BACKUP.TAR dentro do host1 fosse comparado com o MD5 do mesmo BACKUP.TAR porém agora lá no host2, para verificar a integridade da copia. Supostamente algo assim, porém correto.

    No HOST1:
    Código :
    md5sum BACKUP.TAR > md5_host1.txt
    sshpass 'senha' scp BACKUP.TAR [email protected]:/root/
    sshpass 'senha' scp md5.host1.txt [email protected]:/root/
    NO HOST 2:
    Código :
    cd /root/
    md5sum BACKUP.TAR > md5_host2.txt

    Agora ainda no host 2, eu precisaria comparar o md5_host1.txt com md5_host2.txt

  9. #9

    Padrão

    Vê se melhorou...

    Código :
    #!/bin/bash
    #  
    # Variável CH01 Recebe o checksum do arquivo local, ou seja, a origem
    # Variável CH02 Recebe o checksum do arquivo remoto que foi copiado da origem
    CH01=$( md5sum /root/BACKUP.tar | awk '{print $1}' ) 
    CH02=$( sshpass 'senha' ssh [EMAIL="[email protected]"][email protected][/EMAIL] md5sum /root/BACKUP.TAR | awk '{print $1}' ) 
    if [ $CH01 = $CH02 ]; then # Compara os checksum das duas variáveis
            echo Backup Ok
    else
            echo Xiiii....
    fi

  10. #10

    Padrão

    Citação Postado originalmente por tricolor Ver Post
    Vê se melhorou...

    Código :
    #!/bin/bash
    #  
    # Variável CH01 Recebe o checksum do arquivo local, ou seja, a origem
    # Variável CH02 Recebe o checksum do arquivo remoto que foi copiado da origem
    CH01=$( md5sum /root/BACKUP.tar | awk '{print $1}' ) 
    CH02=$( sshpass 'senha' ssh [EMAIL="[email protected]"][email protected][/EMAIL] md5sum /root/BACKUP.TAR | awk '{print $1}' ) 
    if [ $CH01 = $CH02 ]; then # Compara os checksum das duas variáveis
            echo Backup Ok
    else
            echo Xiiii....
    fi

    Vlw obrigado, vou testar e volto pra fechar