
Eu tenho uma entrada crontab que executa um script e armazena a saída em um arquivo, digamos currenthash.log como um hash MD5.
Mas não consigo atender a um requisito em que preciso criar um novo arquivo, como changehash.log, se a soma de verificação MD5 for alterada. Isso é algo que posso fazer no cronjob ou no próprio script?
Responder1
cron
não tem lógica sobre como a tarefa é executada.
Ele apenas gera o comando no momento que você especificou.
Para esse tipo de inteligência, você precisa implementá-la em seu script.
Outra maneira de gerenciar isso também pode ser usando logrotate
(girar arquivos de log sob algumas condições) ouincron
( cron
serviço semelhante a onde os gatilhos sãoinotify
eventos em vez de tempo).
Responder2
Você precisa salvar o hash antigo em algum lugar e compará-lo com o novo. Algo nessa direção:
#!/bin/sh
file=/path/to/file
hashfile=/path/to/stored/hash
newhash=$(md5sum "$file")
oldhash=$(cat "$hashfile")
if [ "$newhash" != "$oldhash" ]; then
echo it changed...
fi
echo "$newhash" > "$hashfile"