2010-04-27 7 views
2

Je voudrais configurer un travail cron qui vérifie par ex. toutes les 24 heures pour voir si une commande « trouver » comme celui ci-dessous (qui vérifie shell malicieux scripts de piratage) a des résultats:Configurer une commande 'find' cron/bash script, qui envoie des emails s'il y a des résultats?

find /home/username/public_html -type f -print0 | xargs -0 egrep '(\/tmp\/cmd(temp)?|SnIpEr_SA|(c99|r57|php)shell|milw0rm)' 

Et s'il y a des résultats, je recevrais un e-mail à adresse e-mail spécifiée comme [email protected] Peut-être que quelque chose où un travail cron qui appelle un script bash est exécuté une fois par jour, où la commande find est exécutée via le script bash, et le script bash vérifie le nombre de caractères que la commande find retourne et envoie un e-mail si supérieur à 0. Je ne sais pas si c'est la meilleure approche, mais c'est la seule que je pouvais penser.

Je ne connais pas assez la programmation bash pour l'implémenter (ou toute alternative similaire) - à quoi ressemblerait une implémentation de ceci?

+0

+1 Question intéressante – sixtyfootersdude

Répondre

5

L'action par défaut de cron est de vous envoyer un e-mail s'il y a une sortie de votre script. Modifiez simplement votre crontab (crontab -e) et ajoutez la variable MAILTO en haut.

[email protected] 
30 1 * * * find /home/username/public_html -type f -print0 | xargs -0 egrep '(\/tmp\/cmd(temp)?|SnIpEr_SA|(c99|r57|php)shell|milw0rm)' 
+0

dieu merci quelqu'un a donné cette réponse, je m'attendais à un && ou || répondre. – kSiR

+0

Merci :) Existe-t-il un moyen d'appliquer MAILTO à une ligne de cron individuelle plutôt qu'à l'intégralité de l'onglet? – Tristan

+0

Voir http://serverfault.com/questions/33504/override-mailto-for-a-single-crontab-entry –

Questions connexes