Comment envoyer une sortie de commande unix d'un serveur à un autre serveur?


Réponses:


20

Général, vous pouvez toujours faire:

<command> | ssh user@remote-server "cat > output.txt"

Il enregistre la sortie de <command>dans un output.txtfichier sur un serveur distant.

Dans votre cas, sur Server-1:

echo "qwerty" | ssh user@Server-2 "cat > output.txt"

Si deux serveurs n'ont pas de connectivité, mais que vous pouvez ssh vers les deux serveurs, à partir de la machine locale, vous pouvez faire:

ssh user@Server-1 "<command>" | ssh user@Server-2 "cat > output.txt"

J'ai essayé et j'obtiens une erreur de connexion expirée .. Je pense qu'il n'y a pas de connectivité entre deux serveurs .. Y a-t-il une autre manière ??
vinod

1
@vinod: C'est le problème de connectivité de deux serveurs, vous ne pouvez pas le faire si deux serveurs n'ont pas de connectivité. Assurez-vous que vous pouvez ssh de Server-1 à Server-2. Pouvez-vous passer de la machine locale aux deux serveurs?
cuonglm

oui ... je peux ssh les deux serveurs séparément de la machine locale
vinod

6

Tu peux courir:

ssh remote_server "command" > file_on_local_host.txt

ou utilisez la sortie comme entrée pour la commande locale:

ssh remote_server "remote_command" | local_command


1

Comme vous ne pouvez pas vous connecter directement du serveur 1 au serveur 2, vous pouvez l'utiliser, en ayant votre machine locale au milieu:

ssh server1 command | ssh server2 "cat > output.txt"
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.