J'ai 10 serveurs sous Linux et je souhaiterais exécuter un programme sur chacun d'eux à partir d'un script shell sur l'un deux.
J'ai donc fais la boucle suivante :
for node in $LISTE_SERVEURS
do
ssh ${node} "nmon -f -c $nbSnap -s $duree"
done
Le problème est que le shell me garde la main le temps que l'application s'exécute (le programme est fait pour s'exécuter pendant $nbSnap * $duree).
Je ne sais pas comment m'en sortir, merci d'avance pour votre aide
# Detach...
Posté par TuxPierre . Évalué à 3.
ssh ${node} "nmon -f -c $nbSnap -s $duree" &
Et si tu as besoin des resultats, tu rediriges la sortie standard (et aussi peut etre la sortie d'erreur)
ssh ${node} "nmon -f -c $nbSnap -s $duree" > file-{$node} 2>&1 &
Ca marche tres bien chez moi.
[^] # Re: Detach...
Posté par Snake655 . Évalué à 1.
Une idée?
En tout cas, merci pour ton aide.
[^] # Re: Detach...
Posté par Krunch (site web personnel) . Évalué à 2.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# xinetd
Posté par KiKouN . Évalué à 2.
Il suffit de faire un script bash ou autre qui lit sur l'entrée standard tes donées puis exécute la commande. Tu peux redirigé la sortie de ton programme vers la sortie standard du script si tu le désire. tu crée le fichier de config xinetd pour qu'il execute ce script quand une connexion arrive sur un port choisi. Ensuite sur depuis ton pc, tu fais un echo "data1 data2" > netcat --avec --les --options --qui --vont --biens &.
# Avec l'option -f de ssh ?
Posté par Damien Pobel (site web personnel) . Évalué à 3.
(cf. man ssh)
https://damien.pobel.fr
# pdsh
Posté par v73 . Évalué à 1.
Cela fonctionne tres bien sur plusieurs centaines de machines a la fois.
# Télédistribution
Posté par Yves Martin . Évalué à 1.
Je te propose d'utiliser OCS Inventory, qui fournit une solution de télédistribution de packages et d'exécution de commandes par agent.
http://ocsinventory.sourceforge.net/
# -x
Posté par Stephane COLIN (site web personnel) . Évalué à 1.
do
ssh -x ${node} "nmon -f -c $nbSnap -s $duree"
done
J'utilise ca pour faire une copie de fichiers ver le serveur de notre midleware (openssh cygwin sous windows) et je lance dans la foulée le script windows "script.cmd".
Le tout lancé par crond tous les soirs à 20h00.
genre :
00 20 * * * scp /rep/source/fichier user@midleware:/rep/target/ && ssh -s /chemin/vers/script.cmd
A++
[^] # Re: -x
Posté par Stephane COLIN (site web personnel) . Évalué à 1.
Syntaxe précise en prod actuellement (les chemins et noms de progs changés) :
00 20 * * * scp /rep/source/fichier.csv Administrateur@midleware:"/rep/target/" && ssh -x administrateur@midleware /chemin/vers/script.cmd '</dev/null >&/dev/null &'
A++
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.