je souhaite exécuter un script sur un ordi distant
je n'ai pas suffisamment confiance en l'ordi distant pour mettre le
script là bas une fois pour toutes, puis l'exécuter en une commande ssh
sans vérifier son intégrité
ce que j'aimerais faire, c'est :
avoir le script sur mon ordi,
et demander à ssh quand je l'exécute, de prendre le script sur mon ordi
et de l'exécuter sur l'ordi distant
est ce que c'est possible, ça ?
(pour l'instant j'ai un script chez moi avec ssh à chaque ligne, ça me
parait pas le meilleur choix)
avoir le script sur mon ordi, et demander à ssh quand je l'exécute, de prendre le script sur mon ordi et de l'exécuter sur l'ordi distant
est ce que c'est possible, ça ?
[...]
ssh ordi-distant < script-local
Bonjour,
j'aurais plutot mis : ssh ordi-distant sh < script-local
Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre.
Thomas
In article , Cyrille Lefevre <cyrille.lefevre-news% wrote:
Stephane CHAZELAS a écrit : > 2008-09-20, 15:42(+02), Thomas: > [...] >> avoir le script sur mon ordi, >> et demander à ssh quand je l'exécute, de prendre le script sur mon ordi >> et de l'exécuter sur l'ordi distant >> >> est ce que c'est possible, ça ? > [...] > > ssh ordi-distant < script-local
merci :-)
par contre, le shell distant va être "en mode interactif" et va croire que le contenu de script-local est tapé au clavier, c'est bien ça ?
est ce que je peux (continuer à) écrire script-local comme si il allait être exécuté en tant que script ? ça ne risque pas de poser de pb ?
par exemple, tous mes scripts commencent par #!/bin/sh -x - qu'est ce que ça fait ?
Bonjour,
j'aurais plutot mis : ssh ordi-distant sh < script-local
merci, qu'est ce que ça fait exactement ?
- est ce que c'est juste au cas où le shell de login ne serais pas sh ?
- est ce que c'est pour que ssh soit exécuté sous la forme ssh commande ? mais dans ce cas là, le 1er sh ne va pas être interactif mais le 2eme si, non ?
In article <48D597F3.5090706@laposte.net.invalid>,
Cyrille Lefevre <cyrille.lefevre-news%nospam@laposte.net.invalid>
wrote:
Stephane CHAZELAS a écrit :
> 2008-09-20, 15:42(+02), Thomas:
> [...]
>> avoir le script sur mon ordi,
>> et demander à ssh quand je l'exécute, de prendre le script sur mon ordi
>> et de l'exécuter sur l'ordi distant
>>
>> est ce que c'est possible, ça ?
> [...]
>
> ssh ordi-distant < script-local
merci :-)
par contre, le shell distant va être "en mode interactif" et va croire
que le contenu de script-local est tapé au clavier, c'est bien ça ?
est ce que je peux (continuer à) écrire script-local comme si il allait
être exécuté en tant que script ? ça ne risque pas de poser de pb ?
par exemple, tous mes scripts commencent par
#!/bin/sh -x -
qu'est ce que ça fait ?
Bonjour,
j'aurais plutot mis : ssh ordi-distant sh < script-local
merci, qu'est ce que ça fait exactement ?
- est ce que c'est juste au cas où le shell de login ne serais pas sh ?
- est ce que c'est pour que ssh soit exécuté sous la forme
ssh commande
?
mais dans ce cas là, le 1er sh ne va pas être interactif mais le 2eme
si, non ?
In article , Cyrille Lefevre <cyrille.lefevre-news% wrote:
Stephane CHAZELAS a écrit : > 2008-09-20, 15:42(+02), Thomas: > [...] >> avoir le script sur mon ordi, >> et demander à ssh quand je l'exécute, de prendre le script sur mon ordi >> et de l'exécuter sur l'ordi distant >> >> est ce que c'est possible, ça ? > [...] > > ssh ordi-distant < script-local
merci :-)
par contre, le shell distant va être "en mode interactif" et va croire que le contenu de script-local est tapé au clavier, c'est bien ça ?
est ce que je peux (continuer à) écrire script-local comme si il allait être exécuté en tant que script ? ça ne risque pas de poser de pb ?
par exemple, tous mes scripts commencent par #!/bin/sh -x - qu'est ce que ça fait ?
Bonjour,
j'aurais plutot mis : ssh ordi-distant sh < script-local
merci, qu'est ce que ça fait exactement ?
- est ce que c'est juste au cas où le shell de login ne serais pas sh ?
- est ce que c'est pour que ssh soit exécuté sous la forme ssh commande ? mais dans ce cas là, le 1er sh ne va pas être interactif mais le 2eme si, non ?
par contre, le shell distant va être "en mode interactif" et va croire que le contenu de script-local est tapé au clavier, c'est bien ça ?
Normalement, non. Le shell distant va exécuter le script (le #! n'est probablement pas pris en compte et est juste vu comme un commentaire: c'est un peu l'équivalent d'un "source", mais à vérifier). Un conseil: fais des essais avec des scripts simples.
Dans l'article <fantome.forums.tDeContes-81FFCE.14002921092008@news.free.fr>,
Thomas <fantome.forums.tDeContes@free.fr.invalid> écrit:
> > ssh ordi-distant < script-local
par contre, le shell distant va être "en mode interactif" et va croire
que le contenu de script-local est tapé au clavier, c'est bien ça ?
Normalement, non. Le shell distant va exécuter le script (le #! n'est
probablement pas pris en compte et est juste vu comme un commentaire:
c'est un peu l'équivalent d'un "source", mais à vérifier). Un conseil:
fais des essais avec des scripts simples.
par contre, le shell distant va être "en mode interactif" et va croire que le contenu de script-local est tapé au clavier, c'est bien ça ?
Normalement, non. Le shell distant va exécuter le script (le #! n'est probablement pas pris en compte et est juste vu comme un commentaire: c'est un peu l'équivalent d'un "source", mais à vérifier). Un conseil: fais des essais avec des scripts simples.
par contre, le shell distant va être "en mode interactif" et va croire que le contenu de script-local est tapé au clavier, c'est bien ça ?
Non, comme le stdin de ssh n'est pas un terminal, ssh ne lance pas un shell interactif a l'autre bout.
C'est comme si tu faisais:
"$SHELL" < script-local
est ce que je peux (continuer à) écrire script-local comme si il allait être exécuté en tant que script ? ça ne risque pas de poser de pb ?
Non, a part que si ton script lit son entree standard, ca va lire le contenu du script!
par exemple, tous mes scripts commencent par #!/bin/sh -x - qu'est ce que ça fait ?
C'est un commentaire pour le shell, donc ca ne fait rien. Cette ligne (non standard) ne sert que quand tu veux executer le script sans fournir le nom de l'interpreteur, auquel cas le systeme (pas le shell) lit cette ligne pour savoir quel interpreteur utilier.
Si tu veux activer l'option x quelle que soit la facon dont le script est lancé, utilise plutot "set -x".
j'aurais plutot mis : ssh ordi-distant sh < script-local
merci, qu'est ce que ça fait exactement ?
- est ce que c'est juste au cas où le shell de login ne serais pas sh ?
[...]
Oui.
-- Stéphane
2008-09-21, 14:00(+02), Thomas:
[...]
> ssh ordi-distant < script-local
[...]
par contre, le shell distant va être "en mode interactif" et va croire
que le contenu de script-local est tapé au clavier, c'est bien ça ?
Non, comme le stdin de ssh n'est pas un terminal, ssh ne lance
pas un shell interactif a l'autre bout.
C'est comme si tu faisais:
"$SHELL" < script-local
est ce que je peux (continuer à) écrire script-local comme si il allait
être exécuté en tant que script ? ça ne risque pas de poser de pb ?
Non, a part que si ton script lit son entree standard, ca va
lire le contenu du script!
par exemple, tous mes scripts commencent par
#!/bin/sh -x -
qu'est ce que ça fait ?
C'est un commentaire pour le shell, donc ca ne fait rien. Cette
ligne (non standard) ne sert que quand tu veux executer le
script sans fournir le nom de l'interpreteur, auquel cas le
systeme (pas le shell) lit cette ligne pour savoir quel
interpreteur utilier.
Si tu veux activer l'option x quelle que soit la facon dont le
script est lancé, utilise plutot "set -x".
j'aurais plutot mis : ssh ordi-distant sh < script-local
merci, qu'est ce que ça fait exactement ?
- est ce que c'est juste au cas où le shell de login ne serais pas sh ?
par contre, le shell distant va être "en mode interactif" et va croire que le contenu de script-local est tapé au clavier, c'est bien ça ?
Non, comme le stdin de ssh n'est pas un terminal, ssh ne lance pas un shell interactif a l'autre bout.
C'est comme si tu faisais:
"$SHELL" < script-local
est ce que je peux (continuer à) écrire script-local comme si il allait être exécuté en tant que script ? ça ne risque pas de poser de pb ?
Non, a part que si ton script lit son entree standard, ca va lire le contenu du script!
par exemple, tous mes scripts commencent par #!/bin/sh -x - qu'est ce que ça fait ?
C'est un commentaire pour le shell, donc ca ne fait rien. Cette ligne (non standard) ne sert que quand tu veux executer le script sans fournir le nom de l'interpreteur, auquel cas le systeme (pas le shell) lit cette ligne pour savoir quel interpreteur utilier.
Si tu veux activer l'option x quelle que soit la facon dont le script est lancé, utilise plutot "set -x".
j'aurais plutot mis : ssh ordi-distant sh < script-local
merci, qu'est ce que ça fait exactement ?
- est ce que c'est juste au cas où le shell de login ne serais pas sh ?
[...]
Oui.
-- Stéphane
Olivier Miakinen
Le 21/09/2008 21:32, Vincent Lefevre répondait à Thomas :
Tu peux aussi lire les pages man...
;-)
Le 21/09/2008 21:32, Vincent Lefevre répondait à Thomas :
Le 21/09/2008 21:32, Vincent Lefevre répondait à Thomas :
Tu peux aussi lire les pages man...
;-)
Thierry B.
--{ Stephane CHAZELAS a plopé ceci: }--
#!/bin/sh -x -
C'est un commentaire pour le shell, donc ca ne fait rien. Cette ligne (non standard) ne sert que quand tu veux executer le
Euh, le shebang, c'est quand même assez canonique, à défaut d'être purement "standard"... Je ne connais pas un seul noyau Unix qui ne le comprenne pas.
C'est un commentaire pour le shell, donc ca ne fait rien. Cette
ligne (non standard) ne sert que quand tu veux executer le
Euh, le shebang, c'est quand même assez canonique, à défaut
d'être purement "standard"... Je ne connais pas un seul
noyau Unix qui ne le comprenne pas.
C'est un commentaire pour le shell, donc ca ne fait rien. Cette ligne (non standard) ne sert que quand tu veux executer le
Euh, le shebang, c'est quand même assez canonique, à défaut d'être purement "standard"... Je ne connais pas un seul noyau Unix qui ne le comprenne pas.
> par exemple, tous mes scripts commencent par > #!/bin/sh -x - > qu'est ce que ça fait ?
C'est un commentaire pour le shell, donc ca ne fait rien.
Quel programme interprète le shebang ?
La kernelle, dans l'appel système execve (ou assimilé).
--
Euh, juste par pure curiosité technique. Comment est défini le barycentre sur une variété qui n'est pas globalement difféomorphe à une boule ?
À tes souhaits.
-+- JS in GFA -+- Bien configurer sa curiosite technique.
Stephane CHAZELAS
2008-09-22, 21:41(+02), Thierry B.:
--{ Stephane CHAZELAS a plopé ceci: }--
#!/bin/sh -x -
C'est un commentaire pour le shell, donc ca ne fait rien. Cette ligne (non standard) ne sert que quand tu veux executer le
Euh, le shebang, c'est quand même assez canonique, à défaut d'être purement "standard"... Je ne connais pas un seul noyau Unix qui ne le comprenne pas.
[...]
Mais ils le comprennent differement.
Typiquement, #! /bin/sh -x - marchera sous peu d'Unix (FreeBSD, et?).
Sous Linux, "-x -" sera pris comme un seul argument, sous d'autres, "-" sera ignoré... Et rien ne guarantit que le sh standard soit dans /bin (par exemple, sous Solaris, il est dans /usr/xpg4/bin ou /usr/xpg6/bin).
Voir http://www.in-ulm.de/~mascheck/various/shebang/ pour plus d'info.
-- Stéphane
2008-09-22, 21:41(+02), Thierry B.:
--{ Stephane CHAZELAS a plopé ceci: }--
#!/bin/sh -x -
C'est un commentaire pour le shell, donc ca ne fait rien. Cette
ligne (non standard) ne sert que quand tu veux executer le
Euh, le shebang, c'est quand même assez canonique, à défaut
d'être purement "standard"... Je ne connais pas un seul
noyau Unix qui ne le comprenne pas.
[...]
Mais ils le comprennent differement.
Typiquement, #! /bin/sh -x -
marchera sous peu d'Unix (FreeBSD, et?).
Sous Linux, "-x -" sera pris comme un seul argument, sous
d'autres, "-" sera ignoré... Et rien ne guarantit que le sh
standard soit dans /bin (par exemple, sous Solaris, il est dans
/usr/xpg4/bin ou /usr/xpg6/bin).
Voir http://www.in-ulm.de/~mascheck/various/shebang/
pour plus d'info.
C'est un commentaire pour le shell, donc ca ne fait rien. Cette ligne (non standard) ne sert que quand tu veux executer le
Euh, le shebang, c'est quand même assez canonique, à défaut d'être purement "standard"... Je ne connais pas un seul noyau Unix qui ne le comprenne pas.
[...]
Mais ils le comprennent differement.
Typiquement, #! /bin/sh -x - marchera sous peu d'Unix (FreeBSD, et?).
Sous Linux, "-x -" sera pris comme un seul argument, sous d'autres, "-" sera ignoré... Et rien ne guarantit que le sh standard soit dans /bin (par exemple, sous Solaris, il est dans /usr/xpg4/bin ou /usr/xpg6/bin).
Voir http://www.in-ulm.de/~mascheck/various/shebang/ pour plus d'info.