J'ai un travail cron exécuté par root toutes les heures qui vérifie s'il y a une violation de tripwire. Il m'envoie toujours un email toutes les heures, si j'ai une violation ou non. S'il y a violation, cela inclut le rapport. S'il n'y a pas de violation, il m'envoie un email vide avec juste la ligne d'objet.Le script Bash envoie un courriel même s'il ne le devrait pas
est ici le script:
#!/bin/bash
# Save report
tripwire --check > /tmp/twreport
# Count violations
v=`grep -c 'Total violations found: 0' /tmp/twreport`
# Send report
if [ "$v" -eq 0 ]; then
mail -s "[tripwire] Report for `uname -n`" [email protected] < /tmp/twreport
fi
S'il envoie un email vide, cela semble indiquer '/ tmp/twreport' est vide. Cela aurait certainement pour résultat que v soit mis à zéro. Suggérer que vous déboguez ce qui est réellement écrit dans ce fichier. – paxdiablo
Le fichier est écrit dans - il montre soit 0 violations ou x nombre de violations. Le v est soit 0 ou 1. Quand je l'exécute manuellement cela fonctionne bien, seulement dans cron ne fonctionne pas. – MarkH
Il existe une grande différence d'environnement entre les terminaux et les tâches cron, ce qui peut poser problème ici. Voir par exemple http://stackoverflow.com/questions/1972690/cannot-get-php-cron-script-to-run/1972763#1972763 – paxdiablo