Du coup je suis parti sur un shell afin de m'alerter quand j'ai un écart sur un script dzvents et sa dernière sauvegarde validée
Code : Tout sélectionner
#!/bin/bash
# Script check version de script avec la source
now=$(date) # récupération de la date et heure pour les logs
applog=$(date +%d" "%b" "%X)" "$(hostname)" ("$(whoami)"): "
appmsg=$(date +%d" "%b" "%X)":"
debug=N # Y/N mode debug
rm -f /temp/exp_diff_lua.txt
f_dry_run=Y # on simule la commande
path_log=/home/pi/exploit/log
path_src=/home/pi/domoticz/scripts/dzVents/scripts
path_dst=/home/pi/source/dzvents
echo Script TIMER
find $path_src -type f -name t*.lua | while read line ;
do
nom=$(basename $line)
if [ $debug = Y ]
then
diff $path_src/$nom $path_dst/$nom
else
diff -q $path_src/$nom $path_dst/$nom > /dev/null 2>&1
fi
err=$?
if [ $err == 2 ]
then
echo "$nom non versionne"
echo $nom >> /temp/exp_diff_lua.txt
fi
if [ $err == 1 ]
then
echo "$nom ecart de version"
echo $nom >> /temp/exp_diff_lua.txt
fi
done
echo Script DEVICE
find $path_src -type f -name d*.lua | while read line ;
do
nom=$(basename $line)
if [ $debug = Y ]
then
diff $path_src/$nom $path_dst/$nom
else
diff -q $path_src/$nom $path_dst/$nom > /dev/null 2>&1
fi
err=$?
if [ $err == 2 ]
then
echo "$nom non versionne"
echo $nom >> /temp/exp_diff_lua.txt
fi
if [ $err == 1 ]
then
echo "$nom ecart de version"
echo $nom >> /temp/exp_diff_lua.txt
fi
done
if [ -f "/temp/exp_diff_sh.txt" ]
then
if [ $f_dry_run = Y ]
then
echo "ecart de version"
else
curl -s "https://tel/messages/http/send?apiKey=xxxxxx=&to=+336XXXXXXXX&content=script-dzvents-ecart-version"
fi
fi
exit 0
un fichier txt est généré dans la boucle afin de mémoriser les écarts celui-ci est dans temp en RAM
Cela me permet de m'alerter que j'ai modifié un script et de ne pas laisser cette modification trainer dans le temps sans la valider ou de revenir en arrière.
très utile si on change un timer ou des niveaux de log aussi, dans le cas d'un debug qui aurait été oublié dans le temps
Le mode debug permet d'afficher les écarts de chaque fichier
avec mise en place dans le crontab
20 * * * /home/pi/exploit/exp_diff_lua.sh >>/temp/exp_diff_lua.log 2>&1