Bonjour à tous,
Je cherche un coup de main pour me dire si ce que je fais est débile, ou si il y a plus simple / ou une solution genre une option d'une commande à la mort moi le neuneu ect ...
J'essaye actuellement d'écrire un script et je galère un peu.
Ci dessous la description de ce que j'ai fait :
-Mon premier script test1.sh se connecte en ssh sur un serveur distant pour exécuter un script situé sur ce serveur distant.
Contenu du script, seulement cette ligne :
/usr/bin/ssh -t login@serveur "/titi/toto/test2.sh"
=> le script se connecte bien au serveur distant et exécute test2.sh, jusque ici tout vas bien.
-Mon script test2.sh set les variables d'env (qui sont reset a chaque connexion ssh), puis effectue un sudo pour changer de user, et enfin lance un autre script en local :
1 2 3 4 5 6 7 8 9
| #!/usr/bin/ksh
MANPATH=$$$$$$$$
SHELL=$$$$$$$$$$$$
LD_LIBRARY_PATH=$$$$$$$$$$$$$$$$$$
ENV=$$$$$$$$$$$$
PATH=$$$$$$$$$$$$$$
HOME=$$$$$$$$$$$$
export MANPATH SHELL LD_LIBRARY_PATH ENV PATH HOME
sudo su - sudouser ; /monpath/test3.sh |
Mon problème :
=>Je lance mon script test1.sh depuis un putty, et putty me rend la main juste après le sudo du script test2.sh sur le serveur distant.
=> les variables d'env ont étés correctement settées (je les retrouves avec la commande "env")
=> j'ai ma connexion qui est ouverte avec le bon sudouser, sur le serveur distant sous putty
MAIS le script test3.sh ne s'est pas lancé ...
En fait si ensuite je quitte mon sudo a la main dans putty par la suite (avec un exit), le script test3.sh se lance automatiquement (donc en gros test2.sh attend la fermeture du sudo avant d’exécuter la suite :/)
Donc si vous avez eu le courage de tout lire sans décrocher, et que vous savez comment forcer l’exécution du script test3.sh sous le sudo ça m'aiderai bien
PS : Je suis pas vraiment expert du sh / ksh ect même si je travail dessus tous les jours et que ce n'est pas mon premier script (google est pas mal mon amis), mais la je bloque bien sur ce petit truc de merde !!! ^^
Partager