Eu quero ter certeza de que um script python em execução não foi modificado acidentalmente por algum outro processo (ou raio cósmico ou atualização de desenvolvedor inesperada). Já ouvi falar de uma soma de verificação do script (por exemplo, com md5sum
) em relação a um valor conhecido armazenado em um arquivo protegido contra gravação, mas não tenho certeza de como obter a soma de verificação de um arquivo em uso. A memória do script que está sendo executado é o meu arquivo de origem? Ou o que está sendo executado em algum outro lugar?
Aqui está o que eu tentei até agora, mas não sei se meu resultado é válido.
cd ~/Developer/MyProj
# Compute the md5 hash and store it in a new file
md5sum /home/username/Developer/MyProj/myscript.py > checksum
# Remove the write permissions for all (user, group, and other)
chmod a-w checksum
# Inspect the permissions to validate
ls -al checksum
sudo crontab -e
0 * * * * /bin/sh /home/username/Developer/MyProj/healthcheck.sh
Em healthcheck.sh
:
#!/bin/bash
s1=$(md5sum /home/username/Developer/MyProj/myscript.py)
s2=$(cat /home/username/Developer/MyProj/checksum)
if [ "$s1"="$s2" ]
then
echo "Script is what we think it is"
else
echo "Script was modified!"
fi