Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/03/2024, à 13:24

BrunoL

redirection log et/ou error

Bonjour.

J'utilise cette instruction trouvée dans ce forum qui permet d'envoyer les messages (erreurs et normaux) d'un job dans un fichier log en l’occurrence $RSYNC_RAPPORT et à l'écran :

do_rsync  3>&1 4>&2 > >(tee /$RSYNC_RAPPORT) 2>&1

Mon pb est que je ne comprend rien à ce montage or je souhaiterai que les messages d'erreurs aillent à l'écran et dans le log et les autres dans le log seulement. Et si au passage vous pouvez m'éclairer sur le fonctionnement de cette instruction ce serait super.

Merci.

Hors ligne

#2 Le 17/03/2024, à 15:36

Watael

Re : redirection log et/ou error

>(...) est une Substitution de processus. C'est comme un pipe, mais ça se comporte comme un fichier.
ici, le "fichier" reçoit des données. On voit plus souvent la forme inverse, qui envoie ses données <(...), comme dans while... do; ...; done < <(...).

pour envoyer stderr vers un fichier ET vers la sortie standard, et la sortie standard vers le même fichier :

cmd 2> >(tee -a "$log") > "$log"

Attention! les messages ne seront pas nécessairement dans l'ordre d'affichage, car la Substitution de processus est exécutée de manière asynchrone. sad


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 17/03/2024, à 20:02

BrunoL

Re : redirection log et/ou error

Hello Watael,
Merci pour ces précisions mais ma compréhension se dégrade roll
Dans la 1ère version je vois &1 et &2 ça me rassure mais je ne comprends pas ce que 3 et 4 viennent faire là.

Mais dans ton instruction les choses me paraissent encore plus sibylline ... je n'ai plus que 2 (je suppose &2 ?). Si je considère ne pas créer le log mais ajouter les lignes à un log existant que devient ton instruction ?

Hors ligne

#4 Le 17/03/2024, à 22:20

Watael

Re : redirection log et/ou error

2, c'est le stderr, en effet.
l'esperluette n'est nécessaire que lorsqu'on fait une redirection vers un descripteur de fichier.

pour 3 et 4, il faudrait peut-être voir les redirections dans la fonction do_rsync...


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne