GNU/Linux >> Tutoriels Linux >  >> Linux

Comment désactiver complètement un Cronjob vers /dev/null/?

Sur mon bureau Ubuntu et sur mon serveur debian, j'ai un script qui doit être exécuté chaque minute (un script qui appelle la minute-tic de mon jeu de navigateur en ligne spatial).

Le problème est que sur les dérivés de Debian, cron se connecte à /var/log/syslog chaque fois qu'il s'exécute. Je finis par voir répété le message qu'il a été exécuté encore et encore dans /var/log/syslog :

Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1)

Je sais que pour supprimer la sortie d'un programme, je peux le rediriger vers /dev/null , par exemple pour masquer tous les messages d'erreur et d'avertissement d'un programme, je peux créer une ligne dans crontab comme celle-ci

* * * * *       root    /usr/local/sbin/mycommand.sh > /dev/null

Mais je voudrais exécuter un cronjob et m'assurer que toutes les sorties ou erreurs générées sont redirigées vers NULL, afin qu'il ne génère aucun message dans syslog et ne génère aucun e-mail

EDIT :
il existe une solution pour rediriger les cron-logs dans un journal séparé comme proposé ici en modifiant /etc/syslog.conf

Mais l'inconvénient est qu'alors TOUTES les sorties de tous les cronjobs sont redirigées.

Puis-je en quelque sorte rediriger un seul cronjob vers un fichier journal séparé? Configurable de préférence dans le cron.hourly fichier lui-même.

Réponse acceptée :

Faites la ligne ceci :

* * * * *       root    /usr/local/sbin/mycommand.sh > /dev/null 2>&1

Cela capturera à la fois STDOUT (1) et STDERR (2) et les enverra à /dev/null .

MAILTO

Vous pouvez également désactiver l'e-mail en définissant puis en réinitialisant le MAILTO="" qui désactivera l'envoi de tout e-mail.

Exemple

MAILTO=""
* * * * *       root    /usr/local/sbin/mycommand.sh > /dev/null 2>&1

MAILTO="[email protected]"
 * * * * *      root    /usr/local/sbin/myothercommand.sh

Messagerie supplémentaire

Souvent, vous recevrez les types de messages suivants dans /var/log/syslog :

Nov 11 08:17:01 manny CRON[28381]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Ce sont simplement des notifications via cron qu'un répertoire de cronjobs a été exécuté. Ce message n'a rien à voir directement avec ces travaux, il vient plutôt de la crond démon directement. Il n'y a vraiment rien que vous puissiez faire à ce sujet, et je vous encourage à ne pas les désactiver, car ils sont probablement la seule fenêtre que vous avez sur les événements de crond via les journaux.

S'ils vous dérangent beaucoup, vous pouvez toujours les diriger vers un autre fichier journal pour les sortir de votre /var/log/syslog fichier, via le /etc/syslog.conf fichier de configuration pour syslog .


Linux
  1. Comment générer un mot de passe aléatoire sous Linux en utilisant /dev/random

  2. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  3. Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

  4. Quand utiliser /dev/random contre /dev/urandom ?

  5. Comment encoder en base64 /dev/random ou /dev/urandom ?

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

DD de /dev/zero à /dev/null...ce qui se passe réellement

Comment configurer ssh sans mot de passe avec des clés RSA

Comment Linux utilise /dev/tty et /dev/tty0

echo ou print /dev/stdin /dev/stdout /dev/stderr

Pourquoi < ou > sont-ils nécessaires pour utiliser /dev/tcp