81 lines
3.2 KiB
Markdown
81 lines
3.2 KiB
Markdown
# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
|
##@creator: jclain
|
|
##@created: 27/04/2016 03:19
|
|
##@modifier: jclain
|
|
##@changecount: 1
|
|
##@tags:
|
|
##@title: ussh
|
|
|
|
{{{
|
|
ussh: se connecter par ssh à un ou plusieurs hôtes
|
|
|
|
USAGE
|
|
ussh [options] hosts
|
|
ussh [options] @hostsfile
|
|
ussh -r hosts
|
|
ussh --parse hosts
|
|
|
|
OPTIONS
|
|
hosts
|
|
@hostsfile
|
|
Spécifier un ou plusieurs hôtes distants sur lequels faire la connexion.
|
|
Pour spécifier plusieurs hôtes, il faut les séparer par un espace ou le
|
|
caractère ':', e.g. 'host1 host2' ou 'host1:host2'. Si la spécification
|
|
contient les caractères { et }, l'expansion est effectuée, e.g
|
|
'root@{host1,host2}.univ.run'
|
|
La forme @hostsfile permet de lire la liste des hôtes depuis le fichier
|
|
hostsfile, à raison d'un hôte par ligne.
|
|
|
|
Toutes les options de ssh sont reconnues. Les options longues suivantes sont
|
|
reconnues comme alias de certaines options courtes de ssh:
|
|
--quiet
|
|
alias de -q, activer le mode non verbeux
|
|
--tty
|
|
alias de -t, forcer l'allocation d'un TTY
|
|
--login USER
|
|
alias de -l, spécifier le user avec lequel se connecter
|
|
--port PORT
|
|
alias de -p, spécifier le port sur lequel se connecter
|
|
|
|
Les options suivantes sont exclusives à ce script:
|
|
-d, --domain DOMAIN
|
|
Spécifier un domaine par défaut pour les hôtes qui sont spécifiés sans
|
|
domaine.
|
|
-z, --ssh SSH
|
|
Spécifier l'exécutable à utiliser pour lancer ssh.
|
|
-r, --remove
|
|
Lancer 'ssh-keygen -R' pour chacun des hôtes spécifiés avant de s'y
|
|
connecter. Par exemple:
|
|
ussh -r host.tld
|
|
est équivalent à:
|
|
ssh-keygen -R host.tld
|
|
ssh-keygen -R host
|
|
ssh-keygen -R 10.10.1.5
|
|
ssh host.tld
|
|
si l'adresse ip de host.tld est 10.10.1.5
|
|
Quand cette option est spécifié, l'option -j est reconnue et permet de
|
|
NE PAS se reconnecter à l'hôte juste après avoir nettoyé les clés. Avec
|
|
l'option -j, TOUS les arguments sont des noms d'hôte puisqu'aucune
|
|
connexion n'est effectuée.
|
|
--exec
|
|
--no-exec
|
|
Avec --exec, si un seul hôte est spécifié, lancer le processus ssh avec
|
|
exec, pour éviter d'encombrer la mémoire. C'est l'option par défaut.
|
|
Avec --no-exec, ne jamais utiliser exec pour lancer ssh.
|
|
--parse
|
|
Afficher la définition des variables ssh, options, hosts et args qui
|
|
permettent d'effectuer la connexion à partir d'un autre script. Exemple:
|
|
eval "$(ussh --parse args...)"
|
|
for host in "${hosts[@]}"; do
|
|
${exec:+exec} "$ssh" "${options[@]}" "$host" "${args[@]}"
|
|
done
|
|
--cc
|
|
Assumer que nutools est installé sur l'hôte distant, et y lancer uwatch
|
|
avec l'option --cc, pour permettre de garder la connexion active dans le
|
|
cadre d'une redirection de port.
|
|
|
|
Si la variable UTOOLS_USSH_RSYNC_SUPPORT contient une valeur non vide, l'analyse
|
|
des arguments s'arrête à la première valeur qui n'est pas une option, afin de
|
|
permettre l'utilisation de ce script avec l'option -e de rsync.
|
|
}}}
|