Je veux générer un script à partir d'un formulaire jsp, ce script doit faire la connexion à un hote distant et puis exécuter des regles de filtrage (iptables), de routage...
(ou dois-je stocker le script?)
Soit le script local 'script_locale.sh' généré par ta jsp.
Ensuite, soit la commande que tu vas lancer à distance est inclue dans script_locale.sh soit tu vas demander à exécuter le script à distance 'script_distant.sh' à partir de ssh :
Si tu ne veux pas que le script demande le mot de passe, il te faut générer une clef public ($HOME/.ssh/id_rsa.pub si ce n'est pas déjà fait) et l'envoyer dans la liste des hôtes autorisés dans le répertoire utilisateur distant ($HOME/.ssh/authorized_keys)
Comme l'indique le titre, tu peux avoir des problèmes de gestion de ton environnement. Je te conseille donc de prévoir cette initialisation dans ton script ou en le "sourçant" dans ta commande.
Pas très clair ? Vite un exemple :
"Sourcer" le profile dans la commande :
ssh user@host ". /home/user/.bashrc ; /path/to/my/script"
ou sinon, dans ton script :
#!/bin/bash
if [ -z $VAR_ENV_NORMALEMENT_PRESENTE ]; then
. /home/user/.bashrc
fi
# 1 ou 2 scripts
Posté par platinum . Évalué à 1.
Ensuite, soit la commande que tu vas lancer à distance est inclue dans script_locale.sh soit tu vas demander à exécuter le script à distance 'script_distant.sh' à partir de ssh :
script_locale_1.sh :
#!/bin/sh
ssh login@host { echo "Salut" ; }
ou script_locale_2.sh :
#!/bin/sh
ssh login@host { /home/login/script_distant.sh ; }
script_distant.sh
#!/bin/sh
echo "Salut"
Si tu ne veux pas que le script demande le mot de passe, il te faut générer une clef public ($HOME/.ssh/id_rsa.pub si ce n'est pas déjà fait) et l'envoyer dans la liste des hôtes autorisés dans le répertoire utilisateur distant ($HOME/.ssh/authorized_keys)
http://www.hmug.org/man/1/ssh.html(...)
[^] # Re: 1 ou 2 scripts
Posté par platinum . Évalué à 1.
ssh login@host '{ echo "Salut" ; }'
Sinon :
ssh login@host /home/login/script_distant.sh
# Faire attention à ton environnement
Posté par yannig (site web personnel) . Évalué à 1.
Pas très clair ? Vite un exemple :
"Sourcer" le profile dans la commande :
ssh user@host ". /home/user/.bashrc ; /path/to/my/script"
ou sinon, dans ton script :
#!/bin/bash
if [ -z $VAR_ENV_NORMALEMENT_PRESENTE ]; then
. /home/user/.bashrc
fi
...
Voilà, si ça peut t'aider.
# Merci
Posté par nicex . Évalué à 0.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.