Supprimer ses daily output
Même en mettant toutes les variables à “NO” dans /etc/daily.conf, vous recevez encore un mail “daily output” de votre serveur. Voyons comment s'en débarrasser plus ou moins proprement.
Principe de fonctionnement
Tout commence avec le fichier /etc/daily. Il récupère d'abord les variables par défaut de /etc/defaults/daily.conf, puis celles de /etc/daily.conf (ces dernières priment sur les valeurs par défaut), puis se déroule selon les options, et donne en sortie standard un mail prêt à être envoyé. Une chose, cependant : l'uptime ne fait pas partie des options et est toujours affiché.
Dans la crontab de root, il y a l'entrée suivante :
15 3 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | sendmail -t
Cette ligne exécute le script daily, et envoie la sortie standard dans le fichier /var/log/daily.out, pour ensuite l'envoyer en tant que mail.
La manière basique
La manière basique consiste tout simplement à commenter l'entrée de la crontab. Plus de script, plus de daily.out, plus de mail :) Et plus de check de sécurité…
On veut garder les insecurity output
Bon, on ne veut plus du daily mais on veut le script de sécurité. D'abord, une lecture du script /etc/daily permet de voir que c'est lui qui s'occupe de lancer le script /etc/security, lequel, comme son copain daily, a un fichier /etc/defaults/security.conf pour les options par défaut et /etc/security.conf pour ajouter ses propres options. Et /etc/daily se charge d'envoyer le mail “insecurity output” si c'est nécessaire, contrairement aux autres vérifications (qui sont envoyées par le sendmail de la crontab).
Enfin bref, vous l'avez compris, il faut réactiver /etc/daily. Comme c'est la ligne de crontab qui se charge d'envoyer le mail, alors retirons la commande sendmail et redirigeons vers Dave Null. On copie notre ligne commentée, on décommente et ça donne ceci :
#15 3 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | sendmail -t 15 3 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out > /dev/null 2>&1
Le résultat : /etc/daily, s'exécute, crée son fichier /var/log/daily.out et la sortie de ce résultat part dans /dev/null (sinon c'est ce bon vieux Cron qui se charge d'envoyer le mail). Et comme /etc/daily s'exécute, il s'occupe du rapport de sécurité. Si vous souhaitez jeter un œil au résultat du script daily, il suffit de regarder le fichier /var/log/daily.out.
Et pour mes weekly/monthly ?
La même chose est valable, dans une certaine mesure, pour les scripts de maintenance hebdomadaire et mensuelle. Ceux-ci sont cependant moins utilisés et ne contiennent pas de vérification de sécurité. Si vous voulez y intégrer un script qui fait la même chose, alors on peut appliquer la même méthode. Voici ce que ça donne chez moi (crontab -l) :
#15 3 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | sendmail -t 15 3 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out > /dev/null 2>&1 #30 4 * * 6 /bin/sh /etc/weekly 2>&1 | tee /var/log/weekly.out | sendmail -t 30 4 * * 6 /bin/sh /etc/weekly 2>&1 | tee /var/log/weekly.out > /dev/null 2>&1 #30 5 1 * * /bin/sh /etc/monthly 2>&1 | tee /var/log/monthly.out | sendmail -t
A noter que la maintenance mensuelle est commentée par défaut.
Quelques précautions
Ne JAMAIS, au grand JAMAIS, toucher aux fichiers dans /etc/defaults/. Ils sont remplacés à chaque mise à jour, ça serait dommage de tout perdre :(