
Tengo una entrada crontab que ejecuta un script y almacena el resultado en un archivo, por ejemplo currenthash.log como un hash MD5.
Pero no puedo cumplir con un requisito en el que necesito crear un nuevo archivo, por ejemplo, changehash.log si cambia la suma de comprobación MD5. ¿Es esto algo que puedo hacer en cronjob o en el propio script?
Respuesta1
cron
no tiene lógica con respecto a cómo se ejecuta la tarea.
Simplemente genera el comando en el momento que usted especificó.
Para ese tipo de inteligencia, debes implementarla en tu guión.
Otra forma de gestionar eso también podría ser usar logrotate
(rotar archivos de registro según algunas condiciones) oincron
( cron
-servicio similar donde se activan los desencadenantesinotify
eventos en lugar de tiempo).
Respuesta2
Debe guardar el hash anterior en algún lugar y luego compararlo con el nuevo. Algo en esta dirección:
#!/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"