Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/04/2011, 16h43   #1
Membre habitué
 
Homme
Administrateur de base de données
Inscription : mars 2005
Messages : 264
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2005
Messages : 264
Points : 121
Points : 121
Par défaut [SSH] Exécuter plusieurs commandes à distance

Bonjour,

je tente d'exécuter un ensemble de commandes sur une machine distante. Quand je n'en fais qu'une, aucun problème :
Code :
ssh ${USER}@${HOTE_DISTANT} ls /tmp
En revanche, je voudrais pouvoir exécuter plusieurs commandes sous la même connexion, avec un truc du style :
Code :
1
2
3
4
5
ssh ${USER}@${HOTE_DISTANT} << FIN
mkdir ${REP_USERS}/${rep_sid}
chown ${REP_OWNER} ${REP_USERS}/${rep_sid}
chmod ${REP_DROITS} ${REP_USERS}/${rep_sid}
FIN
Quelqu'un a-t-il une idée svp ?

NB : Je ne veux pas créer de script sur la machine distante qui me permettrait d'exécuter ces lignes

Merci d'avance.
tck-lt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/04/2011, 17h06   #2
Membre habitué
 
Homme
Administrateur de base de données
Inscription : mars 2005
Messages : 264
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2005
Messages : 264
Points : 121
Points : 121
Bon, ben en fait, j'ai trouvé tout seul comme un grand 5 minutes après avoir créé ce post, j'ai fait :
Code :
1
2
3
4
 
ssh ${USER}@${HOTE_DISTANT} "mkdir ${REP_USERS}/${rep_sid}
chown ${REP_OWNER} ${REP_USERS}/${rep_sid}
chmod ${REP_DROITS} ${REP_USERS}/${rep_sid}"
Il suffit de mettre des guillemets et ça fonctionne !
tck-lt est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/04/2011, 17h13   #3
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
Citation:
Envoyé par tck-lt Voir le message
Bon, ben en fait, j'ai trouvé tout seul comme un grand 5 minutes après avoir créé ce post, j'ai fait :
Code :
1
2
3
4
 
ssh ${USER}@${HOTE_DISTANT} "mkdir ${REP_USERS}/${rep_sid}
chown ${REP_OWNER} ${REP_USERS}/${rep_sid}
chmod ${REP_DROITS} ${REP_USERS}/${rep_sid}"
Il suffit de mettre des guillemets et ça fonctionne !
J'ajoute juste un petit éclaircissement, en fait ça fonctionne parce que l'ensemble de la commande se voit valoriser ses variables locales AVANT d'être envoyé à travers SSH.

PS: vu que c'est du travail sur fichiers/dossiers, je préconise l'usage pour enchainer les commandes de "&&"

Code :
ssh ${USER}@${HOTE_DISTANT} "mkdir ${REP_USERS}/${rep_sid} && chown ${REP_OWNER} ${REP_USERS}/${rep_sid} && chmod ${REP_DROITS} ${REP_USERS}/${rep_sid}"
en particulier parce que le travail à distance sur les fichiers est tjrs risqué..
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 30
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h34.


 
 
 
 
Partenaires

Hébergement Web