J'ai un script qui doit être exécuté chaque minute. Le problème est que cron se connecte à /var/log/syslog
chaque exécution. Je finis par voir quelque chose comme ça répété encore et encore dans /var/log/syslog
:
Jun 25 00:56:01 myhostname /USR/SBIN/CRON[1144]: (root) CMD (php /path/to/script.php > /dev/null)
J'utilise Debian.
Mes questions sont les suivantes: existe-t-il un moyen de dire à cron de ne pas écrire ces informations dans syslog à chaque fois?
Réponses:
Vous pouvez envoyer la sortie de cron à une fonction de journal distincte, ajoutez ce qui suit à votre
/etc/syslog.conf
fichier:N'oubliez pas d'ajouter
/var/log/cron
à votre pour vous/etc/logrotate.d/syslog
assurer qu'il tourne, par exemplela source
D'accord,
La solution à ma question était:
changement
à
à l'intérieur
/etc/syslog.conf
, puis redémarrez syslogJ'ai également envoyé un cron
/var/log/cron.log
comme suggéré par Dave Cheney et y ai collé un logrotate. Ma solution avec la suggestion de Daves est optimale pour ma situation car:/var/log/syslog
d'être encombré de messages cron/var/log/cron.log
ne va pas trop loin .la source
rsyslog
dans Debian 8.0 Jessie, c'est donc le/etc/rsyslog.conf
à éditer. Soit dit en passant, les chaînes à ajouter sont déjà là par défaut, il vous suffit de la décommenter (ligne 63). Et/var/log/cron.log
est déjà dans le/etc/logrotate.d/syslog
, tout comme les mainteneurs de paquets ont lu ce fil.Is there any way I can tell cron not write this information to syslog every time
. Ce n'est pas la réponse.Modifiez / etc / default / cron
Par défaut, la ligne EXTRA_OPTS est ""
la source
Dans Ubuntu 14.04.5 (et probablement ailleurs), il y a rsyslogd au lieu de syslogd. TranslucentCloud a fait allusion à cela avec Debian Jessie, mais la même solution (mais en changeant rsyslog.conf au lieu de syslogd.conf) ne semble pas fonctionner dans Ubuntu.
Il semble que les valeurs définies dans /etc/rsyslog.d/50-default.conf auront en fait priorité sur les éléments définis dans /etc/rsyslog.conf, il est donc préférable d'y apporter des modifications , puis de redémarrer rsyslog et cron. Sinon, vous vous retrouverez toujours avec le comportement par défaut de la journalisation cron vers syslog, plus la journalisation cron vers cronlog (mais pas exclusivement).
Deux premières lignes dans mon /etc/rsyslog.d/50-default.conf:
Et le tour est joué!
la source
Je viens de résoudre cela d'une manière différente, mais mon objectif était légèrement différent. Je voulais supprimer les entrées du journal cron qui ont été générées lors du déclenchement de atrun afin que mes disques durs puissent dormir et ne pas être réveillés toutes les 5 minutes.
Vous pouvez avoir la cible d'un événement de journal dans syslog.conf comme une commande shell en le préfixant avec le canal, et j'ai donc utilisé grep pour jeter ceux que je ne voulais pas. Alors:
Je n'ai pas enquêté, mais je pense qu'il devrait être possible d'envoyer ces entrées de journal à une autre cible si elles sont toujours souhaitées.
la source
En fait, la `` meilleure '' solution (on pourrait le prétendre) est une combinaison de ce que @DaveCheney a suggéré et de ce que user7321 a finalement fait , plus une troisième action que je recommanderais:
Dans votre
/etc/syslog.conf
, la combinaison de ces suggestions change quelque chose comme ceci:dans:
Et n'oubliez pas de forcer le rechargement (ou de redémarrer) les services cron et syslogd, par exemple en utilisant:
Remarque: Cela fonctionne également avec rsyslogd.
la source