Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/08/2011, à 16: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, à 16: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, à 09: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, à 10: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, à 15: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, à 15:42)

Hors ligne

#5 Le 19/08/2011, à 15: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, à 15:55

aduxas

Re : Utilisation commande distantes ssh dans un script shell

Tu peux aussi le mettre dans ~/bin distant bien sur.

+2?  tongue

Dernière modification par aduxas (Le 19/08/2011, à 16:00)

Hors ligne

#7 Le 24/08/2011, à 01: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, à 01: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, à 04:18)

Hors ligne

#9 Le 24/08/2011, à 03:13

Watael

Re : Utilisation commande distantes ssh dans un script shell

man ssh a écrit :

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, à 04: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, à 16: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, à 17: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, à 17: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, à 18:23

Watael

Re : Utilisation commande distantes ssh dans un script shell

man bash a écrit :

Le format des documents en ligne est le suivant :

              <<[-]mot
                      document_en_ligne
              délimiteur

man bash a écrit :

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, à 19: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