commande en cours d'exécution sur une machine distante à l'aide de ssh
-
10-07-2019 - |
Question
Je veux exécuter une commande sur plusieurs machines utilisant ssh. Je sais que cela peut être fait en utilisant simplement la commande "commande ssh utilisateur @ nomhôte". Cependant, la commande que je veux exécuter affiche une chaîne sur la console. Est-il possible d'envoyer toutes les chaînes à la console sur laquelle je suis?
La solution
Vous pouvez exécuter les commandes dans un écran :
screen -S test
ssh user@hostname command1
ssh user@hostname2 command2
Vous pouvez ensuite détacher (Ctrl-D) de l’écran, le laisser courir aussi longtemps que vous le ferez, puis le reconnecter (test-écran) à l’écran et voir toutes les sorties. Cela suppose que vous n'aurez pas une tonne de sortie des commandes, cependant. Voici un lien vers un didacticiel à l'écran .
Autres conseils
ssh user@hostname command
Ne fait que ça. Si 'commande' affiche quelque chose, il apparaîtra sur le terminal sur lequel vous avez exécuté ssh. Essayez par exemple utilisateur ssh @ nomhôte ls -l
Mais comme d’autres l’ont dit, l’écran GNU est inestimable pour ce type de travail.
Vous voudrez probablement utiliser Écran Gnu pour cela. Vous pouvez démarrer un processus de manière "virtuelle". terminal, "détachez" Connectez-vous au terminal et déconnectez-vous aussi longtemps que vous le souhaitez ... Ensuite, vous pouvez revenir en arrière et réattacher le terminal pour voir la sortie de la console.
Regardez également nohup
, par exemple:
ssh utilisateur@domaine.fr nohup script_that_outputs_strings.py > the_strings.txt
Ensuite, si vous souhaitez revenir en arrière et surveiller la progression, vous pouvez vérifier et tail
le fichier ou scp
la sortie sur votre ordinateur local.
Pourquoi ne vous renvoyez-vous pas un email? Ou utilisez un fichier journal et envoyez-le à votre ordinateur actuel? sinon, je ne sais pas!