Entrada condicional do crontab

Entrada condicional do crontab

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

cronnã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( cronserviço semelhante a onde os gatilhos sãoinotifyeventos 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"

informação relacionada