rendre une tache cron silencieuse - Logiciels - Linux et OS Alternatifs
Marsh Posté le 18-10-2008 à 13:01:57
La syntaxe exacte c'est :
Citation : |
Marsh Posté le 18-10-2008 à 13:13:43
Une autre solution et de ne rien faire afficher sur les sorties standard et erreur par ton script.
L'avantage etant que si jamais y a une erreur qui se produit, la sortie erreur sera utiliséé, et tu seras informé du prolème par mail
Marsh Posté le 18-10-2008 à 13:34:46
fighting_falcon a écrit : La syntaxe exacte c'est :
|
en effet
merci de votre aide
Marsh Posté le 19-10-2008 à 20:56:54
e_esprit +1
par principe, lorsque je code un bout de script qui se retrouve dans un cron, je rajoute une option --cron
Sans cette option j'affiche dans sur la sortie standard (pour debug)
avec cette option, je n'affiche rien, ou alors je redirige dans un fichier temporaire (éventuellement mailé en pièce jointe)
Les erreurs par contre vont toujours sur la sortie d'erreur ...
Marsh Posté le 27-10-2008 à 10:24:00
fighting_falcon a écrit : e_esprit +1 |
bonjour,
effectivement j'aimerai être tenu au courant si une erreur apparait dans mon script,
comment est ce que je pourrai faire pour dire à cron de m'envoyer un mail en cas d'erreur?
au pire j'ai pensé dans mon script à faire un truc du genre si erreur envoyer un mail à user, mais il faudrait que je le fasse pour toutes mes commandes dans ce script...
merci de votre aide
Marsh Posté le 27-10-2008 à 15:08:50
Ben comme dit, tu fait aucun affichage sur la sortie erreur, et dans la programmation du CRON, tu ne rediriges pas la sortie erreur vers /dev/null (c'est à dire, pas de '2>&1').
Comme ça si il y a une erreur => sortie erreur => cron recoit une sortie de programme => il te l'envoit !
Marsh Posté le 27-10-2008 à 15:13:52
d'accord alors en fait le 2>&1 veux dire renvoie vers le "premier argument" soit /dev/null que j'ai passé juste avant?
merci de ton aide
Marsh Posté le 27-10-2008 à 15:30:11
dams78 a écrit : d'accord alors en fait le 2>&1 veux dire renvoie vers le "premier argument" soit /dev/null que j'ai passé juste avant? |
Nan ca veut dire "renvoit le descripteur de fichier n°2 (== sortie erreur) sur le descripteur de fichier n°1 (== sortie standard)".
Comme la sortie standard est renvoyée sur devnull, la sortie erreur aussi.
Marsh Posté le 27-10-2008 à 15:39:19
ReplyMarsh Posté le 27-10-2008 à 15:54:34
e_esprit a écrit :
|
Non! Ca veut dire "renvoie le descripteur de fichier n°2 vers la ressource pointée par le descripteur de fichier n°1". C'est d'ailleurs pour cela qu'il y a un '&' devant.
La différence de sens est importante: les descripteurs de fichiers ne sont jamais mélangés. Ce sont les ressources qui le sont (dans notre cas, /dev/null ou le buffer écran).
Quand tu écris vers le fds 2, tu n'écris pas vers 1, même avec 2>&1.
Marsh Posté le 18-10-2008 à 12:44:02
voila j'ai dans mon crontab un script "maison" que j'exécute avec mon user tous les jours
seulement cron m'envoie un mail à chaque fois, et je voudrai m'en passer
j'ai trouvé cette solution :
00 0 * * * damien /home/damien/scripts/cron/monscript.sh > /dev/null
mais cela ne fonctionne pas,
j'ai vu aussi trouvé ceci :
00 0 * * * damien /home/damien/scripts/cron/monscript.sh 2>&1 > /dev/null
mais je reçois toujours ce maudit mail...
merci de votre aide
---------------
dam's (debianer), ma galerie Flickr