rendre une tache cron silencieuse

rendre une tache cron silencieuse - Logiciels - Linux et OS Alternatifs

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
Reply

Marsh Posté le 18-10-2008 à 12:44:02   

Reply

Marsh Posté le 18-10-2008 à 13:01:57    

La syntaxe exacte c'est :
 

Citation :


00     0        *      *        *               damien  /home/damien/scripts/cron/monscript.sh 1>/dev/null 2>&1

Reply

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 :jap:


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 18-10-2008 à 13:34:46    

fighting_falcon a écrit :

La syntaxe exacte c'est :
 

Citation :


00     0        *      *        *               damien  /home/damien/scripts/cron/monscript.sh 1>/dev/null 2>&1



 
en effet ;)
merci de votre aide


---------------
dam's (debianer), ma galerie Flickr
Reply

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 ...

Reply

Marsh Posté le 27-10-2008 à 10:24:00    

fighting_falcon a écrit :

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 ...


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


---------------
dam's (debianer), ma galerie Flickr
Reply

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 !


Message édité par e_esprit le 27-10-2008 à 15:09:07

---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

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


---------------
dam's (debianer), ma galerie Flickr
Reply

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?
merci de ton aide


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.


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 27-10-2008 à 15:39:19    

d'accord merci de tes précisions


---------------
dam's (debianer), ma galerie Flickr
Reply

Marsh Posté le 27-10-2008 à 15:39:19   

Reply

Marsh Posté le 27-10-2008 à 15:54:34    

e_esprit a écrit :


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.

 

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.


Message édité par Gf4x3443 le 27-10-2008 à 15:56:13
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed