Attention en revanche, 2>&1 >/dev/null n'a pas l'effet escompté ! L'ordre de redirection importe : celle ci-dessus va d'abord brancher stderr sur là où pointe stdout (donc le terminal), *puis* rediriger stdout vers /dev/null (mais sans toucher à stderr !). La bonne solution est >/dev/null 2>&1
Cf https://github.com/koalaman/shellcheck/wiki/SC2069 et https://mywiki.wooledge.org/BashFAQ/055 (PS : Shellcheck c'est le feu) Thomas Le ven. 3 déc. 2021 à 19:55, David Ponzone <david.ponz...@gmail.com> a écrit : > Vincent, > > Merci t’es le meilleur, j’ai oublié que crontab utilisait /bin/sh par > défaut, comme moi j’utilise bash sur root (et je redéfinis généralement > SHELL dans la crontab, mais pas celle-là…) > Ce qui est évidemment déroutant, c’est pourquoi 0.2% du temps seulement > j’ai un email, alors que le source C envoie tout le temps à stderr, mais tu > dois avoir raison, il doit y avoir un truc pas tout à fait > atomique/linéaire dans l’exécution. > > Effectivement, je vais repasser sur la syntaxe POSIX, rappelée par > Wallace, ça sera plus propre. > > Je savais que ça irait vite! > > Merci > > > > Le 3 déc. 2021 à 19:38, Vincent Tondellier via FRsAG <frsag@frsag.org> > a écrit : > > > > On vendredi 3 décembre 2021 19:21:12 CET, Wallace wrote: > >> avec >&/dev/null tu ne rediriges pas stderr > > > > Avec bash, csh, ou zsh, si : > > > https://wiki.bash-hackers.org/syntax/redirection#redirecting_output_and_error_output > > > > Mais avec dash qui est plus posix de base (le /bin/sh par défaut sous > debian), c'est interprété comme "script & : >/dev/null" > > > > exemple : > > > > $ echo $SHELL > > /bin/zsh > > $ ls good bad &>/dev/null > > $ > > $ readlink /bin/sh > > dash > > $ /bin/sh > > $ ls good bad &>/dev/null > > $ ls: impossible d'accéder à 'good': Aucun fichier ou dossier de ce type > > ls: impossible d'accéder à 'bad': Aucun fichier ou dossier de ce type > > > > [1] + Done(2) ls good bad > > $ > > > > > > Donc c'est bien possible que de temps en temps, le script ne passe pas > en tache de fond avant la fin du cron et affiche quelque chose > > > >> Pour rediriger stderr tu devrais avoir 2>&1 > /dev/null > > > > et ca c'est la syntaxe portable. > > > > On vendredi 3 décembre 2021 19:07:15 CET, David Ponzone wrote: > >> Soit une Debian 9.5. Soit un script bash qui est lancé par crontab 1440 > fois par jour. > >> Dans la crontab, le script est lancé ainsi: > >> > >> */1 * * * * script >&/dev/null > >> > > > > _______________________________________________ > > Liste de diffusion du FRsAG > > http://www.frsag.org/ > > _______________________________________________ > Liste de diffusion du FRsAG > http://www.frsag.org/ >
_______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/