132 votes

Rediriger toute la sortie vers un fichier en utilisant Bash sous Linux ?

J'essaie de rediriger toute la sortie d'un programme en ligne de commande vers un fichier. J'utilise Bash. Une partie de la sortie est dirigée vers le fichier, mais une autre partie apparaît toujours dans le terminal et n'est pas enregistrée dans le fichier.

Des symptômes similaires sont décrits ici :

Rediriger toutes les sorties vers un fichier

Cependant, j'ai essayé la solution proposée (capture stderr) sans succès :

<cmd> <args> > stdout.txt 2> stderr.txt

Le fichier stderr.txt est créé mais est vide.

Un indice possible est que le programme en ligne de commande est un client communiquant avec un serveur sur la même machine. Il se peut qu'une partie de la sortie provienne du programme en ligne de commande. serveur .

Existe-t-il un moyen de capturer toutes les sorties du terminal, quelle que soit leur origine ?

EDITAR:

J'ai confirmé que la sortie manquante est générée par le serveur. L'exécution de la commande dans un terminal distinct entraîne une sortie dans les deux terminaux, je peux acheminer toute la sortie du terminal de commande vers un fichier. Cela soulève la question de savoir comment capturer la sortie du serveur, mais c'est une autre question.

2voto

Morlock Points 1200

La bonne réponse est ici : http://scratching.psybermonkey.net/2011/02/ssh-how-to-pipe-output-from-local-to.html

your_command | ssh username@server "cat > filename.txt"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X