#1 Le 17/08/2011, à 17:48
- winael
Utilisation commande distantes ssh dans un script shell
Bonjour à tous,
Je suis en train d'écrire un script shell pour le travail et je me heurte à un petit soucis. Je souhaite dans ce script me connecter en SSH sur un environnement distant afin de modifier des fichiers. Je me connecte via une paire de clé générée, ma clé publique étant déjà sur l'environnement distant.
Ce que je souhaite dans mon script c'est
1) appeller SSH
ssh -i $HOME/.ssh/cle_prive_A
La suite des commandes doivent s'opérer sur le serveur distant
2) Copie de fichier en vu d'un backup
cp /mon/fichier /mon/fichier_$(date +%Y%m%d).bak
3) Je rajoute une ligne à mon fichier que si elle n'est pas présente
if [[ -e $(grep occurence /mon/fichier) ]]
then
occurencepresent = 1
else
echo "truc" >> /mon/fichier
fi
J'ai bien vu que ssh possédait une option permettant d'appeller un sous shell mais ayant trouvé très peu documentation à ce sujet je ne sais pas trop comment faire
Merci pour votre aide
Amicalement,
Winael
Dernière modification par winael (Le 17/08/2011, à 17:49)
Libre, non pas comme dans entrée libre, mais comme dans Liberté
(Bouyop)Mon PC c 1 MAC boulet ! G pas windows, donc je pe pas intaller linux !
(pankkake) Windows VISTA : Virus, Infections, Spyware, Trojans, Adware.
OPEN your mind, you'll discover a FREE world
Hors ligne
#2 Le 19/08/2011, à 10:55
- winael
Re : Utilisation commande distantes ssh dans un script shell
Bonjour,
Personne n'a d'idée sur comment procéder ?
Amicalement,
Winael
Libre, non pas comme dans entrée libre, mais comme dans Liberté
(Bouyop)Mon PC c 1 MAC boulet ! G pas windows, donc je pe pas intaller linux !
(pankkake) Windows VISTA : Virus, Infections, Spyware, Trojans, Adware.
OPEN your mind, you'll discover a FREE world
Hors ligne
#3 Le 19/08/2011, à 11:15
- FRUiT
Re : Utilisation commande distantes ssh dans un script shell
Si, déjà tu peux commencer par éviter les ups sauvages pour ne rien dire alors que ton sujet n'est même pas passé en page 2.
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#4 Le 19/08/2011, à 16:41
- aduxas
Re : Utilisation commande distantes ssh dans un script shell
Tu exécutes un script contenant tes commandes et tu le tu mets dans ton home distant, non?
ssh -i $HOME/.ssh/cle_prive_A mon_script
Dernière modification par aduxas (Le 19/08/2011, à 16:42)
Hors ligne
#5 Le 19/08/2011, à 16:44
- yohann
Re : Utilisation commande distantes ssh dans un script shell
aduxas +1
et tu peux meme faire un scp juste avant histoire d'être certain d'éxécuter la dernière version de ton script distant.
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#6 Le 19/08/2011, à 16:55
- aduxas
Re : Utilisation commande distantes ssh dans un script shell
Tu peux aussi le mettre dans ~/bin distant bien sur.
+2?
Dernière modification par aduxas (Le 19/08/2011, à 17:00)
Hors ligne
#7 Le 24/08/2011, à 02:03
- winael
Re : Utilisation commande distantes ssh dans un script shell
Merci pour cette réponse. Effectivement en passant pas un script temporaire copié sur le serveur distant... mais me sera-t-il possible de supprimer ce script ensuite dynamiquement sans refaire une troisième connexion sur le serveur distant ?
Cordialement,
Winael
Libre, non pas comme dans entrée libre, mais comme dans Liberté
(Bouyop)Mon PC c 1 MAC boulet ! G pas windows, donc je pe pas intaller linux !
(pankkake) Windows VISTA : Virus, Infections, Spyware, Trojans, Adware.
OPEN your mind, you'll discover a FREE world
Hors ligne
#8 Le 24/08/2011, à 02:52
- aduxas
Re : Utilisation commande distantes ssh dans un script shell
En dernière ligne de ton script tu le fait s'autotuer
rm mon_script
Ou bien tu le tues à distance en exécutant un 2ème ssh:
ssh -i $HOME/.ssh/cle_prive_A rm mon_script
S'il n'est pas dans ton $HOME distant, il suffit de rajouter le chemin devant.
Dernière modification par aduxas (Le 24/08/2011, à 05:18)
Hors ligne
#9 Le 24/08/2011, à 04:13
- Watael
Re : Utilisation commande distantes ssh dans un script shell
ssh [...] [user@]hostname [command]
If command is specified, it is executed on the remote host instead of a login shell.
command, ça peut être ' command1 ; command2 ; commandN '
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#10 Le 24/08/2011, à 05:40
- Brunod
Re : Utilisation commande distantes ssh dans un script shell
On en apprend tous les jours : merci +abo !
Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis
Hors ligne
#11 Le 26/08/2011, à 17:15
- sputnick
Re : Utilisation commande distantes ssh dans un script shell
@winael, tu peut utiliser l'entrée standard de ssh :
ssh -i /path/to/private/key foo@bar bash -s <<<'EOT'
echo "commandes executées depuis $HOSTNAME :"
cp monfichier /else/where
if grep occurence /mon/fichier
then
occurencepresent=1
else
echo "truc" >> /mon/fichier
fi
EOT
Tu notera les guillemets sur EOT (here-doc) pour ne pas substituer les variables dans le here-doc.
Tu notera aussi les modifications apportées dasn ton script, le grep est plus simple et les affectations de variables sont maintenant valides
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#12 Le 26/08/2011, à 18:12
- Watael
Re : Utilisation commande distantes ssh dans un script shell
seulement 2< pour un here-doc.
avec 3<, c'est un here-string.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#13 Le 26/08/2011, à 18:26
- sputnick
Re : Utilisation commande distantes ssh dans un script shell
wut Watael ?! oO
mystic('peremptoire') = true;
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#14 Le 26/08/2011, à 19:23
- Watael
Re : Utilisation commande distantes ssh dans un script shell
Le format des documents en ligne est le suivant :
<<[-]mot
document_en_ligne
délimiteur
Chaînes en ligne
Une variante aux documents en ligne, le format est :<<<mot
Le mot est développé et fourni à la commande sur son entrée standard.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#15 Le 26/08/2011, à 20:30
- sputnick
Re : Utilisation commande distantes ssh dans un script shell
ah ok, tu parlait du nombre de caractères inférieur, j’avais pas compris, ça ressemblait à des redirections.
Comme ça j’aurais compris avec 3 "<"
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne