pdsh - En ligne dans le Cloud

Il s'agit de la commande pdsh qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks à l'aide de l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


pdsh - émettre des commandes à des groupes d'hôtes en parallèle

SYNOPSIS


dpa [Options]... commande

DESCRIPTION


dpa est une variante du rsh(1) commande. contrairement à rsh(1), qui exécute des commandes sur un seul
hôte distant, dpa peut exécuter plusieurs commandes à distance en parallèle. dpa utilise un "glissant
fenêtre" (ou fanout) de threads pour conserver les ressources sur l'hôte initiateur tout en permettant
quelques connexions à temps mort.

Quand dpa reçoit SIGINT (ctrl-C), il répertorie l'état des threads en cours. Une seconde
SIGINT en moins d'une seconde termine le programme. Les discussions en attente peuvent être annulées par
émettre ctrl-Z dans la seconde qui suit ctrl-C. Les threads en attente sont ceux qui n'ont pas encore
ont été initiés ou sont toujours en train de se connecter à l'hôte distant.

Si une commande distante n'est pas spécifiée sur la ligne de commande, dpa fonctionne de manière interactive,
demander des commandes et les exécuter lorsqu'il est terminé par un retour chariot. Dans
mode interactif, les nœuds cibles qui expirent à la première commande ne sont pas contactés pour
les commandes suivantes et les commandes précédées d'un point d'exclamation seront exécutées le
le système local.

La fonctionnalité principale de dpa peut être complété par des modules chargeables dynamiquement. Les
modules peuvent fournir un nouveau protocole de connexion (remplaçant le standard cmd(3) protocole
utilisé par rsh(1)), les options de filtrage (par exemple, la suppression des hôtes "en panne" de la cible
liste) et/ou des options de sélection d'hôte (par exemple, -a sélectionne tous les hôtes d'une configuration
déposer.). Par défaut, dpa doit avoir au moins un module "rcmd" chargé. Voir le MRC MODULES
section pour plus d'informations.

MRC MODULES


La méthode par laquelle dpa exécute des commandes sur des hôtes distants peut être sélectionné au moment de l'exécution en utilisant
le -R option (voir OPTIONS au dessous de). Cette fonctionnalité est finalement mise en œuvre via
modules chargeables dynamiquement, et donc la liste des options disponibles peut être différente de
installation à l'installation. Une liste des modules rcmd actuellement disponibles est imprimée lorsque
en utilisant l'un des -h, -V, ou -L option. Le module rcmd par défaut sera également affiché
grâce à la fonction -h et -V options.

Une liste de cmd modules actuellement distribués avec dpa suit.

rsh Utilise une implémentation interne et thread-safe de BSD cmd(3) pour exécuter des commandes en utilisant
la norme rsh(1) protocole.

exec Exécute une commande arbitraire pour chaque hôte cible. Le premier des dpa éloigné
arguments est la commande locale à exécuter, suivie de tout autre argument. Certains
des paramètres simples sont substitués sur la ligne de commande, y compris %h pour la cible
nom d'hôte, %u pour le nom d'utilisateur distant, et %n pour le rang distant [0-n] (Pour obtenir un
littéral % utilisé %%). Par exemple, ce qui suit serait dupliqué en utilisant le ssh
module à exécuter nom d'hôte(1) sur les hôtes foo[0-10] :

pdsh -R exec -w foo[0-10] ssh -x -l %u %h nom d'hôte

et cette ligne de commande s'exécuterait grep(1) en parallèle à travers les fichiers
console.foo[0-10] :

pdsh -R exec -w foo[0-10] grep BUG console.%h

ssh utilise une variante de pope(3) pour exécuter plusieurs copies du ssh(1) commande.

mrsh Ce module utilise le madame(1) protocole pour exécuter des tâches sur des hôtes distants. le mrs
Le protocole utilise une authentification basée sur les informations d'identification, évitant ainsi la nécessité d'allouer
ports réservés. Dans d'autres aspects, il agit exactement comme rsh. Les nœuds distants doivent être
Running mrshd(8) pour que le module mrsh fonctionne.

qsh autorise dpa pour exécuter des tâches MPI sur QsNet. Qshell propage le travail actuel
répertoire, environnement pdsh et capacités Elan au processus distant. Les
la variable d'environnement suivante est également ajoutée à l'environnement : RMS_RANK,
RMS_NODEID, RMS_PROCID, RMS_NNODES et RMS_NPROCS. Depuis dpa doit exécuter setuid
root pour la prise en charge de qshell, qshell ne prend pas directement en charge la propagation de
LD_LIBRARY_PATH et LD_PREOPEN. Au lieu de cela, le QSHELL_REMOTE_LD_LIBRARY_PATH et
Les variables d'environnement QSHELL_REMOTE_LD_PREOPEN pourront être utilisées et seront
remappé sur LD_LIBRARY_PATH et LD_PREOPEN par le démon qshell s'il est défini.

mqsh Similaire à qshell, mais utilise le protocole mrsh au lieu du protocole rsh.

krb4 Le module krb4 permet aux utilisateurs d'exécuter des commandes à distance après s'être authentifiés avec
kerberos. Bien entendu, les démons rshd distants doivent être kerberisés.

xcpu Le module xcpu utilise le service xcpu pour exécuter des commandes à distance.

OPTIONS


La liste des options disponibles est déterminée à l'exécution en complétant la liste des
Standard dpa options avec toutes les options fournies par chargé cmd et misc modules. Dans certaines
cas, les options fournies par les modules peuvent entrer en conflit les unes avec les autres. Dans ces cas, le
les modules sont incompatibles et le premier module chargé l'emporte.

Standard l'objectif liste de nœuds Options


-w CIBLES,...
Ciblez et/ou filtrez la liste d'hôtes spécifiée. Ne pas utiliser avec un autre nœud
options de sélection (par ex. -a, -g, s'ils sont disponibles). Aucun espace n'est autorisé dans
la liste séparée par des virgules. Arguments dans le CIBLES la liste peut inclure un hôte normal
noms, une plage d'hôtes au format liste d'hôtes (voir LISTE D'HTES EXPRESSIONS), ou un seul
Caractère `-' pour lire la liste des hôtes sur stdin.

Si un hôte ou une liste d'hôtes est précédé d'un caractère « - », cela fait que ces hôtes sont
explicitement exclu. Si l'argument est précédé d'un seul caractère `^', il est
considéré comme le chemin d'accès au fichier contenant une liste d'hôtes, un par ligne. Si l'article
commence par un caractère `/', il est pris comme une expression régulière sur laquelle
filtrer la liste des hôtes (un argument regex peut également être éventuellement suivi par
un autre '/', par exemple /node.*/). Un argument de regex ou de nom de fichier peut également être précédé
par un moins `-' pour exclure au lieu d'inclure ces hôtes.

Une liste d'hôtes peut également être précédée de "user@" pour spécifier un nom d'utilisateur distant autre
que la valeur par défaut, ou "rcmd_type:" pour spécifier un autre type de connexion rcmd pour
ces hôtes. Lorsqu'ils sont utilisés ensemble, le type rcmd doit être spécifié en premier, par exemple
"ssh:user1@host0" utiliserait ssh pour se connecter à host0 en tant qu'utilisateur "user1".

-x hôte, hôte,...
Exclure les hôtes spécifiés. Peut être spécifié en conjonction avec un autre nœud cible
lister les options telles que -a et -g (quand disponible). Les listes d'hôtes peuvent également être spécifiées pour
le -x option (voir le LISTE D'HTES EXPRESSIONS rubrique ci-dessous). Arguments à -x Au cours de cette réunion, Matthew a obtenu de précieux conseils et Linda lui a demandé de la tenir au courant de ses progrès.
être également précédé par le nom de fichier (`^') et les caractères regex ('/') comme décrit
ci-dessus, auquel cas les hôtes résultants sont exclus comme s'ils avaient été donnés à
-w et précédé du caractère moins « - ».

Standard dpa Options


-S Renvoie la plus grande des valeurs de retour de commande à distance.

-h Afficher le menu d'utilisation et quitter. Une liste des modules rcmd disponibles sera également imprimée
à la fin du message d'utilisation.

-s Uniquement sous AIX, séparez la commande distante stderr et stdout dans deux sockets.

-q Répertoriez les valeurs des options et la liste de nœuds cible et quittez sans action.

-b Désactivez la fonction d'état ctrl-C afin qu'un seul ctrl-C tue le travail parallèle. (Grouper
mode)

-l utilisateur
Cette option peut être utilisée pour exécuter des commandes à distance en tant qu'autre utilisateur, sous réserve de
autorisation. Pour BSD rcmd, cela signifie que l'utilisateur et le système appelant doivent être répertoriés
dans le fichier .rhosts de l'utilisateur (même pour root).

-t secondes
Définissez le délai de connexion. La valeur par défaut est de 10 secondes.

-u secondes
Définissez une limite sur la durée pendant laquelle une commande à distance est autorisée à s'exécuter. Défaut
n'y a pas de limite. Voir la note dans les LIMITATIONS si vous utilisez -u avec ssh.

-f nombre
Réglez le nombre maximum de commandes à distance simultanées sur nombre. La valeur par défaut est
32.

-R Le nom
Définir le module rcmd sur Le nom. Cette option peut également être définie via le PDSH_RCMD_TYPE
variable d'environnement. Une liste des modules rcmd disponibles peut être obtenue via le -h,
-V, ou -L option. La valeur par défaut sera répertoriée avec -h or -V.

-M Nom,...
Lorsque plusieurs misc les modules offrent les mêmes options pour dpa, le premier module
"wins" initialisés et les modules suivants ne sont pas chargés. Les -M l'option permet un
liste des modules à préciser qui seront initialisés de force avant tous les autres,
en effet en veillant à ce qu'ils se chargent sans conflit (sauf s'ils sont en conflit avec
l'un l'autre). Cette option peut également être définie via l'environnement PDSH_MISC_MODULES
variable.

-L Liste des informations sur tous les chargés dpa modules et quitter.

-N Désactiver le nom d'hôte : préfixe sur les lignes de sortie.

-d Inclure un état de thread plus complet lorsque SIGINT est reçu et afficher la connexion
et les statistiques de temps de commande sur stderr une fois terminé.

-V Sortie dpa les informations de version, ainsi que la liste des modules actuellement chargés, et
Sortie.

qsh/mqsh module Options


-n task_per_node
Définissez le nombre de tâches générées par nœud. La valeur par défaut est 1.

-m bloc | cyclique
Définir le bloc par rapport à l'allocation cyclique des processus aux nœuds. La valeur par défaut est le bloc.

-r masque de rail
Définissez le masque binaire de rail pour une tâche sur un système multirail. Le railmask par défaut est 1,
qui correspond au rail 0 uniquement. Chaque bit défini dans l'argument à -r correspond à
un rail sur le système, donc une valeur de 2 correspondrait au rail 1 uniquement, et 3
indiquer d'utiliser à la fois le rail 1 et le rail 0.

machines module Options


-a Ciblez tous les nœuds du fichier machines.

les genres module Options


En plus des options de genre présentées ci-dessous, l'attribut de genre pdsh_rcmd_type
peut également être utilisé dans la base de données des sexes pour spécifier un autre type de connexion rcmd que
le pdsh par défaut pour les hôtes avec cet attribut. Par exemple, la ligne suivante dans le
fichier des genres

hôte0 pdsh_rcmd_type=ssh

causerait dpa d'utiliser ssh pour se connecter à host0, même si rsh était la valeur par défaut. Ceci peut
être remplacé sur la ligne de commande avec la syntaxe "rcmd_type:host0".

-A Ciblez tous les nœuds de la base de données des genres. Les -A L'option ciblera chaque hôte répertorié
dans les genres -- si vous souhaitez omettre certains hôtes par défaut, consultez le -a option ci-dessous.

-a Cibler tous les nœuds de la base de données des genres, sauf ceux avec le "pdsh_all_skip"
attribut. C'est un raccourci pour exécuter "pdsh -A -X pdsh_all_skip ..."

-g attr[=val][,attr[=val],...]
Cibler les nœuds qui correspondent à l'un des attributs de genre spécifiés (avec en option
valeurs). Des conflits avec le -a option. Si utilisé en combinaison avec un autre nœud
options de sélection comme -w, le -g l'option sélectionnera dans la liste de nœuds fournie,
au lieu du fichier des genres dans son ensemble. Sinon, cette option cible le
noms d'hôtes alternatifs dans la base de données des sexes par défaut. Les -i option offerte par
le module des genres peut être utilisé pour les traduire en genres canoniques
noms d'hôtes. Si la version installée de genders le prend en charge, les attributs fournis à
-g peut aussi prendre la forme de genres requêtes. Genres requêtes interrogera le
base de données des genres pour l'union, l'intersection, la différence ou le complément des genres
attributs et valeurs. L'union de l'opération définie est représentée par deux symboles de tuyau
('||'), intersection par deux symboles esperluette ('&&'), différence par deux moins
symboles ('--'), et compléter par un tilde ('~'). Les parenthèses peuvent être utilisées pour changer
l'ordre des opérations. Voir le nœudattr(1) page de manuel pour des exemples de genres
requêtes.

-X attr[=val][,attr[=val],...]
Exclure les nœuds qui correspondent à l'un des attributs de genre spécifiés (éventuellement avec
valeurs). Cette option peut être utilisée en combinaison avec n'importe quel autre nœud
options de sélection (par ex. -w, -g, -a, -X peut aussi prendre la forme de genres requêtes.
Veuillez consulter la documentation pour les sexes -g option pour plus d'informations sur
les genres requêtes.

-i Demande de traduction entre les noms d'hôtes canoniques et alternatifs.

-F nom de fichier
Lisez les informations sur les sexes de nom de fichier au lieu du fichier de genre par défaut du système.
If nom de fichier ne spécifie pas de chemin absolu, alors il est considéré comme relatif au
répertoire spécifié par le PDSH_GENDERS_DIR variable d'environnement (/ Etc par défaut).
Un fichier de genre alternatif peut également être spécifié via le PDSH_GENDERS_FILE
variable d'environnement.

noeudupdown module Options


-v Éliminez les nœuds cibles qui sont considérés comme « en panne » par libnodeupdown.

slurper module Options


slurper module permet dpa pour cibler les nœuds en fonction des tâches SLURM en cours d'exécution. Les
slurper le module est généralement appelé après que toutes les autres options de sélection de nœud ont été
traité, et si aucun nœud n'a été sélectionné, le module tentera de lire un
jobid de la variable d'environnement SLURM_JOBID (qui est définie lors de l'exécution sous un SLURM
allocation). Si SLURM_JOBID fait référence à un travail invalide, il sera ignoré en silence.

-j id de travail[, id de travail,...]
Liste cible des nœuds alloués au travail SLURM id de travail. Cette option peut être utilisée
plusieurs fois pour cibler plusieurs tâches SLURM. L'argument spécial "all" peut être
utilisé pour cibler tous les nœuds exécutant des tâches SLURM, par exemple -j tous.

-P partition[,partition,...]
Liste cible des nœuds contenus dans la partition SLURM partition. Cette option peut
être utilisé plusieurs fois pour cibler plusieurs partitions SLURM et/ou des partitions peuvent être
donné dans une liste délimitée par des virgules.

couple module Options


couple module permet dpa pour cibler les nœuds en fonction des tâches Torque/PBS en cours d'exécution.
Semblable au module slurm, le couple le module est généralement appelé après tous les autres nœuds
les options de sélection ont été traitées, et si aucun nœud n'a été sélectionné, le module
tenter de lire un jobid en cours d'exécution à partir de la variable d'environnement PBS_JOBID (qui est définie lorsque
fonctionnant sous une allocation de couple).

-j id de travail[, id de travail,...]
Liste cible des nœuds alloués à la tâche Torque id de travail. Cette option peut être utilisée
plusieurs fois pour cibler plusieurs tâches de couple.

rms module Options


rms Le module permet à pdsh de cibler des nœuds en fonction d'une ressource RMS. Les rms le module est
généralement appelé après toutes les autres options de sélection de nœud, et si aucun nœud n'a été
sélectionné, le module examinera la variable d'environnement RMS_RESOURCEID et tentera de
définissez la liste cible des hôtes sur les nœuds de la ressource RMS. Si une ressource invalide est
notée, la variable est silencieusement ignorée.

DTS module Options


Le module SDR prend en charge le ciblage des hôtes via le référentiel de données système sur les SP IBM.

-a Ciblez tous les nœuds du SDR. La liste est générée à partir du "nom d'hôte fiable" dans
le SDR par défaut.

-i Traduisez les noms d'hôte entre fiable et initial dans le SDR, le cas échéant. Si
le nom d'hôte cible correspond au nom d'hôte initial ou fiable dans le SDR,
le nom alternatif sera remplacé. Ainsi une liste composée des hostnames initiaux
sera plutôt remplacé par une liste de noms d'hôtes fiables. Par exemple, lorsqu'il est utilisé
avec -a ci-dessus, tous les noms d'hôte initiaux du SDR sont ciblés.

-v Ne ciblez pas les nœuds marqués comme ne répondant pas dans le SDR sur le
interface. (Si un nom d'hôte n'apparaît pas dans le SDR, ce nom restera dans
la liste d'hôtes cible.)

-G En combinaison avec -a, inclut toutes les partitions.

nœudattr module Options


nœudattr module prend en charge l'accès à la base de données des genres via le nœudattr(1) commande.
Voir le les genres section ci-dessus pour une liste des options de support avec ce module. L'option
utilisation avec le nœudattr le module est le même que les genres, ci-dessus, à l'exception du fait que le
-i l'option ne peut être utilisée qu'avec -a or -g. REMARQUE: Ce module ne fonctionnera qu'avec les très anciens
libérations des genres où le nœudattr(1) la commande prend en charge le -r option, et avant la
L'API libgenders était disponible. Les utilisateurs exécutant des versions plus récentes de genders devront utiliser le
les genres module à la place.

groupe dsh module Options


Le module dshgroup permet à pdsh d'utiliser des fichiers de groupe de style dsh (ou Dancer's shell) à partir de
/etc/dsh/group/ ou ~/.dsh/groupe/. Le chemin de recherche par défaut peut être remplacé par le
Variable d'environnement DSHGROUP_PATH, une liste de répertoires séparés par des deux-points à rechercher. Les
la valeur par défaut de DSHGROUP_PATH est /etc/dsh/group.

-g nom de groupe,...
Nœuds cibles dans le fichier de groupe dsh "nom de groupe" trouvés dans l'un ou l'autre ~/.dsh/groupe/nom_groupe
ou /etc/dsh/group/groupname.

-X nom de groupe,...
Exclure les nœuds dans le fichier de groupe dsh "nom de groupe".

En tant qu'amélioration de dpa, les fichiers dshgroup peuvent éventuellement inclure d'autres fichiers dshgroup via
une spéciale #comprendre STRING syntaxe. L'argument de #comprendre peut être soit un chemin de fichier, soit
un nom de groupe, auquel cas le chemin utilisé pour rechercher le fichier de groupe est le même que si
le groupe avait été désigné pour -g.

groupe réseau module Options


Le module netgroup permet à pdsh d'utiliser des entrées netgroup standard pour créer des listes de cibles
hôtes. (/etc/netgroup ou NIS)

-g nom de groupe,...
Nœuds cibles dans le groupe réseau "nom de groupe".

-X nom de groupe,...
Exclure les nœuds du groupe de réseaux "nom de groupe".

ENVIRONNEMENT VARIABLES


PDSH_RCMD_TYPE
Équivalent au -R option, la valeur de cette variable d'environnement sera utilisée pour
définir le module rcmd par défaut pour pdsh à utiliser (par exemple ssh, rsh).

PDSH_SSH_ARGS
Remplacez les arguments standard qui dpa passe au ssh(1) commande ("-2 -a -x
-l%u %h"). L'utilisation des paramètres %u, %het %n (comme documenté dans le rcmd/exécutable
section ci-dessus) est facultative. Si ces paramètres sont manquants, dpa les ajoutera
à la ligne de commande ssh car on suppose qu'ils sont obligatoires.

PDSH_SSH_ARGS_APPEND
Ajoutez des options supplémentaires à la ssh(1) commande invoquée par dpa. Par exemple,
PDSH_SSH_ARGS_APPEND="-q" exécuterait ssh en mode silencieux, ou "-v" augmenterait le
verbosité de ssh. (Remarque : ces arguments sont en fait ajoutés au ssh
ligne de commande pour s'assurer qu'ils apparaissent avant tout argument de nom d'hôte cible à ssh.)

WCOLL Si aucune autre option de sélection de nœud n'est utilisée, la variable d'environnement WCOLL peut être
défini sur un nom de fichier à partir duquel une liste d'hôtes cibles sera lue. Le fichier doit
contenir une liste d'hôtes, un par ligne (bien que chaque ligne puisse contenir une liste d'hôtes
expression. Voir LISTE D'HTES EXPRESSIONS section ci-dessous).

CHEMIN DSHP
S'il est défini, le chemin dans DSHPATH sera utilisé comme PATH pour les processus distants.

VENTILATEUR Réglez le dpa sortance (voir la description de -f au dessus de).

LISTE D'HTES EXPRESSIONS


Comme indiqué dans les sections ci-dessus dpa accepte les listes d'hôtes sous la forme générale : prefix[nm,l-
k,...], où n < m et l < k, etc., comme alternative aux listes explicites d'hôtes. Cette
ne doit pas être confondu avec les classes de caractères d'expression régulière (également désignées par
``[]''). Par exemple, foo[19] ne représente pas une expression correspondant à foo1 ou foo9, mais
représente plutôt la liste d'hôtes dégénérée : foo19.

La syntaxe de la liste d'hôtes n'est destinée qu'à des fins de commodité sur les clusters avec un nom "prefixNNN"
la convention et la spécification des plages ne devraient pas être considérées comme nécessaires - cela
foo1,foo9 pourrait être spécifié comme tel, ou par la liste d'hôtes foo[1,9].

Voici quelques exemples d'utilisation :

Exécuter la commande sur foo01,foo02,...,foo05
pdsh -w foo[01-05] commande

Exécuter la commande sur foo7,foo9,foo10
pdsh -w foo[7,9-10] commande

Exécuter la commande sur foo0,foo4,foo5
pdsh -w foo[0-5] -x foo[1-3] commande

Un suffixe sur le nom d'hôte est également pris en charge :

Run command on foo0-eth0,foo1-eth0,foo2-eth0,foo3-eth0
commande pdsh -w foo[0-3]-eth0

Pour rappel au lecteur, certains shells interpréteront les crochets ('[' et ']') pour le motif
correspondant à. En fonction de votre shell, il peut être nécessaire d'inclure des listes d'intervalles dans
devis. Par exemple, dans tcsh, le premier exemple ci-dessus doit être exécuté comme :

commande pdsh -w "foo[01-05]"

ORIGINE


A l'origine une réécriture d'IBM DSH(1) par Jim Garlickailk@llnl.gov> sur l'ASCI Blue de LLNL-
Système IBM SP du Pacifique. Il est maintenant utilisé sur les clusters Linux chez LLNL.

LIMITATIONS


Lors de l'utilisation ssh pour l'exécution à distance, attendez-vous à ce que le stderr de ssh soit plié avec celui de
la commande à distance. Lorsqu'il est invoqué par dpa, il n'est pas possible pour ssh demander
mots de passe si les clés RSA/DSA sont correctement configurées, etc. ssh des implémentations qui
prendre en charge une option de délai de connexion, dpa tente d'utiliser cette option pour appliquer le délai d'attente
(par exemple -oConnectTimeout=T pour OpenSSH), sinon les délais de connexion ne sont pas pris en charge lorsque
grâce à ssh. Enfin, il n'existe aucun moyen fiable pour dpa pour s'assurer que les commandes à distance sont
réellement terminé lors de l'utilisation d'un délai d'attente de commande. Ainsi si -u s'utilise avec ssh les commandes peuvent
être laissé en cours d'exécution sur les hôtes distants même après que le délai d'attente a tué local ssh procédés.

La sortie de plusieurs processus par nœud peut être intercalée lors de l'utilisation de qshell ou mqshell
modules rcmd.

Le nombre de nœuds qui dpa peut exécuter simultanément des tâches à distance sur est limité par le
nombre maximal de threads pouvant être créés simultanément, ainsi que la disponibilité de
ports réservés dans les modules rsh et qshell rcmd. Sur les systèmes qui implémentent Posix
threads, la limite est généralement définie par la constante PTHREADS_THREADS_MAX.

Utiliser pdsh en ligne à l'aide des services onworks.net



Derniers programmes en ligne Linux et Windows