J'ai mit une petite tâche cron sur un serveur (elle doit tourner chaque nuit). Ce qu'elle fait est simple : elle lance chkrootkit, récupère le résultat et si il y a un problème, elle m'envoie le résultat par mail. Le problème c'est qu'elle m'envoie un mail chaque jour qui contient juste :
::::::::::::::
chk_result
::::::::::::::
C'est d'autant plus étrange que si j'exécute moi même le script en console il ne m'envoie rien du tout.
Voici le script :
#!/bin/sh
if [ `whoami` != "root" ]
then
echo "Vous devez être root pour éxecuter ce script"
exit 1
fi
cd /etc/cron.daily/
/usr/sbin/chkrootkit -q -r / 2>&1 | grep -v "/usr/sbin/dhcpd" > chk_result
if [ `more chk_result | wc -l` -ne 0 ]
then
more chk_result | /opt/mailer/send_mail.php
fi
rm chk_result
Quelqu'un a une idée ?
# more ?
Posté par netsurfeur . Évalué à 3.
A mon avis, si tu remplaçais
`more chk_result | wc -l`
par
`wc -l < chk_result`
ça devrait aller mieux.
De même:
more chk_result | /opt/mailer/send_mail.php
se remplace simplement par:
/opt/mailer/send_mail.php < chk_result
[^] # Re: more ?
Posté par NeoX . Évalué à 3.
j'ecrirais le script comme cela
sinon, il me semble qu'il n'est pas utile de passer par un mailer, le cron envoyant lui meme les sorties du script en email.
[^] # Re: more ?
Posté par B16F4RV4RD1N . Évalué à 2.
cat $TMPFILE | mail ton@email -s "resultat chkrootkit"
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
[^] # Re: more ?
Posté par Henry-Nicolas Tourneur (site web personnel) . Évalué à 1.
[^] # Re: more ?
Posté par Henry-Nicolas Tourneur (site web personnel) . Évalué à 1.
Sinon j'ai repris tes modifications, malheureusement, vu que le problème ne se déclenche que lorsque la tâche cron s'exécute (non reproductible depuis la ligne de commande), je verrai demain en relevant mes mails si ça marche.
Merci.
[^] # Re: more ?
Posté par NeoX . Évalué à 2.
genre toutes les 10 minutes
et tu verras vite si ca marche ou pas.
[^] # Re: more ?
Posté par Henry-Nicolas Tourneur (site web personnel) . Évalué à 1.
[^] # Re: more ?
Posté par NeoX . Évalué à 1.
2°)verifie que ta ligne dans le crontab soit lancé par root
[^] # Re: more ?
Posté par Henry-Nicolas Tourneur (site web personnel) . Évalué à 1.
2° root n'était pas dans mon crontab mais visiblement ça n'as rien changé.
Dans le syslog, il imprime ceci :
[^] # Re: more ?
Posté par NeoX . Évalué à 1.
apparemment il arrive jusqu'a la phase EMAIL et se bache pendant celle-ci
il ne reste plus qu'a trouver pourquoi et à quoi correspond le status 0x0001
[^] # Re: more ?
Posté par Henry-Nicolas Tourneur (site web personnel) . Évalué à 1.
[^] # Re: more ?
Posté par Amand Tihon (site web personnel) . Évalué à 2.
[^] # Re: more ?
Posté par Henry-Nicolas Tourneur (site web personnel) . Évalué à 1.
pour stderr et stdout, en fait le script php qui est appelé affichait quelque chose, donc maintenant je fait :
Donc il ne devrait rien afficher et en console, si je le lance manuellement, il n'affiche effectivement rien. Mais toujours pas de mail dans mon inbox et il se viande toujours la gueule avec la même chose dans syslog.
[^] # Re: more ?
Posté par NeoX . Évalué à 1.
c'est quand meme la fonction meme de cron que de realiser des taches planifiées et d'en envoyer le resultat par email.
[^] # Re: more ?
Posté par Henry-Nicolas Tourneur (site web personnel) . Évalué à 1.
[^] # Re: more ?
Posté par jcw . Évalué à 1.
peut être que la soluce trouvée à un probleme quasi similaire te conviendra
(même message d'erreur et surtout mon script fonctionnait aussi en console mais pas en cron)
https://linuxfr.org/forums/15/22976.html
courage et bonne humeur
jcw
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.