21 votes

Comment rediriger la sortie de commande d'une machine distante vers un fichier local via ssh ?

Exemple : Je me connecte à mon ordinateur portable (Ubuntu 14.04) via ssh et j'ai besoin de créer un fichier .log de la sortie d'une commande, puis de le transférer sur mon ordinateur de bureau. La commande a -o pour rediriger la sortie vers un fichier. Je pourrais ensuite simplement copier le fichier avec scp commandement.

La question est la suivante : peut-on rediriger la sortie directement sur ma machine, sans avoir besoin de créer d'abord un fichier sur l'ordinateur portable et de le transférer ensuite avec la fonction scp ?

Les deux machines utilisent Ubuntu 14.

26voto

Ravexina Points 50599

En fonction de votre commande, vous pouvez faire quelque chose comme ça :

ssh user@machine command > log

le journal sera enregistré dans votre machine, un exemple concret :

ssh root@192.168.x.x ls > log

Si votre commande ne prend pas en charge les sorties vers stdout puis exécutez-le comme ceci :

ssh root@192.168.x.x "command -o output; cat output"  > log

9voto

yabloki Points 111

Si vous voulez voir ce que vous tapez et produisez en même temps, essayez-le :

ssh user@host 2>&1 | tee ssh-session.log

0voto

Walt Howard Points 101

J'ai une exigence similaire, sauf que je dois pouvoir "activer" la sortie vers le processus/conduit local après m'être connecté et avoir configuré les choses. Je ne veux pas que tout le texte de connexion soit placé dans le fichier/processus local.

Fondamentalement, j'ai besoin de ngrep à partir d'une machine distante, et de pipe la sortie à un test local script qui vérifie le trafic réseau pour certaines choses. En outre, lorsque le test est en cours d'exécution, je ne veux pas mélanger les sorties, ce qui se produirait si j'utilisais tee. Je verrais la sortie du ngrep, PLUS la sortie du test, ce qui serait déroutant. De plus, en redirigeant directement vers un fichier > nom de fichier, le processus de connexion serait redirigé vers le fichier et je ne pourrais pas voir ce qui se passe.

C'est pour une démo, donc il faut que le public comprenne bien ce qui se passe.

ssh yo@remote_box.
sudo ngrep | local_application

Bzzzt ! !! Faux ! Ça ne marche pas comme ça

S'il n'y avait pas besoin de sudo avec ngrep, ce ne serait pas un problème. Je ne peux pas vraiment chmod a+s ngrep sans que devops ne s'abatte durement sur mon cas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X