5 votes

envoi d'une commande de chaîne d'impression à une machine distante

J'aimerais imprimer une chaîne de caractères à tous les processus terminaux ouverts qui sont en cours d'exécution sur la machine distante. Actuellement, j'utilise ssh pour me connecter à la machine distante, puis j'envoie ma chaîne de caractères dans wall commande :

local> ssh me@1.2.3.4
(prompt to provide credentials)
remote> echo "123" | wall 

Existe-t-il un moyen de faire tout cela en une seule commande qui s'exécutera sans interaction de l'utilisateur ?

10voto

mashuptwice Points 1697

Vous devrez configurer l'authentification par clé SSH afin de ne pas avoir à saisir de mot de passe.

  1. Sur l'ordinateur client, exécutez la commande suivante pour copier la clé publique de l'utilisateur actuel dans la clé publique du serveur authorized_hosts fichier :

    ssh-copy-id me@1.2.3.4
    <enter password>
  2. Assurez-vous que vous n'avez pas besoin d'entrer un mot de passe maintenant :

    ssh me@1.2.3.4 true
  3. Il suffit ensuite d'ajouter la commande à la commande SSH comme suit :

    ssh me@1.2.3.4 'echo asdf | wall'

Vous devrez probablement utiliser la fonction -tt avec SSH, pour s'assurer que vous exécutez la commande dans un ATS.

Notez les guillemets simples ' Ils veillent à ce que le tuyau | n'est pas analysé par votre Shell local.

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