Pergunta

Digamos que eu tinha um script que verificou os locais do Honeypot usando o MD5SUM.

#!/bin/bash
#cryptocheck.sh
#Designed to check md5 CRC's of honeypot files located throughout the filesystem.
#Must develop file with specific hashes and create crypto.chk using following command:
#/opt/bin/md5sum * > crypto.chk
#After creating file, copy honeypot folder out to specific folders

locations=("/share/ConfData" "/share/ConfData/Archive" "/share/ConfData/Application"
"/share/ConfData/Graphics")

for i in "${locations[@]}"
do
        cd "$i/aaaCryptoAudit"
        /opt/bin/md5sum -c /share/homes/admin/crypto.chk
done

E a saída parecia assim:

http://pastebin.com/b4au4s6k

Onde você começaria a tentar reconhecer a saída e talvez desencadear algum tipo de resposta pelo sistema se houver um 'falhado'?

Já trabalhei um pouco com o Perl tentando analisar arquivos de log antes, mas minhas tentativas normalmente falham miseravelmente por um motivo ou outro.

Essa pode não ser a maneira correta de fazer isso, mas eu gostaria de colocar esse script em um cronjob que percorria a cada minuto. Eu tinha alguns caras me dizendo que um trabalho ou script inotificar (não estou familiarizado com isso) seria melhor do que fazê -lo dessa maneira.

Alguma sugestão?

--- Editar

Fiz outro script para ligar para o script acima e enviar a saída para um arquivo. O novo script executa um grep -q em 'falhou' e, se ele escolher algo, soa o alarme (TBD qual será o alarme).

#!/bin/bash
#cryptocheckinit.sh
#

#rm /share/homes/admin/cryptoalert.warn
/share/homes/admin/cryptocheck.sh > /share/homes/admin/cryptoalert.warn
grep -q "FAILED" /share/homes/admin/cryptoalert.warn && echo "LIGHT THE SIGNAL FIRES"
Foi útil?

Solução

Usar:

if ! /opt/bin/md5sum -c /share/homes/admin/crypto.chk
then 
    # Do something
fi

Ou tubar a saída do loop:

for i in "${locations[@]}"
do
        cd "$i/aaaCryptoAudit"
        /opt/bin/md5sum -c /share/homes/admin/crypto.chk
done | grep -q FAILED && echo "LIGHT THE SIGNAL FIRES"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top