Dies ist der Befehl taktuk, der im kostenlosen OnWorks-Hosting-Provider über eine unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
TakTuk - ein Tool für den groß angelegten Remote-Ausführungseinsatz
ZUSAMMENFASSUNG
Taktuk [-behinsvzMP] [-c Verbinder] [-d Grenze] [-f Dateiname] [-g Dauer] [-l Anmeldung] [-m
Hostname [-[ Argumente ... -]]] [-o stream=Vorlage] [-t Auszeit] [-u Grenze] [-w Größe] [-B
Parameter=Ausdruck] [-C Trennzeichen] [-E Charakter] [-F Dateiname] [-G Hostname [-[ args
... -]]] [-L Hostname] [-I Dolmetscher] [-O Trennzeichen] [-R stream=Dateiname] [-S Dateien]
[-T Befehl] [-V Weg ] [-W Schema] [Befehle ... ]
BESCHREIBUNG
TakTuk ist ein Tool zum Senden der Remote-Ausführung eines oder mehrerer Befehle an ein Set
einer oder mehrerer entfernter Maschinen. TakTuk kombiniert lokale Parallelisierung (mit gleichzeitigem
Bereitstellungsprozesse) und Arbeitsverteilung (unter Verwendung eines adaptiven Arbeitsstehlalgorithmus) an
beides erreichen Skalierbarkeit und Effizienz.
TakTuk eignet sich besonders für interaktive Aufgaben mit mehreren entfernten Maschinen und
parallele Remote-Ausführungen. Dies ist der Fall bei der Clusterverwaltung und parallelen
Programm-Debugging.
TakTuk stellt auch eine grundlegende Kommunikationsschicht für Programme bereit, die es ausführt. Dies
Kommunikationsschicht nutzt die von . aufgebaute Kommunikationsinfrastruktur TakTuk während seiner
Einsatz. Es ist sowohl für die Perl- als auch für die C-Sprache verfügbar und wird beschrieben in
TakTuk(3) und taktukcomm(3) bzw.
OPTIONAL
Achtung, in TakTuk Optionen werden in der in der Befehlszeile angegebenen Reihenfolge geparst. Das heisst
zur Abwicklung, Integrierung, Speicherung und TakTuk ist bezüglich der Optionsreihenfolge nicht POSIX-kompatibel. Dies ist wichtig, da einige von
die Optionen ändern das Verhalten der folgenden (und nur dieser - zB -l gilt
zu folgen -m Optionen). Die Standardeinstellungen von TakTuk erhalten Sie über die
Option "--print-defaults". Die folgenden Optionen sind alphabetisch nach Kategorie geordnet
Ordnung.
EINSATZ OPTIONAL
-b
--begin-group
beginnt eine neue Bereitstellungsgruppe. Eine Bereitstellungsgruppe fungiert für die meisten als Kontext
Optionen (innerhalb einer Gruppe gesetzte Optionen haben außerhalb der Gruppe keine Wirkung) und als
Isolierung für die Planung von Bereitstellungsaufgaben (Bereitstellungsaufgaben innerhalb einer Gruppe können nicht
von Knoten gestohlen, die in anderen Gruppen eingesetzt sind).
-c Stecker
--Verbinder Stecker
definiert den Connector-Befehl, der verwendet wird, um die folgenden Remote-Computer zu kontaktieren.
-d begrenzen
--dynamisch begrenzen
schaltet den dynamischen Modus (Work Stealing) für die Bereitstellung aller folgenden Funktionen ein oder aus
Spezifikationen für entfernte Maschinen. Wenn "limit" positiv oder null ist, TakTuk verwendet das
dynamischer Modus mit seinem Wert als maximale Stelligkeit (0 = keine maximale Stelligkeit). Ein Negativ
Wert für "limit" schaltet den dynamischen Modus aus. Warnung, derzeit ist es eine schlechte Idee zu verwenden
mehrere -d-Optionen mit positiven Werten in derselben Befehlszeile.
-e
--Endgruppe
beendet eine Bereitstellungsgruppe.
-f Dateinamen
--machines-Datei Dateinamen
"Dateiname" ist der Name einer Datei, die Namen von entfernten Computern enthält (entspricht
mehrere "-m"-Optionen). In jeder Zeile dieser Datei wird das erste Wort als a . betrachtet
Maschinenname und die restlichen als Kommentare.
-l login
--Anmeldung login
legt den Anmeldenamen für die folgenden Hosts fest. Dies setzt voraus, dass der Connector-Befehl
akzeptiert die Option "-l" (dies ist bei ssh der Fall, der Standardeinstellung).
-m hostname
--Maschine hostname
"hostname" ist der Name eines Remote-Rechners, auf dem TakTuk eingesetzt werden muss.
"hostname" kann eine Liste von Werten enthalten, die in Klammern angegeben sind, und Ausschlusslisten
(siehe "HOSTNAMES SPEZIFIKATION"). In diesem Fall wird die Depolymentierung auf allen durchgeführt
die passenden Gastgeber. Dieser Option können beliebig viele Argumente folgen
zwischen "-[" und "-]", die als Argumente der Fernbedienung übertragen werden TakTuk zur Abwicklung, Integrierung, Speicherung und
wird auf allen Zielhosts ausgeführt.
-s
--selbstvermehren
verbreitet die TakTuk über folgende Konnektoren ausführbar und eliminiert somit
die Notwendigkeit für eine TakTuk Installation auf entfernten Rechnern.
-z
--nicht-selbst-propagieren
hebt ein vorhergehendes auf -s .
-F Dateinamen
--args-Datei Dateinamen
"Dateiname" ist der Name einer Datei, die zusätzliche Optionen für . enthält TakTukdem „Vermischten Geschmack“. Seine
das Parsen der Datei wird durchgeführt, wenn diese Option angezeigt wird.
-G hostname
--Tor hostname
wie -m Hostname, außer dass die bereitgestellten Knoten als Nur-Weiterleitung betrachtet werden
Knoten: Sie werden nicht nummeriert und werden nicht von der nachfolgenden Verbreitung angegriffen
Befehle. Ausnahmsweise Ausführung von TakTuk Befehle auf diesen Knoten ist immer noch
möglich, indem sie als Deployment-Argumente der -G .
-I Befehl
--perl-interpreter Befehl
"command" ist der Name des Befehls, der als Perl-Interpreter verwendet wird, wenn auto
propagieren oder bei Verwendung des Befehls "taktuk_perl".
-L hostname
--localhost hostname
ändert den Namen von localhost, wie er von . angezeigt wird TakTuk.
-S Dateien
--Dateien senden Dateien
gibt zu TakTuk eine Liste der Dateien, die bei erfolgreicher Remote-Verbindung gesendet werden sollen. Verwenden
mit Vorsicht, da dies die Bereitstellung verlangsamt (die Dateien werden vor dem Ende übertragen
des Einsatzes). Die beabsichtigte Verwendung ist NICHT die Übertragung von Anwendungsdatendateien (eher
verwenden Sie den Befehl "put", um solche Dateien zu übertragen). Diese Option sollte verwendet werden, um zu übertragen
Dateien, die erforderlich sind, um weitere Verbindungen vom Remote-Knoten aus durchzuführen. "Dateien"
ist eine durch Kommas getrennte Liste von Paaren "local_file:remote_file". Bezüglich der Überweisung
selbst verhält es sich wie der Befehl "put".
-T Befehl
--taktuk-Befehl Befehl
"Befehl" ist der Name des TakTuk Befehl (Standard ist $0, der Name, der zum Starten verwendet wird)
TakTuk). Dies ist der Befehl, der nach der Verbindung verwendet wird, um die Fernbedienung zu starten TakTuk Antrieb.
Beachten Sie, dass die Wirkung dieses Schalters ungültig ist, wenn Sie die Option "-s" verwenden.
-V Liste
--Pfadwert Liste
setze die Umgebungsvariable PATH auf die angegebene Liste (wie üblich, ein Doppelpunkt getrennt
Verzeichnisliste) auf entfernten Hosts, zu denen TakTuk verbindet. Dies wird sehr durchgeführt
früh und wird sogar bei "taktuk"- oder "perl"-Aufrufen bei der Verbindung berücksichtigt
Zeit.
COMMAND LINE PARSING OPTIONAL
-C Trennzeichen gesetzt
--command-separator Trennzeichen gesetzt
ersetzt den Standardzeichensatz, der aufeinanderfolgende trennt TakTuk Befehle.
-E Charakter
--Escape-Zeichen Charakter
definiert ein Escape-Zeichen, das verwendet werden kann, um jedes folgende Zeichen vor zu schützen
TakTuk Interpretation. Dieser Schutz gilt fast für das ganze TakTuk Befehl
Linie.
-O Trennzeichen gesetzt
--option-separator Trennzeichen gesetzt
ersetzt den Standardzeichensatz, der beim Lesen aufeinanderfolgende Wörter trennt
Optionen und Befehle aus einer Datei (mit dem Schalter "-F").
I / O OPTIONAL
-o stream=Vorlage
--output-template stream=Vorlage
legt eine Ausgabevorlagenspezifikation für einen der Ausgabeströme fest, die von der angegebenen entworfen wurden
Name. Wenn Sie nur einen Streamnamen (ohne Vorlage) angeben, wird der Stream deaktiviert.
Zu den verfügbaren Streams gehören:
"connector" (Fehler beim Connector-Befehl)
Dieser Stream enthält in $line Informationen, die von einem Connector an stderr ausgegeben werden
Befehl. Relevante Felder sind $host, $peer und andere, die unten aufgeführt sind.
"error", "output" (Fehler und Ausgabe von remote ausgeführten Befehlen)
Diese Streams enthalten in $line Informationen, die von einem ausgeführten Befehl an stdout ausgegeben werden
oder stderr (jeweils). Relevante Felder sind $host, $command, $pid und andere
nachfolgend aufgeführten.
"info" (allgemeine Informationen wie Hilfezusammenfassung oder Version)
Dieser Stream enthält in $line Informationen, die von taktuk als Antwort auf . ausgegeben werden
Befehle wie "Hilfe" oder "Version".
"message" (Nachrichten von laufenden Prozessen)
jede Ausgabe dieses Streams enthält in $line eine Nachricht, die mit dem Ziel "Ausgabe" gesendet wurde
(durch TakTuk Out-of-Band-Kommunikationseinrichtungen) von einigen Prozessen gestartet
Verwendung von TakTuk Befehle. Relevante Felder für diesen Stream sind $from und $to und
andere unten aufgeführt.
"state" (interner Status der TakTuk-Instanz)
Dieser Stream enthält in $line den Statusänderungscode, der mit einigen übereinstimmt TakTuk Veranstaltungen.
Codes sind die folgenden:
0 - TakTuk ist fertig
1 - TakTuk ist nummeriert
2 - TakTuk beendet
3 - Verbindung fehlgeschlagen
4 - Verbindung initialisiert
5 - Verbindung verloren
6 - Befehl gestartet
7 - Befehl fehlgeschlagen
8 - Befehl beendet
9 - Nummerierungsaktualisierung fehlgeschlagen
10 - Pipe-Eingabe gestartet
11 - Pipe-Eingabe fehlgeschlagen
12 - Pipe-Eingang beendet
13 - Dateiempfang gestartet
14 - Dateiempfang fehlgeschlagen
15 - Dateiempfang beendet
16 - Dateiversand fehlgeschlagen
17 - Ungültiges Ziel
18 - Kein Ziel
19 - Nachricht zugestellt
20 - Ungültiges Ziel
21 - Ziel nicht mehr verfügbar
22 - Warten abgeschlossen
23 - Reduzieren abwarten
Die Funktion event_msg($) kann im Template verwendet werden, um diesen Code in zu übersetzen
eine Zeichenfolge, die das Ereignis beschreibt. Relevante Felder sind $host, $position,
$rank, $count und andere unten aufgeführt.
"status" (Befehle Exit-Status)
dieser Stream enthält in $line den Rückgabecode der ausgeführten Befehle. Relevant
Felder umfassen $host, $pid und andere, die unten aufgeführt sind.
"taktuk" (interne Meldungen, Warnungen und Fehler)
Dieser Stream enthält in $line Fehler-, Warn- und Debug-Meldungen, die von . ausgegeben werden TakTuk
selbst. Zu den relevanten Feldern gehören $line_number, $package und andere, die unten aufgeführt sind.
Eine Vorlage ist ein Perl-Ausdruck, der schließlich zu einer Zeichenfolge ausgewertet werden soll
angezeigt. Innerhalb einer Spezifikation können einige Variablen verwendet werden, abhängig von der
betroffener Strom:
$command (nicht für "taktuk" noch "info")
die Befehlszeilenausführung, die die Ausgabe generiert hat.
$ count
die volle Anzahl an TakTuk Instanzen.
$eol
eine leere Zeichenfolge oder ein Zeilenumbruch, je nachdem, welches Zeichen die Befehlsausgabe beendet hat.
$filename (nur "taktuk")
die Datei, in der a TakTuk Diagnosefunktion aufgerufen wurde.
$von (nur "Nachricht")
die logische Zahl der TakTuk Instanz, von der aus die Nachricht gesendet wurde.
$ Gastgeber
der Name des Hosts, der das aktuelle ausführt TakTuk Instanz
$init_date (nur "connector" und "state")
die Zeit in Sekunden seit dem 1. Januar 1970, zu der die Fernbedienung TakTuk Instanz
die Initialisierung abgeschlossen (einschließlich SSH-Verbindungszeit und Selbstausbreitung)
wenn überhaupt).
$level (nur "taktuk")
die Ebene der aufgerufenen Diagnosefunktion.
$level_name (nur "taktuk")
der Name, der der Ebene der aufgerufenen Diagnosefunktion zugeordnet ist.
$line
die durch einen Befehl ausgegebenen oder an eine Diagnosefunktion übergebenen Rohdaten, any
nachgestellter Zeilenumbruch entfernt (siehe $eol).
$line_number (nur "taktuk")
die Zeilennummer, bei der a TakTuk Diagnosefunktion aufgerufen wurde.
$package (nur "taktuk")
das Paket, in dem a TakTuk Diagnosefunktion aufgerufen wurde.
$peer (nur "connector" und "state")
die entfernte Maschine, für die ein Connector-Befehl Informationen ausgegeben hat.
$peer_position (nur "connector" und "state")
Position auf der Befehlszeile des entfernten Hosts. Diese Position wird ausgedrückt als a
Pfad in der Hierarchie der Hosts, die auf der Befehlszeile angegeben werden (Punkt getrennt
Positionsnummer auf jeder Imbrikationsebene).
$peers_given (nur "Zustand")
eine durch Leerzeichen getrennte Liste von entfernten Knoten, die der entfernten Gegenstelle für . gegeben wurde
Bereitstellung (unabhängig von ihrem Bereitstellungsstatus). Jeder entfernte Knoten wird als a . angegeben
Doppelpunkt getrenntes Paar, das aus seinem Hostnamen und seiner Position auf der Befehlszeile besteht.
Diese Variable hat nur dann einen sinnvollen Wert, wenn das Ereignis an den Stream ausgegeben wird
"state" ist ein Verbindungsverlust (Ereignisnummer 5).
$pid (nicht für "taktuk" oder "info")
die PID der ausgeführten Befehlszeile (die eine Ausgabe erzeugt hat).
$-Position
Position auf der Kommandozeile des aktuellen Hosts. Diese Position wird ausgedrückt als a
Pfad in der Hierarchie der Hosts, die auf der Befehlszeile angegeben werden (Punkt getrennt
Positionsnummer auf jeder Imbrikationsebene).
$rang
die logische Zahl von TakTuk Instanz, in der die Ausgabe gesammelt wird.
$reply_date (nur "connector" und "state")
die Zeit in Sekunden seit dem 1. Januar 1970, zu der der Connector-Befehl geantwortet hat
die lokale TakTuk -Instanz (beachten Sie, dass dies nicht die Initialisierung beinhaltet
Austausch vor der Fernbedienung TakTuk gilt als funktionstüchtig).
$start_date ("output", "error", "connector" und "status")
die Zeit in Sekunden seit dem 1. Januar 1970, zu der der Befehl gestartet wurde (nur
nach dem anruf an Gabel()).
$init_date (nur "connector" und "state")
die Zeit in Sekunden seit dem 1. Januar 1970, zu der die Fernbedienung TakTuk abgeschlossen sein
Initialisierung.
$stop_date (nur "connector" und "status")
die Zeit in Sekunden seit dem 1. Januar 1970, zu der der Befehl beendet wurde (nach dem
Schließung seines stdout).
$to (nur "Nachricht")
die logische Zahl (oder eine Menge solcher Zahlen) der TakTuk Instanz, zu der die
Nachricht wurde gesendet.
$ type
der Name des Ausgabestroms (Konnektor, Fehler, Ausgabe, ...).
$user_skalar
ein Skalar, global für das Paket, anfänglich mit undef initialisiert, der der Benutzer ist
kostenlos für jeden Zweck zu verwenden.
am ende des tages wird die spezifikation für jede zeile der betroffenen . ausgewertet
stream und das Ergebnis wird auf dem Root-Knoten ausgegeben. Beachten Sie, dass der Zeilenumbruch hinzugefügt werden muss
bei Bedarf explizit als "\n" in der Vorlage.
WARNUNG: Passen Sie auf Ihre Spezifikation auf, wenn die Perl-Syntax nicht richtig ist viele
Es werden schreckliche Kompilierungsfehlermeldungen angezeigt und TakTuk die Ausführung wird fehlschlagen.
-R stream=Dateiname
--output-redirect stream=Dateiname
Leiten Sie eine bestimmte Stream-Ausgabe in eine bestimmte Datei um (die sich am Root-Knoten befindet). Notiz
dass der angegebene Dateiname der offenen Perl-Syntax entspricht: zum Beispiel könnte man umleiten
zu einem Dateideskriptor X mit dem Namen ">&=X". Siehe "-o" Option für weitere Details zu
Streams ausgegeben.
LEISTUNG TUNING OPTIONAL
-B Parameter=Ausdruck
--worksteal-verhalten Parameter=Ausdruck
Achtung: Diese Funktion sollte als experimentell betrachtet werden und könnte entfernt werden
zukünftige Veröffentlichungen. Passt das Verhalten des Arbeitsraub-Algorithmus durch die Einstellung
einige seiner Parameter zu Perl-Ausdrücken. Diese Perl-Ausdrücke können die Variablen verwenden
$last_given und $available, die jeweils der Anzahl der angegebenen Aufgaben entsprechen
an einen Dieb beim letzten Diebstahl und an die Gesamtzahl der verbleibenden Bereitstellungsaufgaben.
Verfügbare Parameter sind:
Anfangs-
die Anzahl der Aufgaben, die einer Fernbedienung zugewiesen werden TakTuk Instanz beim ersten Senden a
stehlen-Anfrage an den lokalen Host.
Wachstum
die Anzahl der Aufgaben, die einer Fernbedienung zugewiesen werden TakTuk Instanz jedes Mal, wenn sie a . ausführt
stehlen nach dem ersten Mal an den lokalen Host.
begrenzen
eine obere Schranke für den Wert, der sich aus der Bewertung von "Wachstum" ergibt.
-g Dauer
--Zeit-Granularität Dauer
setzt auf "Dauer" (in Sekunden) das maximale Intervall zwischen den Timeout-Prüfungen (normalerweise
Prüfungen werden häufiger durchgeführt: bei jeder empfangenen Nachricht wird eine Zeitüberschreitungsprüfung durchgeführt).
-n
--keine Nummerierung
deaktiviert TakTuk logische Nummerierung und die Variablen "TAKTUK_COUNT" und "TAKTUK_RANK"
sind in ausgeführten Befehlen nicht definiert. Dies hat den Vorteil, dass die globalen
Synchronisierung erfolgt am Ende der Bereitstellung und macht die Bereitstellung mehr
effizient.
WARNUNG: Verwenden Sie diese Option nur vor einer Remote-Knoten-Spezifikation ("-m" oder "-f")
andernfalls könnten ernsthafte Synchronisationsprobleme auftreten in TakTuk. Mit TakTuk Punkt-
Die To-Point-Kommunikation zusammen mit dieser Option schlägt fehl und erzeugt TakTuk Warnungen.
-t Timeout
--Auszeit Timeout
setzt den Timeout (in Sekunden) für folgende Konnektoren (0 = kein Timeout). Beachte das
diese Option überschreibt die Zeitüberschreitung des Connector-Befehls (z. B. "ssh"). Wann
die Verzögerung abläuft, wird der Connector-Befehl einfach beendet.
-u begrenzen
--cache-limit begrenzen
begrenzt eine Anzahl von Speicherbytes TakTuk könnte als interner Schreibpuffer verwendet werden. Für die meisten
Benutzern ist es keine gute Idee, ein solches Limit festzulegen: In einigen seltenen Situationen kann dies dazu führen, dass
eine Sackgasse in TakTuk (verursacht durch paralleles Blockieren von Schreibvorgängen zwischen einer Anwendung und
TakTuk selbst). Wenn Sie diese Option auf einen negativen Wert setzen, wird das Limit deaktiviert (Standard).
Trotzdem, wenn Sie verwenden TakTuk um große Dateien zu übertragen, wegen der I/O-Bandbreite
Unterschiede in verschiedenen Teilen eines Systems, TakTuk Speichernutzung könnte zu groß werden und
die Leistung kann stark beeinträchtigt werden, wenn das System mit dem Swapping beginnt. In solch
Situationen wird die Begrenzung der Größe des internen Caches beibehalten TakTuk im Hauptspeicher
und die Leistung erhalten.
-w Größe
--Fenster Größe
setzt das Anfangsfenster auf die angegebene Größe (= Pipelinebreite).
-W Schema
--Fenster-Anpassung Schema
setzt das Windows-Anpassungsschema auf Zahl (Standard ist 0, 0: keine Anpassung, 1:
Umsetzung im Gange).
SONSTIGES OPTIONAL
-M
--mein
macht die nächste Option lokal (nicht vererbt). Das bedeutet, dass die nächste Option gesetzt ist
nur für den lokalen Wirt und nicht an Kinder weitergegeben TakTuk Instanzen. Hat kein
Wirkung, wenn die nächste Option bereits eine lokale ist.
-h
--help
druckt eine kurze Beschreibung von TakTuk auf dem Bildschirm.
-i
--interaktiv
Streitkräfte TakTuk interaktiver Modus auch nach einigen Batch-Befehlen auf dem Befehl
Linie.
-v
--Version
druckt die TakTuk Version.
-P
--print-defaults
druckt die Standardeinstellungen, die von verwendet werden TakTuk (Umgebungsvariablen berücksichtigt
Konto).
INTERN OPTIONAL
Diese Option ist für die meisten Benutzer nicht nützlich. Sie werden entweder intern von TakTuk
selbst oder zu Entwicklungszwecken.
-p Paketname
--print-paket Paketname
druckt den Inhalt des Pakets "Paketname", das aus dem Taktuk-Code in . extrahiert wurde
Ausführung.
-r
--not-root
Strom TakTuk -Instanz ist nicht der Root-Knoten. Dies ist ein interner Schalter, der von verwendet wird
hervorgebracht TakTuk Instanzen. Dies ist normalerweise für die meisten Benutzer nicht nützlich.
-D Umfang=Ebene
--debuggen Umfang=Ebene
setzt Debug-Level (1..4) für "Scope". Der "Umfang" könnte a . sein TakTuk Paketname oder
"default" und je niedriger die Stufe ist, desto ausführlicher ist die Ausgabe.
BEFEHLE
Nach dem Parsen der Optionen, TakTuk erwartet einige Befehle entweder auf den verbleibenden
Kommandozeile (Batch-Modus) oder auf der Standardeingabe (interaktiver Modus). Diese Befehle sind
auszuführende Handlungen von TakTuk Nutzung der logischen Netzwerkinfrastruktur, die während
die Bereitstellung. Standardmäßig können Befehle durch ; oder Zeilenumbrüche. Für alle
Befehle können beliebige nicht mehrdeutige Präfixe anstelle ihres vollständigen Namens verwendet werden. Im interaktiven
Modus TakTuk hat Unterstützung für "readline" (Verlauf, Befehlszeilenbearbeitung), wenn installiert auf
dein System.
Wann TakTuk Befehle akzeptieren Argumente, sie sollten in passende Trennzeichen eingeschlossen werden
(gekennzeichnet durch * unten). Mit anderen Worten, * kann entweder durch ein beliebiges nicht alphanumerisches ersetzt werden
Zeichen oder durch ein Paar übereinstimmender geschweifter Klammern, Klammern oder Klammern. Diese Trennzeichen müssen
von ihrem Inhalt getrennt werden (mithilfe des Optionstrennzeichens). Wenn das Argument a . enthält
schließendes Trennzeichen mit vorangestelltem Trennzeichen, dann ist es wahrscheinlich eine gute Idee, es zu maskieren
(sehen -E Option) oder um die gesamte Argumentzeichenfolge zu schützen, wenn sie in der Befehlszeile angegeben wird.
Taktuk versteht die folgenden Befehle:
[ kompensieren Spezifikation ] Befehl
Sendet die Ausführung des Befehls an alle Peers, die zum angegebenen Set gehören. Für mehr
Details zur Setspezifikation finden Sie im Abschnitt "SET- UND ZIELSPEZIFIKATION".
Sendung Befehl
Sendet die Befehlsausführung an alle Remote-Peers (ohne den Knoten).
Sendestart).
niedergeschlagen Befehl
Verteilt die Ausführung des Befehls auf alle Kinder des Knotens, der die
niedergeschlagen (ohne sich selbst).
exec Parameter * Kommandozeile *
Führt die "Befehlszeile" auf dem lokalen Computer aus. Ein-/Ausgänge der Ausführung sind
gemultiplext und an die . weitergeleitet TakTuk Wurzel. Dieser Befehl akzeptiert optionale Parameter
die das Anhängen von durch Timeouts ausgelösten Callbacks an die Ausführung der
Befehl. Weitere Informationen finden Sie im Abschnitt "EXEC-PARAMETER".
bekommen * Quelle * * Ziel *
Kopiert (a) entfernte Quelle(n) (auf dem/den entfernten Knoten vorhanden) zu einem Ziel auf dem
Knoten, der diesen Befehl ausführt. Die Art der Quelle und des Ziels ist ziemlich ähnlich zu
diejenigen, die vom Befehl "cp -r" akzeptiert werden (dh Dateien oder Verzeichnisse). Dieser Befehl auch
führt eine Art Magie mit seinen Parametern aus: Shell-Umgebungsvariablen vorhanden
in den Quell- oder Zielnamen werden durch ihren jeweiligen Wert auf der ersetzt
entfernte und lokale Knoten. Außerdem sind die Variablen $host, $rank und $position der
entfernter Knoten (die gleichen wie in -o Option) kann auch in beiden Namen verwendet werden.
Hilfe
Druckt sehr prägnant TakTuk helfen.
Varianten des Eingangssignals: [ Ziel Ziel ] * Daten *
Varianten des Eingangssignals: [ Ziel Ziel ] die Datenerfassung * Daten *
Sendet die angegebenen Daten als Eingabe an Befehle, die auf dem lokalen Computer ausgeführt werden, als
durch das angegebene Ziel angegeben. Wenn kein Ziel angegeben ist, werden die Daten an alle gesendet
Befehle. Weitere Informationen zu Zielen finden Sie unter „SET- UND ZIELSPEZIFIKATION“
Varianten des Eingangssignals: [ Ziel Ziel ] schließen
Schließt den Eingabedeskriptor der Ausführung von Befehlen auf dem lokalen Computer wie angegeben
durch das vorgegebene Ziel. Wenn kein Ziel angegeben ist, werden die Eingaben aller Befehle geschlossen.
Varianten des Eingangssignals: [ Ziel Ziel ] Datei * Dateiname *
Sendet den Inhalt einer Datei (die lokal für den Knoten sein muss, der die Eingabedatei ausführt)
als Eingabe für Befehle, die auf dem lokalen Computer ausgeführt werden, wie durch die angegebenen
Ziel. Wenn kein Ziel angegeben wird, werden die Daten an alle Befehle gesendet.
WARNUNG: Dieser Befehl ist nicht atomar. Wenn Sie es irgendwie schaffen, eine Eingabedatei zu initiieren
Befehl von zwei verschiedenen TakTuk Instanzen werden die Daten wahrscheinlich verschachtelt. In
In diesem Fall sollten Sie die beiden Instanzen synchronisieren. Dies ist nicht erforderlich, wenn
Verteilen von Dateien nur vom Root-Knoten.
Varianten des Eingangssignals: [ Ziel Ziel ] Linie * Daten *
Sendet die angegebenen Daten mit einem zusätzlichen Zeilenumbruch als Eingabe an Befehle in Ausführung am
die lokale Maschine, wie durch das angegebene Ziel angegeben. Wenn kein Ziel angegeben ist, sind die Daten
an alle Befehle gesendet.
Varianten des Eingangssignals: [ Ziel Ziel ] Rohr * Dateiname *
Behandeln Sie den Parameter als Datei (die lokal für den Knoten sein muss, der die Eingabe ausführt
Pipe), das sich wie eine Pipe verhält: Daten können kontinuierlich ankommen. TakTuk hinzufügen
es als einen seiner Eingangskanäle und sendet Daten als Eingabe an Befehle, wenn verfügbar. Wenn
gegeben, das Ziel gibt an, an welchen Befehl die Daten gesendet werden sollen, ansonsten ist es
an alle Befehle gesendet.
töten [ Ziel Ziel ]
Sendet das gegebene Signal an lokale Befehlsverarbeitungsgruppen. Wenn kein Signal gegeben wird,
sendet ein TERM-Signal (Signal 15). Falls angegeben, gibt das Ziel an, zu welchem Befehl die
Signal gesendet werden soll, sonst wird es an alle Befehle gesendet. Für weitere Details zu
Ziele, siehe "SET- UND ZIELSPEZIFIKATION"
Nachricht [ Ziel Ziel ] * Daten *
Nachricht [ Ziel Ziel ] die Datenerfassung * Daten *
Sendet die angegebenen Daten als Nachricht an Befehle, die auf dem lokalen Computer ausgeführt werden, als
spezifiziert durch das angegebene Ziel (siehe TakTuk(3) und taktukcomm(3) für weitere Details zu
Mitteilungen). Wenn kein Ziel angegeben ist, werden die Daten an den ersten Befehl gesendet, der a . ausführt
empfangen und nicht bereits von einer anderen Nachricht angesprochen. Weitere Informationen zu Zielen finden Sie unter
siehe "SET- UND ZIELSPEZIFIKATION"
Nachricht [ Ziel Ziel ] Datei * Dateiname *
Sendet den Inhalt einer Datei (die lokal für den Knoten sein muss, der die Nachricht ausführt
file) als Nachricht an Befehle, die auf dem lokalen Computer ausgeführt werden, wie durch die
gegebenes Ziel (siehe TakTuk(3) und taktukcomm(3) für weitere Details zu Nachrichten). Wenn nein
Wenn ein Ziel angegeben ist, werden die Daten an den ersten Befehl gesendet, der einen Empfang ausführt, und nicht
bereits von einer anderen Nachricht angesprochen.
WARNUNG: Dieser Befehl ist nicht atomar. Wenn Sie es irgendwie schaffen, eine Nachrichtendatei zu initiieren
Befehl von zwei verschiedenen TakTuk Instanzen werden die Daten wahrscheinlich verschachtelt. In
In diesem Fall sollten Sie die beiden Instanzen synchronisieren. Dies ist nicht erforderlich, wenn
Verteilen von Dateien nur vom Root-Knoten.
Nachricht [ Ziel Ziel ] Linie * Daten *
Sendet die angegebenen Daten mit einem zusätzlichen Zeilenumbruch als Nachricht an Befehle in Ausführung
auf dem lokalen Computer, wie durch das angegebene Ziel angegeben (siehe TakTuk(3) und taktukcomm(3)
für weitere Details zu Nachrichten). Wenn kein Ziel angegeben ist, werden die Daten an das erste gesendet
Befehl, der einen Empfang ausführt und nicht bereits von einer anderen Nachricht angesteuert wird.
Nachricht [ Ziel Ziel ] Rohr * Daten *
Behandeln Sie den Parameter als einen Dateinamen (der lokal für den Knoten sein muss, der die Eingabe ausführt
Pipe), das sich wie eine Pipe verhält: Daten können kontinuierlich ankommen. TakTuk hinzufügen
es als einen seiner Eingangskanäle und sendet Daten als Nachricht an Befehle, wenn verfügbar
(sehen TakTuk(3) und taktukcomm(3) für weitere Details zu Nachrichten). Wenn gegeben, die
target gibt an, an welches Kommando die Daten gesendet werden sollen, ansonsten werden sie an den
der erste Befehl, der einen Empfang ausführt und nicht bereits von einer anderen Nachricht angesprochen wird.
Netzwerk
Netzwerk Zustand
Druckt den Strom TakTuk Bereitstellungsbaum. Zahlen in Klammern entsprechen dem Peer-Rang
im logischen TakTuk Nummerierung und den Peer-Ready-Zustand. Wenn die Bereitstellung nicht
abgeschlossen ist, zeigt der gedruckte Baum "connecting ..."-Blätter an.
Netzwerk stornieren
Bricht alle laufenden Verbindungen ab. Folglich führt dies zu einem sofortigen Starten des
mögliche Nummerierung von TakTuk Instanzen und die Ausführung von TakTuk Befehle.
Netzwerk neu nummerieren
Berechnet die logische Nummerierung von . vollständig neu TakTuk Instanzen. Das ist besonders
nützlich, wenn dem bereitgestellten Netzwerk nach der anfänglichen Nummerierung neue Knoten hinzugefügt werden.
Netzwerk Aktualisierung
Aktualisiert die logische Nummerierung von TakTuk Instanzen, ohne bereits bestehende zu ändern
Zahlen. Gelingt nicht immer als TakTuk verwendet ein Tiefenschema für die Nummerierung.
Sendet ein Ereignis 9 im Stream 'state' für jeden Knoten des Baums, der nicht sein kann
aktualisiert unter Beibehaltung TakTuk Nummerierungsschema. Dies ist besonders nützlich beim Hinzufügen
neue Knoten in das bereitgestellte Netzwerk nach der anfänglichen Nummerierung.
ganz ohne irgendetwas tun oder drücken zu müssen. Name * Wert *
ganz ohne irgendetwas tun oder drücken zu müssen. * Linie *
Ändert entweder eine einzelne Option, deren Name angegeben wird (erste Form) oder analysiert und
zusätzliche Optionszeile (zweite Form) auf den Knoten, die diesen Befehl ausführen. Sehen
TakTuk Optionen für weitere Details, Name kann im ersten Formular entweder kurz oder lang sein.
WARNUNG: Neue Knoten hinzugefügt zu TakTuk Netzwerk, das diesen Befehl verwendet, werden nicht nummeriert.
Die weitere Verwendung der Netzwerk-Neunummerierung oder -Aktualisierung ist erforderlich, um TakTuk logisch
Nummerierung.
setzen * Quelle * * Ziel *
Kopiert eine lokale Quelle (die auf dem Knoten vorhanden ist, der diesen Befehl ausführt) in ein Ziel auf
alle entfernten Knoten, die als Präfix des Befehls angegeben sind. Die Art der Quelle und
Das Ziel ist ziemlich ähnlich zu denen, die vom Befehl "cp -r" akzeptiert werden (d. h. Datei oder
Verzeichnisse). Dieser Befehl führt auch mit seinen Parametern eine Art Magie aus: Shell
Umgebungsvariablen, die in den Quell- oder Zielnamen vorhanden sind, werden durch ihre . ersetzt
jeweiligen Wert auf den lokalen und entfernten Knoten. Außerdem sind die Variablen $host,
$rank und $position des lokalen Knotens (die gleichen wie in -o Option) kann auch sein
in beiden Namen verwendet.
synchronisieren Befehl
Erzwingt, dass der angegebene Befehl auf den Abschluss der Bereitstellung, die Nummerierung der Knoten und
vorherige Befehle vor der Ausführung. Dies ist nützlich für globale Befehle wie
"Broadcast", der nicht auf die Nummerierung der Knoten wartet. Im Gegensatz dazu Multicast-Befehle
(diejenigen, die eine Mengenangabe als Präfix verwenden) warten auf die Nummerierung der Knoten und die
Vervollständigung der vorherigen Befehle. Verwenden Sie im Zweifelsfall immer "synchronize" vor a
"broadcast", "downcast" oder "wait Reduce".
taktuk_perl * Argumente *
Forks einen Perl-Interpreter auf dem lokalen Knoten, als ob der Befehl "exec perl
arguments" verwendet wurde. Der Unterschied besteht darin, dass dieser Interpreter zuvor
geholt mit dem Paket "taktuk", das Punkt-zu-Punkt-Kommunikationsroutinen enthält
("TakTuk::send" und "TakTuk::recv", siehe taktukcomm(3)). ACHTUNG: Aufgrund der
Einschränkungen des Parsers, der die Argumente dieses Befehls analysiert, müssen Sie
Argumente angeben (auch wenn sie leer sind) und '--' verwenden, wenn Sie der Perle eine Option geben
Dolmetscher (und selbst wenn Sie ihm nur Optionen geben).
Version
Drucke TakTuk Version.
verlassen
Beenden Sie die TakTuk Engine und Herunterfahren des aufgebauten logischen Kommunikationsnetzwerks
während des Einsatzes.
warten Ziel Ziel
Wartet (unterbricht die Ausführung der folgenden Befehle) im lokalen TakTuk Beispiel für
der Abschluss eines lokalen Prozesses in Abhängigkeit vom gegebenen Ziel. Dieses Ziel könnte
eine beliebige Zielspezifikation außer "Ausgabe" sein. Weitere Informationen zu Zielen finden Sie unter "SET
UND ZIELSPEZIFIKATION".
warten Veteran Ziel Ziel
Kann nur im Wurzelknoten verwendet werden. Wartet (unterbricht die Ausführung der folgenden
Befehle) für den Abschluss einiger Prozesse in allen bereitgestellten TakTuk Instanzen
je nach vorgegebenem Ziel. Dieses Ziel kann eine beliebige Zielspezifikation sein, außer
"Ausgang". Beachten Sie, dass dieser Befehl im Gegensatz zu einfachen "wait"-Befehlen ist
wie "Broadcast" synchronisiert. Daher sollte es explizit synchronisiert werden
wenn es mit nicht gesendeten Befehlen gemischt wird (sonst wird es vor ihnen ausgeführt).
EXEC PARAMETER
Das TakTuk Befehl "exec" akzeptiert optionale Parameter. Diese Parameter werden verwendet, um
eine Ziel-ID für den Befehl angeben oder durch Timeouts ausgelöste Aktionen an . anhängen
Befehlsausführung. Ein "exec"-Befehl akzeptiert eine beliebige Anzahl von Parametern. Diese Parameter
werden von links nach rechts mit der folgenden Syntax interpretiert:
Ziel Wert
Hängen Sie den (numerischen) Wert als Ziel-ID des ausgeführten Befehls an. Diese Ziel-ID
wird von jedem nachfolgenden Befehl verwendet, der Ziele verwendet (wie "input",
"Nachricht", "Kill" oder "Warten").
Achtung: Dieser Wert überschreibt jede Ziel-ID, die automatisch hätte sein können
von TakTuk zugewiesen. Daher wird nicht empfohlen, die Verwendung von explizit zu mischen
zugewiesene Ziel-IDs unter Verwendung automatisch zugewiesener Ziel-IDs.
Timeout Wert
Erstellt eine neue Timeout-Spezifikation. Am Ende der Dauer ausgedrückt durch die gegebene
-Wert, werden die angehängten Rückrufe ausgelöst. Wenn kein Rückruf angehängt ist, wird es
ein TERM-Signal an den Befehl senden. Wenn die Befehlsausführung vor dem Ende endet
der Timeout-Dauer wird der Timeout aufgehoben.
töten Wert
Hängen Sie einen Rückruf an das zuletzt definierte Timeout an. Dieser Rückruf sendet ein Signal, das
number ist der angegebene Wert für den Timeout-Befehl.
Aktion Befehl
Hängen Sie einen Rückruf an das zuletzt definierte Timeout an. Dieser Callback führt das angegebene aus TakTuk
Befehl. Wenn es einen anderen Befehl ausführt, kann es die Umgebungsvariable verwenden
"TAKTUK_PID", das die PID des timeouted-Befehls enthält. Das Gegebene TakTuk Befehl
kann beliebig sein TakTuk Befehl (ohne Befehlstrennzeichen).
Beachten Sie, dass jedes Timeout eine beliebige Anzahl angehängter Rückrufe haben kann. Sie werden verarbeitet
in der Reihenfolge, in der sie als Parameter angegeben werden.
Variablen zur Abwicklung, Integrierung, Speicherung und Übernehmen TakTuk Standard Verhalten
Einige TakTuk Standardeinstellungen können auf einigen Hosts mithilfe der Umgebung geändert werden
Variablen. Diese Einstellungen werden ebenso wie andere Optionen weitergegeben. Sie werden überschrieben von
weitergegebenen Einstellungen und Befehlszeilenoptionen.
Um einige Standardeinstellungen zu ändern, verwenden Sie die Variable TAKTUK_NAME woher NAME/FUNKTION ist der Name von
die entsprechende lange Option in Großbuchstaben und mit durch Unterstriche ersetzten Bindestrichen. Zum
Option mit komplexen Werten (wie "--debug") fügen Sie einfach einen Unterstrich und das Feld hinzu
Sie in Großbuchstaben am Ende des Namens ändern möchten. Mit "taktuk ."
--print-defaults" gibt Ihnen Beispiele für Namen, die zum Ändern der Standardeinstellungen verwendet werden.
Beachten Sie, dass Sie in der Umgebung eine Standardeinstellung definieren, die nicht von verwendet wird TakTuk hat keine
Wirkung.
Sie können auch einige ändern TakTuk Standardeinstellungen lokal, ohne die
Änderung im Bereitstellungsbaum. Verwenden Sie dazu die Variable TAKTUK_MY_NAME wo name
ist wie oben definiert. Nach wie vor werden diese lokalen Einstellungen durch propagierte . überschrieben
Einstellungen und Befehlszeilenoptionen.
Variablen kompensieren by TakTuk in entfernt ausgeführt Befehle
Taktuk setzt die folgenden Umgebungsvariablen für alle ausgeführten Befehle:
TAKTUK_CONTROL_READ, TAKTUK_CONTROL_WRITE
Dateideskriptoren, intern verwendet von TakTuk.
TAKTUK_COUNT
Die Gesamtzahl der erfolgreich bereitgestellten TakTuk Instanzen
TAKTUK_HOSTNAME
Hostname des lokalen Knotens wie angegeben an TakTuk (auf der Kommandozeile)
TAKTUK_PIDS
Liste der pids (getrennt durch Leerzeichen) von Befehlen, die vom Local ausgeführt werden TakTuk
Beispiel.
TAKTUK_TARGET
Zielnummer des aktuell ausgeführten Prozesses (siehe "SET UND ZIELE
SPEZIFIKATION" für weitere Details).
TAKTUK_POSITION
Hostposition auf der Befehlszeile.
TAKTUK_RANK
Der logische Rang der lokalen Instanz.
TAKTUK_FATHER
Der logische Rang der Taktuk-Instanz, die diese hervorgebracht hat.
TAKTUK_CHILD_MIN
Der logische Rang des Nachkommens mit der niedrigsten Nummer aus dem aktuellen Taktuk
-Instanz (-1 wenn die lokale TakTuk-Instanz keine Kinder hat).
TAKTUK_CHILD_MAX
Der logische Rang des Nachkommens mit der höchsten Nummer aus dem aktuellen taktuk
-Instanz (-1 wenn die lokale TakTuk-Instanz keine Kinder hat).
HOSTNAMEN SPEZIFIKATION
Hostnamen vergeben an TakTuk kann ein einfacher Maschinenname oder komplexe Hosts-Listen sein
Spezifikationen. In seiner allgemeinen Form besteht ein Hostname aus einem Hostset und einem optionalen
Ausschlusssatz durch einen Schrägstrich getrennt. Jeder dieser Sätze ist eine durch Kommas getrennte Liste von Hosts
Vorlagen. Jede dieser Vorlagen besteht aus einem konstanten Teil (Zeichen außerhalb der Klammern)
und optionale Bereichsteile (Zeichen in Klammern). Jeder Bereichsteil ist ein Komma
getrennte Liste von Intervallen oder Einzelwerten. Jedes Intervall besteht aus zwei Einzelwerten
durch einen Strich getrennt. Dies gilt für alle Hostnamen, die an vergeben wurden TakTuk (beide mit -m or -f
Optionen).
Mit anderen Worten, die folgenden Ausdrücke sind gültige Hostspezifikationen:
node1
Knoten[19]
Knoten[1-3]
Knoten[1-3],anderer Host/Knoten2
node[1-3,5]part[a-b]/node[3-5]parta,node1partb
sie erweitern sich jeweils zu:
node1
node19
Knoten1 Knoten2 Knoten3
Knoten1 Knoten3 anderer Host
Knoten1Teila Knoten2Teila Knoten2Teilb Knoten3Teilb Knoten5Teilb
Beachten Sie, dass diese Werteliste keine regulären Ausdrücke sind ("node[19]" ist "node19" und
nicht "Knoten1, Knoten2, ...., Knoten9"). Intervalle werden mit dem magischen Auto von Perl implementiert
Inkrement-Funktion, daher können Sie alphanumerische Werte als Intervallgrenzen verwenden (siehe perl
Dokumentation, Operator ++ für Einschränkungen dieser Autoinkrementierung).
SET UND ZIELE SPEZIFIKATION
Das TakTuk Befehlszeile und die Routine "TakTuk::send" akzeptieren eine Set-Spezifikation als
Zielhost(s). Eine Mengenangabe besteht aus Intervallangaben, getrennt durch
Schrägstriche. Eine Intervallangabe besteht entweder aus einer einzigen Zahl, zwei Zahlen
getrennt durch einen Bindestrich oder eine einzelne Zahl gefolgt von einem Pluszeichen (dieser letzte Fall entspricht der
Intervall, das von der Zahl bis zur höchsten Zahl geht TakTuk Ziel). Natürlich
die beiden Zahlen, die ein Intervall angeben, müssen in aufsteigender Reihenfolge angegeben werden.
Die entfernten Peers, die in einer Set-Spezifikation enthalten sind, sind alle Peers, deren logische Nummer
zu mindestens einem Intervall der Menge gehören. Hier einige Beispiele für Set-Spezifikationen:
1
der Peer mit der Nummer 1
2 7
die Peers nummeriert 2,3,4,5,6 und 7
2-4/1/10
die Peers nummeriert 1,2,3,4 und 10
3+
die Gleichaltrigen von 3 bis zur höchsten Nummer
5 + / 1
die Peers von 5 bis zur höchsten Nummer und der Peer 1
Die Zielnummer ist eine Nummer, die von TakTuk zu allen Prozessen, die es ausführt
(erfolgreich gestartet oder nicht mit den Befehlen "exec" oder "taktuk_perl"). Standardmäßig ist dies
Zahl beginnt bei 0 und geht bis zur Gesamtzahl der ausgeführten Prozesse
seit dem Start von TakTuk minus eins. Zielprozesse eines "TakTuk::send" oder a TakTuk Befehl
kann mit der gleichen Syntax wie im Fall von Mengen ausgedrückt werden.
Außerdem sind TakTuk versteht mehrere spezielle Ziele. Das Spezialziel "alle" Ziele
alle Prozesse: Dies bedeutet, dass der Befehl auf alle ausgeführten lokalen Prozesse angewendet wird
(Nachrichten- oder Eingabedaten werden dupliziert und an alle gesendet), dies ist die Standardeinstellung für
die Befehle "input" und "kill". Das Sonderziel "beliebig" zielt auf den ersten Berechtigten
Prozess. Im Falle einer Nachricht ist dies der erste Prozess, der ein "TakTuk::recv" ausgibt
und das ist noch nicht das Ziel einer anderen Nachricht, dies ist die Standardeinstellung für die
Befehl "Nachricht". Schließlich zielt das spezielle Ziel "Ausgabe" auf den Ausgabestrom
"Nachricht" statt ein Prozess.
Beispiele:
Die folgenden Beispiele veranschaulichen die grundlegende Verwendung von TakTuk an einigen Maschinen und die Verwendung von
Entwickleroptionen. Beachte das TakTuk wurde entwickelt, um auf viel mehr Peers zu skalieren als die
Zahl an diesen Beispielen beteiligt.
Basic Verwendung
einfach Einsatz
die einfachste Art zu verwenden TakTuk besteht darin, es mit der Option "-s" selbstpropagieren zu lassen. In diesem
Fall kann die grundlegende Remote-Ausführung von "hostname" auf dem Host "toto.nowhere.com" sein
geschrieben:
taktuk -s -m toto.nowhere.com Broadcast Exec [ Hostname ]
In diesem Beispiel fragt "-s" TakTuk um seinen eigenen Code auf entfernten Hosts zu verbreiten. Es kann sein
entfernt, indem Sie die ausführbare Datei "taktuk" auf "toto.nowhere.com" installieren. Durch folgendes
wir gehen davon aus TakTuk auf allen Remote-Hosts installiert ist.
Das "-m toto.nowhere.com" beschreibt die Gruppe von Remote-Hosts, die kontaktiert werden sollen TakTuk
und "broadcast exec [ hostname ]" ist ein Befehl, der vom TakTuk
Dolmetscher.
Dieses Beispiel kann auf viele andere Arten geschrieben werden. Im interaktiven Modus das gleiche
Ausführung könnte werden:
taktuk -m toto.nowhere.com
HIER TakTuk ist blockiert beim Warten auf Befehle von stdin. Wir müssen also nur eingeben:
Broadcast-Exec { Hostname }
Strg-D
hier können Sie feststellen, dass Parameter für die "exec" TakTuk Befehl (wie alle Befehle
Parameter) kann in jedes sinnvolle Paar von Trennzeichen eingeschlossen werden. Wir könnten auch schreiben
die Liste der am Befehl beteiligten Hosts in einer Datei "machine", die Folgendes enthält:
toto.nirgendwo.com
und den TakTuk Befehl wird:
taktuk -f Machine Broadcast Exec - Hostname -
Wir könnten auch eine andere Datei "Optionen" verwenden, die Folgendes enthält:
-f Maschine
und verwenden Sie es als die Optionszeile für TakTuk:
taktuk -F Optionen Broadcast Exec \(Hostname\)
Schließlich könnte alles in einer letzten Datei "command_line" gespeichert werden, die enthält:
-f Maschinen-Broadcast-Exec = Hostname =
und der folgende Befehl führt zum gleichen Ergebnis:
taktuk -F Befehlszeile
Alle diese Varianten haben den gleichen Effekt: Sie führen "hostname" auf . aus
"toto.nowhere.com" und die Ausgabe des Programms wird an den localhost weitergeleitet. In
dieser Fall:
toto.nowhere.com: Hostname: somepid: Ausgabe > toto.nowhere.com
Parameter Hosenträger
Beachten Sie, dass geschweifte Klammern für Befehlsparameter von ihrem Inhalt getrennt werden müssen. Daher,
sie können andere geschweifte Klammern enthalten, solange keine einzelne schließende Klammer Teil der
Inhalt:
taktuk -m localhost Broadcast exec [ 'if [ $RANDOM -gt 10000 ];dann Echo größer;sonst Echo niedriger;fi' ]
In diesem Beispiel sind Anführungszeichen erforderlich, um zu verhindern, dass die Shell das "$" interpretiert.
und ";" Zeichen und um zu verhindern, dass die schließende Klammer für "if"-Zehe als
Schließen des Befehls "exec". In diesem Fall wird die Variable nur interpoliert auf
entfernte Hosts. Das gleiche Beispiel kann auch mit Shortcuts und Intercative ausgedrückt werden
Modus:
taktuk -m localhost -E%
dann tippe:
be [ if [ $RANDOM -gt 10000 %];then Echo größer;sonst Echo niedriger;fi ]
Strg-D
Beachten Sie die im Test verwendete schließende Klammer, die nicht als interpretiert werden sollte
schließende Klammer für "exec"-Argumente. In einem solchen Fall ist es wahrscheinlich eine einfachere Lösung,
Verwenden Sie eine andere Art von Zahnspange
taktuk -m lokaler Host
und dann:
be { if [ $RANDOM -gt 10000 ];then echo größer;else echo niedriger;fi }
Strg-D
Wenn Sie auf Nummer sicher gehen möchten, können Sie normalerweise alle Befehlsparameter in Anführungszeichen setzen. Nichtsdestotrotz,
Beachten Sie, dass Parameter im interaktiven Modus nicht in Anführungszeichen gesetzt werden sollten, da Eingabezeilen dies nicht sind
von der Schale interpretiert.
exec Parameter
Befehle ausgeführt von TakTuk kann mit "exec"-Parametern ein Zeitlimit überschritten werden. Zum Beispiel, wenn
Sie möchten einen Befehl ausführen und ihm nach zwei Sekunden ein TERM-Signal senden, einfach
Art:
taktuk -m localhost Broadcast-Exec-Timeout 2 [ sleep 10 ]
der Callback, der bei einem Timeout ausgeführt wird, kann auch etwas anderes als ein TERM . sein
Signal. Dies kann ein anderes Signal sein (zum Beispiel KILL):
taktuk -m localhost Broadcast-Exec-Timeout 2 kill 9 [ sleep 10 ]
oder irgendeine gültige TakTuk Befehl:
taktuk -m localhost Broadcast Exec Timeout 2 Aktion Broadcast Exec [ echo hallo ] [ sleep 10 ]
oder sogar mehrere Timeouts und mehrere Rückrufe:
taktuk -m localhost bet 2 ae [ echo hallo ] k 30 t 10 k 9 [ sleep 5 ]
in diesem letzten Beispiel wird der Befehl "sleep 5" ausgeführt von TakTuk. Nach 2 Sekunden,
das erste Timeout wird ausgelöst, es wird den Befehl "echo hello" ausführen und senden
ein USR1-Signal an den ersten Befehl ("sleep 5"). Das zweite Timeout ist auf 10 . eingestellt
Sekunden. Daher wird es nie vorkommen, da der Befehl "sleep 5" vorher beendet wird
sein Ablauf.
Topologie
Gewöhnlich, TakTuk setzt sich selbst mit einem relativ flachen Baum ein, da sein Standardfenster
Größe ist ziemlich groß (10 gleichzeitige laufende Verbindungen). Verwenden eines kleineren Fensters
Größe führt zu einem tieferen Baum, obwohl dies auch von der lokalen Belastung des
Bereitstellungsknoten. Du kannst den ... benutzen TakTuk Befehl "network state" zum Drucken des Baums
gebaut von TakTuk.
Beachten Sie, dass es normalerweise eine schlechte Idee ist, ein zu großes Fenster zu verwenden, da dies zu
viel lokale Belastung und schlechte Arbeitsverteilung (etwa 10 ist oft ausreichend).
Sie können auch erzwingen TakTuk um spezifischere Topologien zu verwenden. Zum Beispiel ausführen
"echo $$" verwendet einen Flat-Tree als Bereitstellungstopologie, deaktivieren Sie einfach das Arbeitsstehlen in
TakTuk:
taktuk -d -1 -m host1 -m host2 -m host3 Broadcast-Exec [ 'echo $$' ]
und um eine kettenartige Topologie zu verwenden, codieren Sie die Topologie entweder in die Argumentstruktur:
taktuk -m host1 -[ -m host2 -[ -m host3 -] -] Broadcast-Exec [ 'echo $$' ]
oder begrenzt die Stelligkeit des dynamischen Baums auf 1:
taktuk -d 1 -m host1 -m host2 -m host3 Broadcast-Exec [ 'echo $$' ]
Schließlich verwendet der Standard eine dynamisch konstruierte Topologie:
taktuk -d 0 -m host1 -m host2 -m host3 Broadcast-Exec [ 'echo $$' ]
leicht Gitter Einsatz
Auf einem Lightweight-Grid, aufgrund von Lokalitätsproblemen (ldap-Cache, Netzwerktopologie, ...)
Es erscheint interessant, die Bereitstellung jedes Subclusters zu trennen. Dazu ist es
möglich, die Knoten jedes Clusters in eine separate Bereitstellungsgruppe einzuschließen:
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 Broadcast exec [ Hostname ]
Dieser Befehl hat die Wirkung der Bereitstellung TakTuk auf zwei Clustern (Cluster 1 und 2) gemacht
von vier Knoten (Knoten 1 bis 4), wodurch verhindert wird, dass bereitgestellte Knoten aus einem Cluster verwendet werden, um
Bereitstellen von Knoten aus dem anderen Cluster. Schließlich, sobald die Bereitstellung abgeschlossen ist, ist es
führt auf all diesen Knoten den Befehl "hostname" aus.
Ausführung a deutlich Befehl on jeder Gastgeber
jedem einzelnen Host kann mit Argumenten ein eigener Befehl gegeben werden:
./taktuk -m host1 -[ exec [ hostname ] -] -m host2 -[ exec [ id ] -] -m host3 -[ exec [ 'echo $TAKTUK_RANK; ls' ] -] aufhören
dies könnte aber auch durch Mengenangabe gegeben sein (in diesem Fall sind logische Zahlen
für Hosts verwendet):
./taktuk -m host1 -m host3 -m host8 1 exec [ hostname ], 2 exec [ id ], 3 exec [ 'echo $TAKTUK_RANK; ls' ]
oder im interaktiven Modus:
./taktuk -m host1 -m host3 -m host8
1 Exec [ Hostname ]
2 ausführende [ id ]
3 exec [echo $TAKTUK_RANK; ls ]
Strg-D
Beachten Sie jedoch, dass diese logischen Zahlen im Allgemeinen nicht mit den
Position von Hosts auf der Kommandozeile.
Skript Rundfunk
Verbreitung und Ausführung eines Perl-Skripts namens "essai.pl" auf drei Hosts, in dem Wissen, dass
"taktuk" und "essai.pl" sind nur auf dem Root-Knoten vorhanden ist unkompliziert mit
TakTuk:
Taktuk -s -m host1 -m host2 -m host3
Broadcast-Exec [perl ---]
Broadcast-Eingabedatei [essai.pl]
Broadcast-Eingang schließen
Strg-D
Dateien Rundfunk und der Abholung
seit Version 3.4 wird die Dateiübertragung direkt von TakTuk unterstützt. Beachten Sie, dass dies
Übertragung verwendet die TakTuk Netzwerk (normalerweise ein Baum bestehend aus SSH-Verbindungen von
Ursprünglich). Dieses Netzwerk ist für die Übertragung großer Dateien (beide
topologisch und aus protokollarischer Sicht), also behalte dies bei der Verwendung im Hinterkopf
-Funktion
Kopieren einer Datei namens "message.txt" in die "/ Tmp"Verzeichnis jedes entfernten Hosts ist also
so leicht wie:
Taktuk -s -m host1 -m host2 -m host3
Broadcast setzen [ Nachricht.txt ] [ / Tmp ]
Strg-D
aber die ältere Methode funktioniert immer noch (und macht fast dasselbe wie der vorherige Befehl):
Taktuk -s -m host1 -m host2 -m host3
Broadcast-Exec [ cat - >/tmp/message.txt ]
Broadcast-Eingabedatei [message.txt]
Broadcast-Eingang schließen
Strg-D
obwohl es bei der Eingabe erforderlich ist, bei der Shell-Interpretation vorsichtiger zu sein
alles direkt auf der Kommandozeile:
taktuk -s -m host1 -m host2 -m host3 Broadcast-Exec [ 'cat - >/tmp/message.txt' ]\;Broadcast-Eingabedatei [ message.txt ]
Beachten Sie in diesem letzteren Befehl, dass die "Eingabe schließen" nicht erforderlich ist, da TakTuk schließt
Eingaben aller erzeugten Befehle beim Beenden.
der "get"-Befehl macht auch Dinge möglich, die vorher sehr schwierig waren in
TakTuk, Dateien sammeln. Der folgende Befehl holt die Datei "/tmp/message.txt" von
jeden Remote-Host und kopiert sie lokal nach "message-number.txt", wobei "number" die
logischer Rang des Quellknotens:
Taktuk -s -m host1 -m host2 -m host3
Broadcast get [ /tmp/message.txt ] [ message-$rank.txt ]
Strg-D
Schließlich scheint es wichtig zu erwähnen, dass "put/get"-Befehle Verzeichnisse kopieren können
und behalten Sie die Dateiberechtigungen unverändert bei.
Kommunikation
TakTuk kann auch zum Aufbau einer Punkt-zu-Punkt-Kommunikation verwendet werden. Angenommen, die Datei
"communication.pl" enthält das folgende Perl-Skript:
mein $rank = TakTuk::get('rank');
my $count = TakTuk::get('count');
wenn ($Rang == 1)
{
print "Ich bin Prozess 1\n";
if ($count > 1)
{
TakTuk::send(to=>2, body=>"Hallo Welt");
}
}
elsif ($rank == 2)
{
print "Ich bin Prozess 2\n";
mein ($from, $message) = TakTuk::recv();
print "$verarbeiten, um $nachricht von $von\n erhalten zu haben";
}
dann die Ausführung des folgenden Befehls:
taktuk -m localhost -m localhost Broadcast taktuk_perl [ - ]\;Broadcast-Eingabedatei [ communication.pl ]
würde eine Ausgabe ähnlich der folgenden erzeugen:
Astaroth.local: taktuk_perl: 3523: Ausgabe > Ich bin Prozess 2
Astaroth.local: taktuk_perl: 3523: Ausgabe > Prozess 2 empfangen Hallo Welt von 1
Astaroth.local: taktuk_perl: 3523: Status > 0
Astaroth.local: taktuk_perl: 3524: Ausgabe > Ich bin Prozess 1
Astaroth.local: taktuk_perl: 3524: Status > 0
wenn die Datei "communication.pl" im Login-Verzeichnis des Benutzers abgelegt wurde, ist dies
hätte auch einfacher ausgeführt werden können:
taktuk -m localhost -m localhost Broadcast taktuk_perl [ communication.pl ]
Möglichkeiten für das Ausgangssignal: Vorlagen und Umleitungen
TakTuk ist auch in der Lage, jede Site ihren Rang ohne Befehlsstatus wiederzugeben
Informationen:
taktuk -o status -m host1 -m host2 Broadcast-Exec [ 'echo $TAKTUK_RANK' ]
oder Entfernen der Eingabeaufforderung vor jeder Ausgabezeile von Befehlen:
taktuk -o output='"$line\n"' -m host1 -m host2 Broadcast-Exec [ 'echo $TAKTUK_RANK' ]
oder sogar die Eingabeaufforderung ändern, damit nur der Stream-Typ angezeigt wird:
taktuk -o default='"$type > $line\n"' -m host1 -m host2 Broadcast Exec [ 'echo $TAKTUK_RANK' ]
und es ist auch möglich, den Status nur für den zweiten auf den Dateideskriptor 2 umzuleiten
host:
taktuk -m host1 -R status=2 -m host2 Broadcast-Exec [ 'echo $TAKTUK_RANK' ]
und so weiter...
Entwickler:in / Unternehmen Verwendung
Debugging TakTuk
Debugging in TakTuk erfolgt mit den Funktionen "Debug", "Warnung" und "Fehler" der
Paket "Diagnostik". Diese Routinen, abhängig vom Debug-Level des Pakets
in denen sie aufgerufen werden, eine Ausgabe erzeugen, die bis zum Wurzelknoten propagiert wird und
auf dem Bildschirm gedruckt.
Standardmäßig ist der Debug-Level von Paketen auf 2 gesetzt (alles wird ausgedruckt
außer "Debugging"-Meldungen). Es kann für jedes Paket mit der geändert werden -D .
Zum Beispiel führt der folgende Code "true" auf "toto.nowhere.com" aus und gibt aus
jedes bisschen interne Nachrichten:
taktuk -D default=1 -m toto.nowhere.com Broadcast Exec [ true ]
aber man hätte den gleichen Befehl ausführen können, nur Nachrichten von der
Paket "Scheduler":
taktuk -D scheduler=1 -m toto.nowhere.com Broadcast Exec [ true ]
oder Sicherstellung einer von Warn- oder Fehlermeldungen befreiten Ausführung:
taktuk -D default=4 -m toto.nowhere.com Broadcast Exec [ true ]
intern Nachrichten Server
der interne Nachrichtenserver, der in verwendet wird TakTuk für die Verwaltung von logischen Netzwerken
Konstruktion, Befehlsausführung und E/A-Weiterleitung können mithilfe der -r
Option:
taktuk-r
Beachten Sie, dass in diesem Modus das Verhalten von TakTuk kann sehr kryptisch wirken. Das ist nicht
für normale Benutzer bestimmt.
Verwenden Sie taktuk online mit den onworks.net-Diensten