#1 Le 01/02/2013, à 12:30
- totola
Redémarrer un service distant via ssh avant de démarrer un programme
Bonjour,
je souhaiterais créer un script qui permettrait de redémarrer un service sur plusieurs postes depuis un client distant via ssh puis qui lancerait un programme.
Il s'agit du programme tkontrole qui permet de controler les postes à distance. Ce qu'il se passe c'est que pour être sûr que tout mes postes soient détectés, je dois relancer le service tkontrole-serv avec
sudo /etc/init.d/tkontrole-serv restart
Du coup j'aimerais effectuer cette commande via ssh juste avant de lancer le programme. Quelque chose du genre:
#!/bin/bash
# restart.sh contient la commande pour redémarrer le service
ssh user@ip1 bash < /chemin/restart.sh
ssh user@ip2 bash < /chemin/restart.sh
#... etc
# puis la commande pour lancer le programme:
/chemin/tkontrole-client.tcl
ça marche sauf qu'il reste bloqué sur arrêt/redémarrage du serveur dans un terminal et je suis obligé de faire Ctrl C pour l'arrêter et à ce moment se lance le programme tkontrole...
Comment je peux régler ça.. ??
Merci de votre aide
PS: j'ai déja réussi à autoriser l'execution du fichier restart.sh par quelqu'un qui n'est pas root grâce au fichier sudoers
Hors ligne
#2 Le 01/02/2013, à 13:57
- Haleth
Re : Redémarrer un service distant via ssh avant de démarrer un programme
ssh user@host command
Ca sert à rien de lui dire de lancer bash, il va le faire par défault (a priori, c'est ton shell ..)
En revanche, la redirection va être prise en compte par ssh, et pas par bash. Bref, ca sert à rien, met juste la commande derrière le user@host.
Note qu'il va te demander un pass.. pense donc à mettre une auth par clef
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne