Le Sun, 23 Aug 2009 15:56:22 +0200, Thomas a écrit :
bonjour :-)
est il possible de simplifier ce script en sorte qu'il y ait moins de connexions ssh ? http://dl.free.fr/r0HdYgI1g
je demande ça parce que j'ai une validation à faire à chaque connexion
l'idéal ça serait qu'il y ait une seule connexion par ordi, et qu'on fasse tout ce qu'on a à faire sur l'ordi d'une seule traite
Bonjour,
Tu peux te passer du mkdir initial avec un truc comme : rsync -azv --partial --progress $DossierParent/a-tous/Administration- ordinateur $DEST:~/
sinon, une solution à base de clef(s) mise(s) dans un ssh-agent devrait permettre une baisse des interactions
-- Bastien Durel
Cyrille Lefevre
Thomas a écrit :
bonjour :-)
est il possible de simplifier ce script en sorte qu'il y ait moins de connexions ssh ? http://dl.free.fr/r0HdYgI1g
je demande ça parce que j'ai une validation à faire à chaque conn exion
l'idéal ça serait qu'il y ait une seule connexion par ordi, et qu'o n fasse tout ce qu'on a à faire sur l'ordi d'une seule traite
Bonjour,
google : ssh controlmaster
version simplifié :
# on ferme les connections ouvertes à la sortie du script trap 'for host in $hosts; do ssh -O ControlPath=$socket -O exit $host; done' EXIT
# la socket de control socket=~/.ssh/ssh-%r@%h-%p-$$
conseil, ce qui suit dans une fonction :
# déjà ouvert ? ssh -O ControlPath=$socket -O check if (( $? == 255 )); then # non, on l'ouvre ssh -afnNqx -O ControlPath=$socket -o ControlMaster=auto # et on la sauvegarde hosts="$hosts " # ouvert ? ssh -O ControlPath=$socket -O check # il y a un pb, on sort ou passe à la machine suivante (( $? == 255 )) && message d'erreur fi
jusqu'ici...
# une connexion ssh ssh -O ControlPath=$socket command arg... # un scp scp -O ControlPath=$socket file... :... # un rsync RSYNC_RSH='ssh -O ControlPath=$socket' rsync ... # etc. ...
Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre.
Thomas a écrit :
bonjour :-)
est il possible de simplifier ce script en sorte qu'il y ait moins de
connexions ssh ?
http://dl.free.fr/r0HdYgI1g
je demande ça parce que j'ai une validation à faire à chaque conn exion
l'idéal ça serait qu'il y ait une seule connexion par ordi, et qu'o n
fasse tout ce qu'on a à faire sur l'ordi d'une seule traite
Bonjour,
google : ssh controlmaster
version simplifié :
# on ferme les connections ouvertes à la sortie du script
trap 'for host in $hosts; do ssh -O ControlPath=$socket -O exit $host;
done' EXIT
# la socket de control
socket=~/.ssh/ssh-%r@%h-%p-$$
conseil, ce qui suit dans une fonction :
# déjà ouvert ?
ssh -O ControlPath=$socket -O check user@host
if (( $? == 255 )); then
# non, on l'ouvre
ssh -afnNqx -O ControlPath=$socket -o ControlMaster=auto user@host
# et on la sauvegarde
hosts="$hosts user@host"
# ouvert ?
ssh -O ControlPath=$socket -O check user@host
# il y a un pb, on sort ou passe à la machine suivante
(( $? == 255 )) && message d'erreur
fi
jusqu'ici...
# une connexion ssh
ssh -O ControlPath=$socket user@host command arg...
# un scp
scp -O ControlPath=$socket file... user@host:...
# un rsync
RSYNC_RSH='ssh -O ControlPath=$socket' rsync ...
# etc.
...
Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
est il possible de simplifier ce script en sorte qu'il y ait moins de connexions ssh ? http://dl.free.fr/r0HdYgI1g
je demande ça parce que j'ai une validation à faire à chaque conn exion
l'idéal ça serait qu'il y ait une seule connexion par ordi, et qu'o n fasse tout ce qu'on a à faire sur l'ordi d'une seule traite
Bonjour,
google : ssh controlmaster
version simplifié :
# on ferme les connections ouvertes à la sortie du script trap 'for host in $hosts; do ssh -O ControlPath=$socket -O exit $host; done' EXIT
# la socket de control socket=~/.ssh/ssh-%r@%h-%p-$$
conseil, ce qui suit dans une fonction :
# déjà ouvert ? ssh -O ControlPath=$socket -O check if (( $? == 255 )); then # non, on l'ouvre ssh -afnNqx -O ControlPath=$socket -o ControlMaster=auto # et on la sauvegarde hosts="$hosts " # ouvert ? ssh -O ControlPath=$socket -O check # il y a un pb, on sort ou passe à la machine suivante (( $? == 255 )) && message d'erreur fi
jusqu'ici...
# une connexion ssh ssh -O ControlPath=$socket command arg... # un scp scp -O ControlPath=$socket file... :... # un rsync RSYNC_RSH='ssh -O ControlPath=$socket' rsync ... # etc. ...
Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre.