# 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. ~~~ -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary