Il s'agit de la commande taktuk qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant 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
TakTuk - un outil pour le déploiement d'exécution à distance à grande échelle
SYNOPSIS
taktuk [-behinsvzMP] [-c connecteur] [-d limite] [-f nom de fichier] [-g durée] [-l connexion] [-m
nom d'hôte [-[ arguments ... -]]] [-o flux=modèle] [-t temps libre] [-u limite] [-w Taille] [-B
paramètre=expression] [-C séparateurs] [-E personnage] [-F nom de fichier] [-G nom d'hôte [-[ args
-]]] [-L nom d'hôte] [-I interprète] [-O séparateurs] [-R stream=nom de fichier] [-S des dossiers]
[-T commande] [-V chemin ] [-W schéma] [commandes ... ]
DESCRIPTION
TakTuk est un outil pour diffuser l'exécution à distance d'une ou plusieurs commandes à un ensemble
d'une ou plusieurs machines distantes. TakTuk combine la parallélisation locale (en utilisant concurrent
processus de déploiement) et la répartition du travail (à l'aide d'un algorithme de vol de travail adaptatif) pour
atteindre les deux évolutivité et l'efficacité.
TakTuk est particulièrement adapté aux tâches interactives impliquant plusieurs machines distantes et
exécutions parallèles à distance. C'est le cas de l'administration des clusters et du parallèle
débogage du programme.
TakTuk fournit également une couche de communication de base aux programmes qu'il exécute. Cette
couche de communication utilise l'infrastructure de communication mise en place par TakTuk pendant son
déploiement. Il est disponible à la fois pour les langages Perl et C et est décrit dans
TakTukde Géographie (3) et avec la taktukcomm(3) respectivement.
OPTIONS
Attention, en TakTuk les options sont analysées dans l'ordre indiqué sur la ligne de commande. Ça signifie
qui TakTuk n'est pas conforme à POSIX concernant la commande d'options. Ceci est important car certains
les options changent le comportement des suivantes (et seulement celles-ci - par exemple -l s'applique
à suivre -m option). Les paramètres par défaut de TakTuk peut être obtenu en utilisant le
Option "--print-defaults". Les options suivantes sont données par catégorie par ordre alphabétique
ordre.
DÉPLOIEMENT OPTIONS
-b
--begin-groupe
commence un nouveau groupe de déploiement. Un groupe de déploiement sert à la fois de contexte pour la plupart des
options (les options définies au sein d'un groupe n'ont aucun effet en dehors du groupe) et en tant que
isolation pour la planification des tâches de déploiement (les tâches de déploiement au sein d'un groupe ne peuvent pas être
volés par des nœuds déployés dans d'autres groupes).
-c connecteur
--connecteur connecteur
définit la commande de connecteur utilisée pour contacter les machines distantes suivantes.
-d limite
--dynamique limite
active ou désactive le mode dynamique (vol de travail) pour le déploiement de tous les éléments suivants
spécifications des machines distantes. Si "limit" est positif ou nul, TakTuk utilise l'
mode dynamique avec sa valeur comme arité maximale (0 = pas d'arité maximale). Un négatif
la valeur de "limit" désactive le mode dynamique. Avertissement, actuellement c'est une mauvaise idée d'utiliser
plusieurs options -d avec des valeurs positives sur la même ligne de commande.
-e
--end-groupe
met fin à un groupe de déploiement.
-f nom de fichier
--machines-fichier nom de fichier
"filename" est le nom d'un fichier qui contient des noms de machines distantes (équivalent à
plusieurs options "-m"). Dans chaque ligne de ce fichier, le premier mot est considéré comme un
nom de la machine et le reste sous forme de commentaires.
-l vous connecter
--connexion vous connecter
définit le nom de connexion pour les hôtes suivants. Cela suppose que la commande de connecteur
accepte l'option "-l" (c'est le cas pour ssh, la valeur par défaut).
-m nom d'hôte
--machine nom d'hôte
"hostname" est le nom d'une machine distante sur laquelle TakTuk doit être déployé.
"hostname" peut contenir une liste de valeurs spécifiées entre parenthèses et des listes d'exclusion
(voir « SPÉCIFICATION DES NOMS D'HTE »). Dans ce cas, le depolyment sera effectué sur tous
les hôtes correspondants. Cette option peut être suivie d'un nombre quelconque d'arguments inclus
entre "-[" et "-]" qui seront transmis comme arguments de la télécommande TakTuk qui
s'exécutera sur tous les hôtes cibles.
-s
--auto-propage
propage le TakTuk exécutable via les connecteurs suivants et élimine ainsi
le besoin d'un TakTuk installation sur des machines distantes.
-z
--ne pas se propager
annule un précédent -s option.
-F nom de fichier
--args-fichier nom de fichier
"filename" est le nom d'un fichier qui contient des options supplémentaires pour TakTukL’
l'analyse du fichier est effectuée lorsque vous rencontrez cette option.
-G nom d'hôte
--passerelle nom d'hôte
même que -m nom d'hôte, sauf que le ou les nœuds déployés sont considérés comme en avant uniquement
nœuds : ils ne seront pas numérotés et ne seront pas ciblés par une diffusion ultérieure
commandes. Par exception, l'exécution de TakTuk commandes sur ces nœuds est toujours
possible en leur donnant comme arguments de déploiement du -G option.
-I commander
--interprète-perl commander
"commande" est le nom de la commande à utiliser comme interpréteur Perl lorsque auto
propagation ou lors de l'utilisation de la commande "taktuk_perl".
-L nom d'hôte
--localhost nom d'hôte
change le nom de localhost tel qu'il est vu par TakTuk.
-S fichiers
--envoyer les fichiers fichiers
donne à TakTuk une liste de fichiers à envoyer lors d'une connexion à distance réussie. Utilisation
avec prudence car cela ralentira le déploiement (les fichiers sont transférés avant la fin
du déploiement). L'utilisation prévue n'est PAS de transférer des fichiers de données d'application (plutôt
utilisez la commande "put" pour transférer de tels fichiers). Cette option doit être utilisée pour transférer
les fichiers nécessaires pour effectuer d'autres connexions à partir du nœud distant. "des dossiers"
est une liste de paires séparées par des virgules "local_file:remote_file". Concernant le transfert
elle-même, elle se comporte comme la commande "put".
-T commander
--taktuk-commande commander
"commande" est le nom du TakTuk commande (la valeur par défaut est $0, le nom utilisé pour lancer
TakTuk). C'est la commande utilisée une fois connecté pour lancer la télécommande TakTuk moteur.
Notez que l'effet de ce commutateur est nul lors de l'utilisation de l'option "-s".
-V liste
--chemin-valeur liste
définissez la variable d'environnement PATH sur la liste donnée (comme d'habitude, deux points séparés
liste des répertoires) sur les hôtes distants auxquels TakTuk se connecte. Ceci est effectué très
tôt et est pris en compte même pour les invocations "taktuk" ou "perl" à la connexion
le temps.
COMMAND LINE PARSAGE OPTIONS
-C jeu de séparateurs
--commande-séparateur jeu de séparateurs
remplace le jeu de caractères par défaut qui sépare les TakTuk les commandes.
-E caractère
--caractère d'échappement caractère
définit un caractère d'échappement qui peut être utilisé pour protéger tout caractère suivant de
TakTuk interprétation. Cette protection s'applique presque à l'ensemble TakTuk commander
ligne.
-O jeu de séparateurs
--option-séparateur jeu de séparateurs
remplace le jeu de caractères par défaut qui sépare les mots successifs lors de la lecture
options et commandes d'un fichier (à l'aide du commutateur "-F").
I / O OPTIONS
-o flux=modèle
--modèle-de-sortie flux=modèle
définit une spécification de modèle de sortie pour l'un des flux de sortie conçus par le
Nom. Lorsque vous donnez uniquement un nom de flux (sans modèle), cela désactive le flux.
Les flux disponibles incluent :
"connecteur" (erreurs de la commande connecteur)
ce flux contient dans $line des informations sorties vers stderr par un connecteur
commander. Les champs pertinents incluent $host, $peer et d'autres répertoriés ci-dessous.
"error", "output" (erreur et sortie des commandes exécutées à distance)
ces flux contiennent dans $line des informations sorties par la commande exécutée vers stdout
ou stderr (respectivement). Les champs pertinents incluent $host, $command, $pid et autres
énumérés ci-dessous.
"info" (informations générales telles que résumé de l'aide ou version)
ce flux contient dans $line des informations générées par taktuk en réponse à
commandes telles que "help" ou "version".
"message" (messages des processus en cours)
chaque sortie de ce flux contient dans $line un message envoyé avec la cible "output"
(à travers TakTuk installations de communication hors bande) par certains processus démarrés
en utilisant TakTuk commandes. Les champs pertinents pour ce flux incluent $from et $to et
d'autres énumérés ci-dessous.
"état" (état interne de l'instance TakTuk)
ce flux contient dans $line le code de changement d'état correspondant à certains TakTuk événements.
Les codes sont les suivants :
0 - TakTuk est prêt
1 - TakTuk est numéroté
2 - TakTuk terminé
3 - la connexion a échoué
4 - connexion initialisée
5 - connexion perdue
6 - commande lancée
7 - la commande a échoué
8 - commande terminée
9 - la mise à jour de la numérotation a échoué
10 - entrée de tuyau commencée
11 - l'entrée du tuyau a échoué
12 - entrée de tuyau terminée
13 - la réception des fichiers a commencé
14 - la réception du fichier a échoué
15 - réception de fichier terminée
16 - l'envoi du fichier a échoué
17 - Cible invalide
18 - Pas de cible
19 - Message délivré
20 - Destination invalide
21 - Destination plus disponible
22 - Attente terminée
23 - Attendre la réduction terminée
La fonction event_msg($) peut être utilisée dans le modèle pour traduire ce code en
une chaîne qui décrit l'événement. Les champs pertinents incluent $host, $position,
$rank, $count et autres énumérés ci-dessous.
"status" (état de sortie des commandes)
ce flux contient dans $line le code retour des commandes exécutées. Pertinent
les champs incluent $host, $pid et d'autres répertoriés ci-dessous.
"taktuk" (messages internes, avertissements et erreurs)
ce flux contient dans $line des messages d'erreur, d'avertissement et de débogage générés par TakTuk
lui-même. Les champs pertinents incluent $line_number, $package et d'autres répertoriés ci-dessous.
un modèle est une expression Perl qui devrait finalement être évaluée à la chaîne
affiché. Dans une spécification, certaines variables peuvent être utilisées en fonction de la
flux concerné :
$command (pas pour "taktuk" ni "info")
l'exécution de la ligne de commande qui a généré la sortie.
$ count
le nombre total de TakTuk les instances.
$éol
une chaîne vide ou une nouvelle ligne en fonction du caractère terminé par la sortie de la commande.
$filename ("taktuk" uniquement)
le dossier dans lequel un TakTuk la fonction de diagnostic a été appelée.
$from ("message" uniquement)
le numéro logique du TakTuk instance à partir de laquelle le message a été envoyé.
$hôte
le nom de l'hôte exécutant le courant TakTuk instance
$init_date ("connecteur" et "état" uniquement)
le temps en secondes depuis le 1er janvier 1970 auquel la télécommande TakTuk instance
terminé son initialisation (y compris le temps de connexion ssh et l'auto-propagation
si seulement).
$level ("taktuk" uniquement)
le niveau de la fonction de diagnostic appelée.
$level_name ("taktuk" uniquement)
le nom associé au niveau de la fonction de diagnostic appelée.
$ligne
les données brutes sorties par une commande ou passées à une fonction de diagnostic, toute
nouvelle ligne de fin supprimée (voir $eol).
$line_number ("taktuk" uniquement)
le numéro de ligne auquel un TakTuk la fonction de diagnostic a été appelée.
$package ("taktuk" uniquement)
l'emballage dans lequel un TakTuk la fonction de diagnostic a été appelée.
$peer ("connecteur" et "état" uniquement)
la machine distante pour laquelle une commande de connecteur a généré des informations.
$peer_position ("connecteur" et "état" uniquement)
position sur la ligne de commande de l'hôte distant. Cette position s'exprime comme un
chemin dans la hiérarchie des hôtes exprimé sur la ligne de commande (points séparés
numéro de position à chaque niveau d'imbrication).
$peers_given ("état" uniquement)
une liste séparée par des espaces de nœuds distants qui a été donnée à l'homologue distant pour
déploiement (quel que soit leur état de déploiement). Chaque nœud distant est spécifié comme un
deux points séparés par son nom d'hôte et sa position sur la ligne de commande.
Cette variable n'a une valeur significative que lorsque l'événement est transmis au flux
"state" est une perte de connexion (événement numéro 5).
$pid (pas pour "taktuk" ni "info")
le pid de la ligne de commande exécutée (qui a produit la sortie).
position $
position sur la ligne de commande de l'hôte actuel. Cette position s'exprime comme un
chemin dans la hiérarchie des hôtes exprimé sur la ligne de commande (points séparés
numéro de position à chaque niveau d'imbrication).
$rang
le nombre logique de TakTuk instance dans laquelle la sortie est collectée.
$reply_date ("connecteur" et "état" uniquement)
le temps en secondes depuis le 1er janvier 1970 auquel la commande du connecteur a répondu à
le local TakTuk instance (notez que cela n'inclut pas l'initialisation
échange se produisant avant la télécommande TakTuk est considérée comme fonctionnelle).
$start_date ("sortie", "erreur", "connecteur" et "état")
le temps en secondes depuis le 1er janvier 1970 auquel la commande a commencé (pris juste
après l'appel à fourchette()).
$init_date ("connecteur" et "état" uniquement)
le temps en secondes depuis le 1er janvier 1970 auquel la télécommande TakTuk terminé sa
initiation.
$stop_date ("connecteur" et "status" uniquement)
le temps en secondes depuis le 1er janvier 1970 auquel la commande s'est terminée (après le
fermeture de sa sortie standard).
$to ("message" uniquement)
le numéro logique (ou l'ensemble de ces numéros) du TakTuk cas auquel le
Le message a été envoyé.
$ type
le nom du flux de sortie (connecteur, erreur, sortie, ...).
$user_scalaire
un scalaire, global au package, initialement initialisé à undef, que l'utilisateur est
libre d'utiliser pour n'importe quel but.
en fin de journée, le cahier des charges est évalué pour chaque ligne de la
stream et le résultat imprimé sur le nœud racine. Notez que la nouvelle ligne doit être ajoutée
explicitement comme "\n" dans le modèle si nécessaire.
ATTENTION : faites attention à votre spécification, si la syntaxe Perl n'est pas correcte beaucoup de
de terribles messages d'erreur de compilation seront affichés et TakTuk l'exécution échouera.
-R stream=nom de fichier
--output-redirection stream=nom de fichier
rediriger une sortie de flux donnée vers un fichier donné (situé au nœud racine). Avis
que le nom de fichier donné est conforme à la syntaxe ouverte Perl : par exemple, on peut rediriger
à un descripteur de fichier X en utilisant le nom ">&=X". Voir l'option "-o" pour plus de détails sur
flux de sortie.
PERFORMANCE TUNING OPTIONS
-B paramètre=expression
--worksteal-comportement paramètre=expression
Attention : cette fonctionnalité doit être considérée comme expérimentale et pourrait être supprimée de
futures versions. Ajuste finement le comportement de l'algorithme de vol de travail en définissant
certains de ses paramètres aux expressions Perl. Ces expressions Perl peuvent utiliser les variables
$last_given et $available qui sont respectivement égaux au nombre de tâches données
à un voleur la dernière fois qu'il a volé et au nombre total de tâches de déploiement restantes.
Les paramètres disponibles sont :
initiale
le nombre de tâches confiées à une télécommande TakTuk exemple la première fois qu'il envoie un
voler la demande à l'hôte local.
revenu
le nombre de tâches confiées à une télécommande TakTuk instance chaque fois qu'il effectue une
voler à l'hôte local après la première fois.
limite
une borne supérieure à la valeur résultant de l'évaluation de la "croissance".
-g durée
--temps-granularité durée
définit à « duration » (en secondes) l'intervalle maximal entre les vérifications des délais d'attente (généralement
les contrôles sont effectués plus souvent : à chaque message reçu un contrôle des temporisations est effectué).
-n
--no-numérotation
désactive TakTuk numérotation logique et les variables "TAKTUK_COUNT" et "TAKTUK_RANK"
ne sont pas définis dans les commandes exécutées. Cela a l'avantage de supprimer le
synchronisation se produisant à la fin du déploiement et rendant le déploiement plus
efficace.
ATTENTION : utilisez cette option uniquement avant toute spécification de nœud distant ("-m" ou "-f")
sinon, vous pourriez rencontrer de sérieux problèmes de synchronisation dans TakTuk. En utilisant TakTuk indiquer-
la communication point par point avec cette option échouera et produira TakTuk avertissements.
-t temps mort
--temps libre temps mort
définit le timeout (en secondes) pour les connecteurs suivants (0 = pas de timeout). Remarquerez que
cette option annule le timeout de la commande du connecteur ("ssh" par exemple). Lorsque
le délai expire, la commande du connecteur est simplement tuée.
-u limite
--cache-limite limite
limite un nombre d'octets de mémoire TakTuk peut être utilisé comme tampon d'écriture interne. Pour la plupart
utilisateurs, fixer une telle limite est une mauvaise idée : dans de rares cas, cela peut entraîner
une impasse dans TakTuk (causée par le blocage parallèle des écritures entre une application et
TakTuk lui-même). La définition de cette option sur une valeur négative désactive la limite (par défaut).
Néanmoins, si vous utilisez TakTuk pour transférer des fichiers volumineux, en raison de la bande passante des E/S
disparités dans les différentes parties d'un système, TakTuk l'utilisation de la mémoire peut devenir trop importante et
les performances peuvent être gravement dégradées lorsque le système commence à permuter. Dans un tel
situations, limiter la taille du cache interne gardera TakTuk en mémoire principale
et préserver les performances.
-w Taille
--la fenêtre Taille
définit la fenêtre initiale à la taille donnée (= largeur du pipeline).
-W programme
--fenêtre-adaptation programme
définit le schéma d'adaptation des fenêtres sur un nombre (la valeur par défaut est 0, 0 : aucune adaptation, 1 :
mise en œuvre en cours).
DIVERS OPTIONS
-M
--ma
rend l'option suivante locale (non héritée). Cela signifie que l'option suivante est définie
uniquement pour l'hôte local et non propagé aux enfants TakTuk instances. N'a pas
effet si l'option suivante est déjà locale.
-h
--Aidez-moi
imprime une brève description de TakTuk sur l'écran.
-i
--interactif
les forces TakTuk mode interactif même après certaines commandes batch données sur la commande
ligne.
-v
--version
imprime le TakTuk version.
-P
--print-par défaut
imprime les paramètres par défaut utilisés par TakTuk (variables d'environnement prises en
Compte).
INTERNE OPTIONS
Ces options ne sont pas utiles pour la plupart des utilisateurs. Ils sont utilisés soit en interne par TakTuk
lui-même ou à des fins de développement.
-p nom de paquet
--print-paquet nom de paquet
imprime le contenu du package "packagename" extrait du code taktuk dans
exécution.
-r
--pas-root
actuel TakTuk l'instance n'est pas le nœud racine. Il s'agit d'un commutateur interne utilisé par
engendré TakTuk instances. Ce n'est généralement pas utile pour la plupart des utilisateurs.
-D portée=niveau
--déboguer portée=niveau
définit le niveau de débogage (1..4) pour "portée". La « portée » pourrait être un TakTuk nom du paquet ou
"default" et plus le niveau est bas, plus la sortie est détaillée.
COMMANDES
Après l'analyse des options, TakTuk attend des commandes soit sur le reste du
ligne de commande (mode batch) ou sur l'entrée standard (mode interactif). Ces commandes sont
actions à accomplir par TakTuk à l'aide de l'infrastructure réseau logique mise en place pendant
le déploiement. Par défaut, les commandes peuvent être séparées par ; ou des nouvelles lignes. Pour tous les
commandes, tout préfixe non ambigu peut être utilisé à la place de leur nom complet. En interactif
Mode, TakTuk prend en charge "readline" (historique, édition de la ligne de commande) s'il est installé sur
votre système.
Quand TakTuk les commandes acceptent des arguments, ils doivent être placés dans des délimiteurs correspondants
(indiqué par * ci-dessous). En d'autres termes, * peut être remplacé soit par n'importe quel élément non alphanumérique
caractère ou par une paire d'accolades, de crochets ou de parenthèses correspondantes. Ces délimiteurs doivent
être séparés de leur contenu (à l'aide du séparateur d'options). Si l'argument contient un
délimiteur de fermeture précédé d'un séparateur, alors c'est probablement une bonne idée de l'échapper
(voir -E option) ou pour protéger l'intégralité de la chaîne d'arguments si elle est indiquée sur la ligne de commande.
Taktuk comprend les commandes suivantes :
[ set spécification ] commander
Envoie l'exécution de la commande à tous les pairs appartenant à l'ensemble donné. Pour plus
détails sur les spécifications de l'ensemble, voir la section « SPÉCIFICATIONS DES ENSEMBLES ET DES CIBLES ».
diffusion commander
Diffuse l'exécution de la commande sur tous les pairs distants (hors nœud
lancement de la diffusion).
abattu commander
Répartit l'exécution de la commande sur tous les enfants du nœud initiant le
abattu (ne s'incluant pas).
exec paramètres * ligne de commande *
Exécute la "ligne de commande" sur la machine locale. Les entrées/sorties de l'exécution sont
multiplexé et transmis au TakTuk racine. Cette commande accepte des paramètres facultatifs
qui permettent de rattacher les rappels déclenchés par des timeouts à l'exécution du
commander. Voir la section "PARAMETRES D'EXEC" pour plus de détails.
obtenez * source * * destination *
Copie (une) source(s) distante(s) (présente(s) sur le(s) nœud(s) distant(s)) vers une destination sur le
nœud exécutant cette commande. Le type de source et de destination est assez similaire à
ceux acceptés par la commande "cp -r" (c'est-à-dire fichier ou répertoires). Cette commande aussi
effectue une sorte de magie avec ses paramètres : les variables d'environnement shell présentes
dans les noms de source ou de destination sont remplacés par leur valeur respective sur le
nœuds distants et locaux. De plus, les variables $host, $rank et $position du
nœud distant (qui sont les mêmes que dans -o option) peut également être utilisé dans les deux noms.
vous aider
Imprime un très concis TakTuk aider.
contribution [ l'objectif l'objectif ] * Les données *
contribution [ l'objectif l'objectif ] données * Les données *
Envoie les données données en entrée aux commandes en cours d'exécution sur la machine locale comme
spécifié par la cible donnée. Si aucune cible n'est donnée, les données sont envoyées à tous
commandes. Pour plus de détails sur les cibles, voir "SET ET SPECIFICATIONS DES CIBLES"
contribution [ l'objectif l'objectif ] close
Ferme le descripteur d'entrées d'exécution de commandes sur la machine locale comme spécifié
par la cible donnée. Si aucune cible n'est donnée, les entrées de toutes les commandes sont fermées.
contribution [ l'objectif l'objectif ] filet * nom de fichier *
Envoie le contenu d'un fichier (qui doit être local au nœud exécutant le fichier d'entrée)
en entrée des commandes en cours d'exécution sur la machine locale comme spécifié par le
cible. Si aucune cible n'est donnée, les données sont envoyées à toutes les commandes.
ATTENTION : cette commande n'est pas atomique. Si vous parvenez d'une manière ou d'une autre à lancer un fichier d'entrée
commande à partir de deux TakTuk cas, les données seront probablement entrelacées. Dans
dans ce cas, vous devez synchroniser les deux instances. Ceci n'est pas obligatoire lorsque
diffusion de fichiers uniquement à partir du nœud racine.
contribution [ l'objectif l'objectif ] en ligne * Les données *
Envoie les données données avec une nouvelle ligne supplémentaire en entrée des commandes en cours d'exécution sur
la machine locale comme spécifié par la cible donnée. Si aucune cible n'est donnée, les données sont
envoyé à toutes les commandes.
contribution [ l'objectif l'objectif ] pipe * nom de fichier *
Traitez le paramètre comme un fichier (qui doit être local au nœud exécutant l'entrée
pipe) dont le comportement est le même qu'un pipe : les données peuvent arriver en continu. TakTuk ajouter
comme l'un de ses canaux d'entrée et envoyer des données en entrée aux commandes lorsqu'elles sont disponibles. Si
donné, la cible spécifie à quelle commande les données doivent être envoyées, sinon il est
envoyé à toutes les commandes.
tuer [ l'objectif l'objectif ]
Envoie le signal donné aux groupes de processus de commandes locales. Si aucun signal n'est donné,
envoie un signal TERM (signal 15). Si elle est donnée, la cible spécifie à quelle commande la
signal doit être envoyé, sinon il est envoyé à toutes les commandes. Pour plus de détails sur
cibles, voir "SET ET SPECIFICATIONS DES CIBLES"
message [ l'objectif l'objectif ] * Les données *
message [ l'objectif l'objectif ] données * Les données *
Envoie les données fournies sous forme de message aux commandes en cours d'exécution sur la machine locale comme
spécifié par la cible donnée (voir TakTukde Géographie (3) et avec la taktukcomm(3) pour plus de détails sur
messages). Si aucune cible n'est donnée, les données sont envoyées à la première commande exécutant une
recevoir et pas déjà ciblé par un autre message. Pour plus de détails sur les cibles,
voir "SET ET SPECIFICATIONS DES CIBLES"
message [ l'objectif l'objectif ] filet * nom de fichier *
Envoie le contenu d'un fichier (qui doit être local au nœud exécutant le message
fichier) en tant que message aux commandes en cours d'exécution sur la machine locale comme spécifié par le
cible donnée (voir TakTukde Géographie (3) et avec la taktukcomm(3) pour plus de détails sur les messages). Sinon
cible est donnée, les données sont envoyées à la première commande effectuant une réception et non
déjà visé par un autre message.
ATTENTION : cette commande n'est pas atomique. Si vous parvenez d'une manière ou d'une autre à lancer un fichier de message
commande à partir de deux TakTuk cas, les données seront probablement entrelacées. Dans
dans ce cas, vous devez synchroniser les deux instances. Ceci n'est pas obligatoire lorsque
diffusion de fichiers uniquement à partir du nœud racine.
message [ l'objectif l'objectif ] en ligne * Les données *
Envoie les données fournies avec une nouvelle ligne supplémentaire comme message aux commandes en cours d'exécution
sur la machine locale comme spécifié par la cible donnée (voir TakTukde Géographie (3) et avec la taktukcomm(3)
pour plus de détails sur les messages). Si aucune cible n'est donnée, les données sont envoyées au premier
commande effectuant une réception et non déjà ciblée par un autre message.
message [ l'objectif l'objectif ] pipe * Les données *
Traitez le paramètre comme un nom de fichier (qui doit être local au nœud exécutant l'entrée
pipe) dont le comportement est le même qu'un pipe : les données peuvent arriver en continu. TakTuk ajouter
comme l'un de ses canaux d'entrée et envoyer des données sous forme de message aux commandes lorsqu'elles sont disponibles
(voir TakTukde Géographie (3) et avec la taktukcomm(3) pour plus de détails sur les messages). S'il est donné, le
target spécifie à quelle commande les données doivent être envoyées, sinon elles sont envoyées au
première commande effectuant une réception et non déjà ciblée par un autre message.
réseau
réseau Etat
Imprime le courant TakTuk arbre de déploiement. Les nombres entre parenthèses correspondent au rang des pairs
dans la logique TakTuk la numérotation et l'état prêt de l'homologue. Si le déploiement n'est pas
terminée, l'arbre imprimé affichera des feuilles « connecting ... ».
réseau annuler
Annule toutes les connexions en cours. Par conséquent, cela provoque le démarrage immédiat de la
numérotation possible des TakTuk instances et l'exécution de TakTuk les commandes.
réseau renuméroter
Recalcule complètement la numérotation logique de TakTuk instances. C'est surtout
utile lors de l'ajout de nouveaux nœuds au réseau déployé après la numérotation initiale.
réseau Mise à jour
Met à jour la numérotation logique des TakTuk instances sans changer déjà existantes
Nombres. Ne réussit pas toujours comme TakTuk utilise un schéma de profondeur d'abord pour la numérotation.
Envoie un événement 9 dans le flux « état » pour chaque nœud de l'arbre qui ne peut pas être
mis à jour tout en gardant TakTuk schéma de numérotation. Ceci est particulièrement utile lors de l'ajout
de nouveaux nœuds au réseau déployé après la numérotation initiale.
option nom * valeur *
option * ligne *
Soit modifie une seule option dont le nom est donné (première forme) soit analyse un
ligne d'options supplémentaires (seconde forme) sur le(s) nœud(s) exécutant cette commande. Voir
TakTuk options pour plus de détails, le nom peut être court ou long dans la première forme.
ATTENTION : nouveaux nœuds ajoutés à TakTuk réseau utilisant cette commande ne sont pas numérotés.
Une autre utilisation de la renumérotation ou de la mise à jour du réseau est nécessaire pour obtenir TakTuk logique
numérotage.
mettre * source * * destination *
Copie une source locale (présente sur le nœud exécutant cette commande) vers une destination sur
tous les nœuds distants donnés en préfixe de la commande. Le type de source et
destination est assez similaire à celles acceptées par la commande "cp -r" (c'est-à-dire fichier ou
répertoires). Cette commande effectue également une sorte de magie avec ses paramètres : shell
les variables d'environnement présentes dans les noms de source ou de destination sont remplacées par leur
valeur respective sur les nœuds locaux et distants. De plus, les variables $host,
$rang et $position du nœud local (qui sont les mêmes que dans -o option) peut également être
utilisé dans les deux noms.
synchroniser commander
Force la commande donnée à attendre la fin du déploiement, la numérotation des nœuds et
commandes précédentes avant l'exécution. Ceci est utile pour les commandes globales comme
"broadcast" qui n'attend pas la numérotation des nœuds. Au contraire, les commandes multicast
(ceux qui utilisent une spécification définie comme préfixe) attendent la numérotation des nœuds et le
l'achèvement des commandes précédentes. En cas de doute, utilisez toujours "synchroniser" avant un
« diffusion », « vers le bas » ou « attendre réduire ».
taktuk_perl * arguments *
Forks un interpréteur perl sur le nœud local comme si la commande "exec perl
arguments" a été utilisé. La différence est que cet interpréteur est auparavant
récupéré avec le package "taktuk" qui contient des routines de communication point à point
("TakTuk::send" et "TakTuk::recv", voir taktukcomm(3)). ATTENTION : en raison de la
limitations de l'analyseur qui analyse les arguments de cette commande, vous devez
donner des arguments (même s'ils sont vides) et utiliser '--' si vous donnez une option au perl
interprète (et même si vous ne lui donnez que des options).
version
impressions TakTuk version.
quitter
Quittez le TakTuk moteur et arrêter le réseau de communication logique établi
lors du déploiement.
attendez l'objectif l'objectif
Attend (suspend l'exécution des commandes suivantes) dans le local TakTuk exemple pour
l'achèvement d'un processus local en fonction de la cible donnée. Cette cible pourrait
être n'importe quelle spécification cible à l'exception de "output". Pour plus de détails sur les cibles, voir "SET
ET SPÉCIFICATION DES CIBLES".
attendez réduire l'objectif l'objectif
Ne peut être utilisé que dans le nœud racine. Attend (suspend l'exécution de
commandes) pour l'achèvement de certains processus dans tous les TakTuk cas
en fonction de la cible donnée. Cette cible peut être n'importe quelle spécification de cible, sauf
"sortir". Notez que, contrairement aux simples commandes « wait », cette commande est
synchronisé de la même manière que "broadcast". Ainsi, il doit être explicitement synchronisé
si mélangé avec des commandes non diffusées (sinon elle sera exécutée avant elles).
EXEC PARAMETRES
Votre TakTuk la commande "exec" accepte des paramètres optionnels. Ces paramètres sont utilisés pour
spécifier un identifiant cible pour la commande, ou attacher des actions déclenchées par des délais d'attente à
exécution des commandes. Une commande "exec" accepte un nombre quelconque de paramètres. Ces paramètres
sont interprétés de gauche à droite à l'aide de la syntaxe suivante :
l'objectif Plus-value
Attachez la valeur (numérique) comme identifiant cible de la commande exécutée. Cet identifiant cible
sera utilisé par toute commande ultérieure utilisant des cibles (telles que "input",
"message", "tuer" ou "attendre").
Attention : cette valeur écrase tout identifiant cible qui aurait pu être automatiquement
attribué par TakTuk. Par conséquent, il n'est pas recommandé de mélanger l'utilisation de
identifiants cibles attribués avec l'utilisation d'identifiants cibles automatiquement attribués.
temps mort Plus-value
Crée une nouvelle spécification de délai d'attente. A la fin de la durée exprimée par le donné
valeur, il déclenchera ses rappels attachés. S'il n'a pas de rappel attaché, il
envoyer un signal TERM à la commande. Si l'exécution de la commande se termine avant la fin
de la durée du timeout, le timeout est annulé.
tuer Plus-value
Attachez un rappel au dernier délai d'attente défini. Ce rappel envoie un signal qui
nombre est la valeur donnée, à la commande timeouted.
action commander
Attachez un rappel au dernier délai d'attente défini. Ce rappel exécute le donné TakTuk
commander. S'il exécute une autre commande, il peut utiliser la variable d'environnement
"TAKTUK_PID" qui contient le pid de la commande dépassée. Le donné TakTuk commander
peut être tout valide TakTuk commande (sans séparateur de commandes).
Notez que chaque timeout peut avoir n'importe quel nombre de rappels attachés. ils seront traités
dans l'ordre où ils sont donnés en paramètres.
ENVIRONNEMENT
Variables qui Change TakTuk défaut humain
Aperçu TakTuk les paramètres par défaut peuvent être modifiés sur certains hôtes utilisant l'environnement
variables. Ces paramètres sont propagés tout comme les autres options. Ils sont remplacés par
paramètres propagés et options de ligne de commande.
Pour modifier certains paramètres par défaut, utilisez la variable TAKTUK_NAME où Nom est le nom de
l'option longue correspondante en majuscules et avec des tirets remplacés par des traits de soulignement. Pour
option prenant une valeur complexe (telle que "--debug") ajoutez simplement un trait de soulignement et le champ
vous voulez changer en majuscule à la fin du nom. En utilisant "taktuk
--print-defaults" vous donnera des exemples de noms utilisés pour modifier les paramètres par défaut.
Notez que définir dans l'environnement un paramètre par défaut non utilisé par TakTuk n'a pas
effet.
Vous pouvez également modifier certains TakTuk paramètres par défaut localement sans propager le
changement dans l'arborescence de déploiement. Pour ce faire, utilisez la variable TAKTUK_MY_NAME où nom
est défini comme ci-dessus. Comme auparavant, ces paramètres locaux sont remplacés par propagé
paramètres et options de ligne de commande.
Variables set by TakTuk in à distance réalisé commandes
Taktuk définit les variables d'environnement suivantes pour toutes les commandes qu'il exécute :
TAKTUK_CONTROL_READ, TAKTUK_CONTROL_WRITE
Descripteurs de fichiers, utilisés en interne par TakTuk.
TAKTUK_COUNT
Le nombre total de déploiements réussis TakTuk cas
TAKTUK_HOSTNAME
Nom d'hôte du nœud local tel qu'il est donné à TakTuk (sur la ligne de commande)
TAKTUK_PIDS
Liste des pid (séparés par des espaces) des commandes exécutées par le local TakTuk
exemple.
TAKTUK_TARGET
Numéro cible du processus en cours d'exécution (voir « SET AND TARGETS
SPÉCIFICATION" pour plus de détails).
TAKTUK_POSITION
Position de l'hôte sur la ligne de commande.
TAKTUK_RANK
Le rang logique de l'instance locale.
TAKTUK_PÈRE
Le rang logique de l'instance de taktuk qui a engendré celle-ci.
TAKTUK_CHILD_MIN
Le rang logique du plus petit descendant du taktuk actuel
instance (-1 si l'instance TakTuk locale n'a pas d'enfant).
TAKTUK_CHILD_MAX
Le rang logique du descendant numéroté le plus élevé du taktuk actuel
instance (-1 si l'instance TakTuk locale n'a pas d'enfant).
NOM D'HTE CARACTÉRISTIQUES
Les noms d'hôtes donnés à TakTuk peut être un simple nom de machine ou des listes d'hôtes complexes
Caractéristiques. Dans sa forme générale, un nom d'hôte est composé d'un ensemble d'hôtes et d'un
jeu d'exclusion séparé par une barre oblique. Chacun de ces ensembles est une liste d'hôtes séparés par des virgules
modèles. Chacun de ces gabarits est constitué d'une partie constante (caractères hors parenthèses)
et des pièces de gamme en option (caractères entre parenthèses). Chaque partie de plage est une virgule
liste séparée d'intervalles ou de valeurs uniques. Chaque intervalle est composé de deux valeurs simples
séparés par un tiret. Ceci est vrai pour tous les noms d'hôtes donnés à TakTuk (tous deux avec -m or -f
option).
En d'autres termes, les expressions suivantes sont des spécifications d'hôte valides :
node1
nœud[19]
nœud[1-3]
nœud[1-3],autrehôte/nœud2
node[1-3,5]part[a-b]/node[3-5]parta,node1partb
ils s'étendent respectivement à :
node1
node19
nœud1 nœud2 nœud3
nœud1 nœud3 autrehôte
nœud1parta nœud2parta nœud2partb nœud3partb nœud5partb
Notez que ces listes de valeurs ne sont pas des expressions régulières ("node[19]" est "node19" et
pas "nœud1, nœud2, ...., nœud9"). Les intervalles sont implémentés à l'aide de l'auto magique de perl
fonction d'incrémentation, vous pouvez donc utiliser des valeurs alphanumériques comme limites d'intervalle (voir perl
documentation, opérateur ++ pour les limitations de cet incrément automatique).
SET ET CIBLES CARACTÉRISTIQUES
Votre TakTuk la ligne de commande et la routine "TakTuk::send" acceptent une spécification définie comme
hôte(s) de destination. Une spécification définie est constituée de spécifications d'intervalle séparées par
barres obliques. Une spécification d'intervalle est soit constituée d'un seul nombre, soit de deux nombres
séparés par un tiret ou un chiffre suivi d'un signe plus (ce dernier cas correspond au
intervalle qui va du numéro au numéro le plus élevé TakTuk destination). Bien sûr
les deux nombres spécifiant un intervalle doivent être donnés dans l'ordre croissant.
Les pairs distants inclus dans une spécification définie sont tous les pairs dont le numéro logique
appartiennent à au moins un intervalle de l'ensemble. Voici quelques exemples de spécifications définies :
1
le pair numéroté 1
2-7
les pairs numérotés 2,3,4,5,6 et 7
2-4/1/10
les pairs numérotés 1,2,3,4 et 10
3+
les pairs de 3 au plus haut numéroté
5 + / 1
les pairs de 5 au numéro le plus élevé et le pair 1
Le numéro cible est un numéro attribué par TakTuk à tous les processus qu'il exécute
(démarré avec succès ou n'utilisant pas les commandes "exec" ou "taktuk_perl"). Par défaut, ce
nombre commence à partir de 0 et va au nombre total de processus qui ont été exécutés
depuis le lancement de TakTuk moins un. Processus cibles d'un "TakTuk::send" ou d'un TakTuk commander
peut être exprimé avec la même syntaxe que dans le cas des ensembles.
Les inspections régulières contribuent également à la sécurité des passagers. En identifiant et en traitant les risques potentiels pour la sécurité, tels que des freins usés, un éclairage défectueux ou le remplacement du revêtement de sol, les inspections permettent de réduire le risque d'accidents et de blessures et d'améliorer la sécurité générale du service. Les inspections régulières sont un moyen concret de mettre en valeur l'engagement des prestataires de services de transport en faveur du bien-être des passagers et des conducteurs. TakTuk comprend plusieurs cibles spéciales. La cible spéciale "toutes" les cibles
tous les processus : cela signifie que la commande est appliquée à tous les processus locaux en cours d'exécution
(le message ou les données d'entrée sont dupliqués et envoyés à tous), c'est la valeur par défaut pour
les commandes "input" et "kill". La cible spéciale "tout" cible le premier éligible
traiter. Dans le cas d'un message, c'est le premier processus qui émet un "TakTuk::recv"
et qui n'est pas déjà la cible d'un autre message, c'est la valeur par défaut pour le
commande "message". Enfin, la cible spéciale "output" cible le flux de sortie
« message » plutôt qu'un processus.
EXEMPLES
Les exemples suivants illustrent l'utilisation de base de TakTuk sur quelques machines et l'utilisation de
options de développeur. Remarquerez que TakTuk est conçu pour s'adapter à beaucoup plus de pairs que le
nombre impliqué dans ces exemples.
Basic usage
simple déploiement
la façon la plus simple d'utiliser TakTuk est de le faire s'auto-propager avec l'option "-s". Dans ce
cas, l'exécution à distance de base de "hostname" sur l'hôte "toto.nowhere.com" peut être
écrit :
taktuk -s -m toto.nowhere.com broadcast exec [ nom d'hôte ]
Dans cet exemple, "-s" demande TakTuk pour propager son propre code sur des hôtes distants. Ça peut être
supprimé en installant l'exécutable "taktuk" sur "toto.nowhere.com". Par ce qui suit
nous supposerons que TakTuk est installé sur tous les hôtes distants.
Le "-m toto.nowhere.com" décrit l'ensemble des hôtes distants à contacter par TakTuk
et "broadcast exec [ hostname ]" est une commande qui sera exécutée par le TakTuk
interprète.
Cet exemple peut être écrit de bien d'autres manières. En mode interactif, le même
l'exécution peut devenir :
taktuk -m toto.nowhere.com
ici TakTuk est bloqué en attente de commandes de stdin. Ainsi, il suffit de taper :
diffusion exec { nom d'hôte }
Ctrl-D
ici vous pouvez remarquer que les paramètres du "exec" TakTuk commande (comme toutes les commandes
paramètres) peuvent être entourés de n'importe quelle paire raisonnable de délimiteurs. On pourrait aussi écrire
la liste des hôtes impliqués dans la commande dans un fichier "machine" qui contient :
toto.nowhere.com
et la TakTuk la commande devient :
taktuk -f machine broadcast exec - nom d'hôte -
On pourrait aussi utiliser un autre fichier "options" qui contient :
-f machine
et l'utiliser comme ligne d'options donnée à TakTuk:
taktuk -F options broadcast exec \( nom d'hôte \)
Enfin, tout pourrait être stocké dans un dernier fichier « command_line » qui contient :
-f machine broadcast exec = nom d'hôte =
et la commande suivante obtient le même résultat :
taktuk -F ligne_commande
Toutes ces variantes ont le même effet : elles exécutent "hostname" sur
"toto.nowhere.com" et la sortie du programme est transmise à l'hôte local. Dans
ce cas:
toto.nowhere.com : nom d'hôte : somepid : sortie > toto.nowhere.com
paramètres bretelles
notez que les accolades des paramètres de commande doivent être séparées de leur contenu. Ainsi,
ils peuvent contenir d'autres accolades tant qu'aucune accolade de fermeture ne fait partie du
contenu:
taktuk -m localhost broadcast exec [ 'if [ $RANDOM -gt 10000 ];then echo plus;else echo plus bas;fi' ]
Dans cet exemple, les guillemets sont nécessaires pour empêcher le shell d'interpréter le "$"
et ";" caractères et pour éviter que l'accolade fermante pour "si" orteil soit considérée comme
fermeture de la commande "exec". Dans ce cas la variable sera interpolée uniquement sur
hôtes distants. Ce même exemple peut également être exprimé à l'aide de raccourcis et d'intercatifs
mode:
taktuk -m localhost -E%
puis tapez:
be [ if [ $RANDOM -gt 10000 %];then echo plus grand;else echo plus bas;fi ]
Ctrl-D
Notez la parenthèse fermante utilisée dans le test qui ne doit pas être interprétée comme le
crochet fermant pour les arguments "exec". Dans un tel cas, une solution plus simple consiste probablement à
utiliser un autre type d'accolades
taktuk -m hôte local
et alors:
be { if [ $RANDOM -gt 10000 ];then echo plus grand;else echo plus bas;fi }
Ctrl-D
Habituellement, si vous voulez être sûr, vous pouvez citer tous les paramètres des commandes. Néanmoins,
notez que les paramètres ne doivent pas être cités en mode interactif car les lignes d'entrée ne sont pas
interprété par le shell.
exec paramètres
commandes exécutées par TakTuk peut être dépassé en utilisant les paramètres "exec". Par exemple si
vous voulez exécuter une commande et lui envoyer un signal TERM après deux secondes, juste
Type:
taktuk -m localhost Broadcast Exec Timeout 2 [sommeil 10]
le rappel exécuté lorsqu'un timeout se produit peut également être autre chose qu'un TERM
signal. Cela peut être un autre signal (KILL par exemple) :
taktuk -m localhost diffusion exec timeout 2 kill 9 [sommeil 10]
ou tout autre valide TakTuk commander:
taktuk -m localhost diffusion exec timeout 2 action diffusion exec [écho bonjour] [sommeil 10]
voire plusieurs timeouts et plusieurs callbacks :
taktuk -m localhost pari 2 ae [ echo bonjour ] k 30 t 10 k 9 [ sleep 5 ]
dans ce dernier exemple, la commande "sleep 5" est exécutée par TakTuk. Après 2 secondes,
le premier timeout sera déclenché, il exécutera la commande "echo hello" et enverra
un signal USR1 à la première commande ("sleep 5"). Le deuxième délai d'attente est fixé à 10
secondes. Ainsi, cela ne se produira jamais car la commande "sleep 5" sera terminée avant
son expiration.
topologie
Habituellement, TakTuk se déploie en utilisant un arbre relativement plat car sa fenêtre par défaut
la taille est assez grande (10 connexions en cours simultanées). Utiliser une fenêtre plus petite
la taille se traduira par un arbre plus profond bien que cela dépende aussi de la charge locale de la
nœuds de déploiement. Vous pouvez utiliser le TakTuk commande "network state" pour imprimer l'arborescence
construit par TakTuk.
Notez que c'est généralement une mauvaise idée d'utiliser une fenêtre trop grande car
beaucoup de charge locale et une mauvaise répartition du travail (quelque chose comme 10 est souvent suffisant).
Vous pouvez également forcer TakTuk d'utiliser des topologies plus spécifiques. Par exemple, pour exécuter
"echo $$" en utilisant un arbre plat comme topologie de déploiement, désactivez simplement le vol de travail dans
TakTuk:
taktuk -d -1 -m host1 -m host2 -m host3 broadcast exec [ 'echo $$' ]
et pour utiliser une topologie de type chaîne, encodez la topologie dans la structure d'arguments :
taktuk -m host1 -[ -m host2 -[ -m host3 -] -] broadcast exec [ 'echo $$' ]
ou limite l'arité de l'arbre dynamique à 1 :
taktuk -d 1 -m host1 -m host2 -m host3 broadcast exec [ 'echo $$' ]
Enfin, la valeur par défaut utilisera une topologie construite dynamiquement :
taktuk -d 0 -m host1 -m host2 -m host3 broadcast exec [ 'echo $$' ]
léger grille déploiement
Sur une grille légère, en raison de problèmes de localité (cache ldap, topologie du réseau, ...)
il semble intéressant de séparer le déploiement de chaque sous-cluster. Pour ce faire, il est
possible d'enfermer les nœuds de chaque cluster dans un groupe de déploiement distinct :
taktuk -b -m node1.cluster1 -m node2.cluster1 -m node3.cluster1 -m node4.cluster1 -e -b -m node1.cluster2 -m node2.cluster2 -m node3.cluster2 -m node4.cluster2 -e diffusion exec [ nom d'hôte ]
Cette commande a pour effet de déployer TakTuk sur deux clusters (cluster 1 et 2) fait
de quatre nœuds (nœuds 1 à 4), empêchant les nœuds déployés d'un cluster d'être utilisés pour
déployer des nœuds de l'autre cluster. Enfin, une fois le déploiement terminé, il
exécute la commande "hostname" sur tous ces nœuds.
exécution a distinct commander on chacun hôte
chaque hôte distinct peut recevoir sa propre commande en utilisant des arguments :
./taktuk -m host1 -[ exec [ hostname ] -] -m host2 -[ exec [ id ] -] -m host3 -[ exec [ 'echo $TAKTUK_RANK; ls' ] -] quitter
mais cela pourrait également être donné en utilisant la spécification d'ensemble (dans ce cas, les nombres logiques sont
utilisé pour les hôtes):
./taktuk -m host1 -m host3 -m host8 1 exec [ nom d'hôte ], 2 exec [ id ], 3 exec [ 'echo $TAKTUK_RANK; ls' ]
ou en mode interactif :
./taktuk -m hôte1 -m hôte3 -m hôte8
1 exec [nom d'hôte]
2 exécutable [ identifiant ]
3 exécutable [ echo $TAKTUK_RANK; cs ]
Ctrl-D
Néanmoins, gardez à l'esprit qu'en général ces nombres logiques ne correspondent pas aux
position des hôtes sur la ligne de commande.
scénario la diffusion
diffuser et exécuter un script perl nommé "essai.pl" sur trois hôtes, sachant que
"taktuk" et "essai.pl" ne sont présents que sur le nœud racine est simple avec
TakTuk:
taktuk -s -m hôte1 -m hôte2 -m hôte3
diffusion exec [ perl -- - ]
fichier d'entrée de diffusion [ essai.pl ]
entrée de diffusion fermer
Ctrl-D
fichiers la diffusion et collection
depuis la version 3.4, le transfert de fichiers est pris en charge directement par TakTuk. Remarquez que ce
le transfert utilise le TakTuk réseau (généralement un arbre composé de connexions ssh par
défaut). Ce réseau n'est pas efficace pour le transfert de gros fichiers (tant
topologiquement et du point de vue du protocole), alors gardez cela à l'esprit lorsque vous utilisez ce
fonction.
copier un fichier nommé "message.txt" dans le "/ Tmp" Le répertoire de chaque hôte distant est ainsi
aussi facile que:
taktuk -s -m hôte1 -m hôte2 -m hôte3
diffusion put [ message.txt ] [ / Tmp ]
Ctrl-D
mais l'ancienne méthode fonctionne toujours (et fait presque la même chose que la commande précédente):
taktuk -s -m hôte1 -m hôte2 -m hôte3
diffusion exec [ cat - >/tmp/message.txt ]
fichier d'entrée de diffusion [ message.txt ]
entrée de diffusion fermer
Ctrl-D
bien que cela nécessite d'être plus prudent sur l'interprétation du shell lors de la frappe
tout directement sur la ligne de commande :
taktuk -s -m host1 -m host2 -m host3 broadcast exec [ 'cat - >/tmp/message.txt' ]\;broadcast input file [ message.txt ]
notez dans cette dernière commande que l'"entrée close" n'est pas nécessaire car TakTuk ferme
entrées de toutes les commandes générées lors de la fermeture.
la commande "get" permet également des choses qui étaient auparavant très difficiles dans
TakTuk, collecte de fichiers. La commande suivante obtient le fichier "/tmp/message.txt" de
chaque hôte distant et le copie localement dans "message-number.txt" où "number" est le
rang logique du nœud source :
taktuk -s -m hôte1 -m hôte2 -m hôte3
diffusion get [ /tmp/message.txt ] [ message-$rank.txt ]
Ctrl-D
enfin, il semble important de mentionner que les commandes "put/get" peuvent copier des répertoires
et gardez les autorisations de fichiers inchangées.
communication
TakTuk peut également être utilisé pour établir une communication point à point. Assumer le fichier
"communication.pl" contient le script Perl suivant :
mon $rang = TakTuk::get('rang');
mon $count = TakTuk::get('count');
si ($rang == 1)
{
print "Je suis le processus 1\n" ;
si ($compte > 1)
{
TakTuk::send(to=>2, body="Hello world");
}
}
elsif ($rang == 2)
{
print "Je suis le processus 2\n" ;
mon ($de, $message) = TakTuk::recv();
print "Traiter $pour recevoir $message de $from\n" ;
}
puis l'exécution de la commande suivante :
taktuk -m localhost -m localhost diffusion taktuk_perl [ - ]\;fichier d'entrée de diffusion [ communication.pl ]
produirait une sortie similaire à :
Astaroth.local : taktuk_perl : 3523 : sortie > je suis le processus 2
Astaroth.local : taktuk_perl : 3523 : sortie > Processus 2 reçu Hello world from 1
Astaroth.local : taktuk_perl : 3523 : état > 0
Astaroth.local : taktuk_perl : 3524 : sortie > je suis le processus 1
Astaroth.local : taktuk_perl : 3524 : état > 0
si le fichier "communication.pl" a été placé dans le répertoire de connexion de l'utilisateur, ce
aurait aussi pu être exécuté par le plus simple :
taktuk -m localhost -m localhost diffusion taktuk_perl [ communication.pl ]
sortie modèles et redirections
TakTuk est également capable de faire écho à chaque site son rang sans statut de commande
informations:
taktuk -o status -m host1 -m host2 broadcast exec [ 'echo $TAKTUK_RANK' ]
ou en supprimant l'invite avant chaque ligne de sortie des commandes :
taktuk -o output='"$line\n"' -m host1 -m host2 broadcast exec [ 'echo $TAKTUK_RANK' ]
ou même changer l'invite pour qu'elle n'affiche que le type de flux :
taktuk -o default=""$type > $line\n"' -m host1 -m host2 broadcast exec [ 'echo $TAKTUK_RANK' ]
et il est également possible de rediriger le statut vers le descripteur de fichier 2 uniquement pour le deuxième
hôte:
taktuk -m host1 -R status=2 -m host2 broadcast exec [ 'echo $TAKTUK_RANK' ]
etc...
Développeur usage
débogage TakTuk
débogage dans TakTuk se fait à l'aide des fonctions "debug", "warning" et "error" du
paquet "diagnostic". Ces routines, selon le niveau de débogage du package
dans lequel ils sont appelés, produisent une sortie qui est propagée jusqu'au nœud racine et
imprimé à l'écran.
Par défaut, le niveau de débogage des packages est défini sur 2 (tout est imprimé
à l'exception des messages de "débogage"). Il peut être modifié pour chaque package en utilisant le -D option.
Par exemple, le code suivant exécute "true" sur "toto.nowhere.com" et imprime
chaque bit de la messagerie interne :
taktuk -D default=1 -m toto.nowhere.com exécutable de diffusion [true]
mais on aurait pu exécuter la même commande en ne gardant que les messages du
Forfait "planificateur":
taktuk -D planificateur = 1 -m exécutable de diffusion toto.nowhere.com [ vrai ]
ou assurer une exécution exempte de tout message d'avertissement ou d'erreur :
taktuk -D default=4 -m toto.nowhere.com exécutable de diffusion [true]
interne messages serveur
le serveur de messagerie interne utilisé dans TakTuk pour la gestion de réseau logique
la construction, l'exécution des commandes et le transfert d'E/S peuvent être exposés à l'aide du -r
option:
taktuk-r
Notez que dans ce mode le comportement de TakTuk peut sembler très cryptique. Ce n'est pas
destiné aux utilisateurs ordinaires.
Utilisez taktuk en ligne en utilisant les services onworks.net