Notifications via syslogd (8)
Sur mon serveur OpenBSD, je me connecte et envoie des messages importants à partir de mes applications Web, qui utilisent la fonction local1 . Voici mon /etc/syslog.conf pour y arriver:
local1.err /var/log/example.com
local1.err |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done
Notez que la boucle while lit à l'infini chaque ligne de syslogd, puis la redirige vers la messagerie via echo. C'est important. Une fois que l'écho sort sa ligne, il termine le canal, envoyant un courrier électronique un EOF afin qu'il puisse envoyer le message de journal par courrier électronique.
En d'autres termes, vous ne pouvez pas diriger directement vers le courrier via syslogd comme ceci:
local1.err |/usr/bin/mail -s SYSLOG me@example.com
car syslogd continuera à écrire dans le canal jusqu'à ce qu'il soit lui-même terminé ou envoyé un signal HUP, auquel cas le courrier enverrait l'ensemble des messages de journal dans un seul gros e-mail.
Notifications via newsyslog (8)
La planification de newsyslog dans cron est une autre façon d'obtenir des messages à un rythme plus lent ou en masse.
Par exemple, si vous vouliez un résumé quotidien par e-mail des messages de journal, définissez l' indicateur M et spécifiez une adresse e-mail de moniteur dans /etc/newsyslog.conf :
# logfile_name owner:group mode count size when flags monitor
/var/log/example.com root:wheel 640 7 * 24 M me@example.com
Ensuite, programmez newsyslog dans crontab:
# minute hour mday month wday command
0 * * * * /usr/bin/newsyslog
1-59 * * * * /usr/bin/newsyslog -m
L' option -m pour newsyslog (8) indique:
Mode de surveillance; seules les entrées marquées d'un «M» dans les drapeaux sont traitées. Pour chaque fichier journal surveillé, toute sortie de journal depuis la dernière exécution de newsyslog avec l'indicateur -m est envoyée à l'utilisateur répertorié dans la section de notification du moniteur.