Ito ang command taktuk na maaaring patakbuhin sa OnWorks free hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
TakTuk - isang tool para sa malakihang pag-deploy ng remote execution
SINOPSIS
taktuk [-behinsvzMP] [-c connector] [-d limitasyon] [-f filename] [-g tagal] [-l mag log in] [-m
hostname [-[ args... -]]] [-o stream=template] [-t timeout] [-u limitasyon] [-w laki] [-B
parameter=expression] [-C mga separator] [-E karakter] [-F filename] [-G hostname [-[ mga pagtatalo
... -]]] [-L hostname] [-I interpreter] [-O mga separator] [-R stream=filename] [-S mga file]
[-T utos] [-V landas ] [-W scheme] [mga utos ... ]
DESCRIPTION
TakTuk ay isang tool para sa pagsasahimpapawid ng malayuang pagpapatupad ng isang ore higit pang mga utos sa isang set
ng isa o higit pang malalayong makina. TakTuk pinagsasama ang lokal na parallelization (gamit ang concurrent
mga proseso ng deployment) at pamamahagi ng trabaho (gamit ang adaptive work-stealing algorithm) sa
makamit ang pareho Kakayahang sumukat at husay.
TakTuk ay partikular na angkop sa mga interactive na gawain na kinasasangkutan ng ilang malalayong makina at
parallel remote executions. Ito ang kaso ng clusters administration at parallel
pag-debug ng programa.
TakTuk nagbibigay din ng isang pangunahing layer ng komunikasyon sa mga programang pinaandar nito. Ito
ginagamit ng layer ng komunikasyon ang imprastraktura ng komunikasyon na itinakda ni TakTuk sa panahon nito
deployment. Ito ay magagamit pareho para sa Perl at C na mga wika at inilalarawan sa
TakTuk(3) at taktukcomm(3) ayon sa pagkakabanggit.
Opsyon
Ingat, sa TakTuk ang mga opsyon ay na-parse sa pagkakasunud-sunod na ibinigay sa command line. Ibig sabihin nito
na TakTuk ay hindi sumusunod sa POSIX tungkol sa order ng mga opsyon. Ito ay mahalaga bilang ilan sa
binabago ng mga pagpipilian ang pag-uugali ng mga sumusunod (at ang mga ito lamang - hal -l naaangkop
sa pagsunod -m mga pagpipilian). Ang mga default na setting ng TakTuk maaaring makuha sa pamamagitan ng paggamit ng
"--print-defaults" na opsyon. Ang mga sumusunod na opsyon ay ibinibigay ayon sa kategorya sa alpabetikong
order.
KAPANGYARIHAN Opsyon
-b
--simulan-grupo
nagsisimula ng bagong deployment group. Parehong gumaganap ang isang deployment group bilang isang konteksto para sa karamihan
mga opsyon (ang mga opsyon na itinakda sa loob ng isang grupo ay walang epekto sa labas ng grupo) at bilang isang
paghihiwalay para sa pag-iiskedyul ng mga gawain sa pag-deploy (ang mga gawain sa pag-deploy sa loob ng isang grupo ay hindi maaaring
ninakaw ng mga node na naka-deploy sa ibang mga grupo).
-c konektor
--konektor konektor
tumutukoy sa command ng connector na ginamit upang makipag-ugnayan sa mga sumusunod na remote na makina.
-d limitasyon
--dynamic limitasyon
i-on o i-off ang dynamic na mode (pagnanakaw ng trabaho) para sa pag-deploy ng lahat ng sumusunod
mga detalye ng remote na makina. Kung positibo o null ang "limitasyon", TakTuk ay gumagamit ng
dynamic na mode na may halaga nito bilang pinakamataas na arity (0 = walang pinakamataas na arity). Isang negatibo
pinapatay ng value para sa "limit" ang dynamic na mode. babala, sa kasalukuyan ay isang masamang ideya na gamitin
ilang -d na opsyon na may mga positibong halaga sa parehong command line.
-e
--end-group
nagtatapos sa isang deployment group.
-f filename
--machine-file filename
Ang "filename" ay ang pangalan ng isang file na naglalaman ng mga pangalan ng remote machine (katumbas ng
ilang "-m" na mga opsyon). Sa bawat linya ng file na ito, ang unang salita ay itinuturing bilang a
pangalan ng makina at ang natitira bilang mga komento.
-l login
--mag log in login
nagtatakda ng login name para sa mga sumusunod na host. Ipinapalagay nito na ang command ng connector
tumatanggap ng "-l" na opsyon (ito ang kaso para sa ssh, ang default).
-m hostname
--makina hostname
Ang "hostname" ay ang pangalan ng isang remote na makina kung saan TakTuk kailangang i-deploy.
Maaaring naglalaman ang "hostname" ng listahan ng mga value na tinukoy sa loob ng mga bracket at listahan ng pagbubukod
(tingnan ang "HOSTNAMES SPECIFICATION"). Sa ganitong kaso, ang depolyment ay isasagawa sa lahat
ang magkatugmang mga host. Ang pagpipiliang ito ay maaaring sundan ng anumang bilang ng mga argumento na nakapaloob
sa pagitan ng "-[" at "-]" na ipapadala bilang mga argumento ng remote TakTuk na
ipapatupad sa lahat ng target na host.
-s
--magpalaganap ng sarili
nagpapalaganap ng TakTuk maipapatupad sa pamamagitan ng mga sumusunod na konektor at sa gayon ay inaalis
ang pangangailangan para sa a TakTuk pag-install sa mga malalayong makina.
-z
--huwag-magpalaganap ng sarili
kinansela ang isang nauna -s pagpipilian.
-F filename
--args-file filename
Ang "filename" ay ang pangalan ng isang file na naglalaman ng mga karagdagang opsyon para sa TakTuk. ang
Ang pag-parse ng file ay tapos na kapag nakatagpo ng opsyong ito.
-G hostname
--gateway hostname
katulad ng -m hostname, maliban na ang (mga) na-deploy na node ay itinuturing na forward-only
node: hindi sila mabibilang at hindi ma-target ng kasunod na diffusion
mga utos. Bilang pagbubukod, ang pagpapatupad ng TakTuk Ang mga utos sa mga node na iyon ay pa rin
posible sa pamamagitan ng pagbibigay sa kanila bilang mga argumento sa pag-deploy ng -G pagpipilian.
-I utos
--perl-interpreter utos
Ang "command" ay ang pangalan ng command na gagamitin bilang Perl interpreter kapag auto
nagpapalaganap o kapag gumagamit ng "taktuk_perl" na utos.
-L hostname
--localhost hostname
binabago ang pangalan ng localhost ayon sa pagtingin ni TakTuk.
-S file
--Magpadala ng mga file file
ibinibigay sa TakTuk isang listahan ng mga file na ipapadala sa matagumpay na malayuang koneksyon. Gamitin
nang may pag-iingat dahil ito ay magpapabagal sa pag-deploy (ang mga file ay inililipat bago matapos
ng deployment). Ang nilalayong paggamit ay HINDI upang ilipat ang mga file ng data ng aplikasyon (sa halip
gamitin ang "put" na utos upang ilipat ang mga naturang file). Ang pagpipiliang ito ay dapat gamitin upang ilipat
mga file na kinakailangan upang magsagawa ng karagdagang mga koneksyon mula sa malayong node. "mga file"
ay isang listahan na pinaghihiwalay ng kuwit ng mga pares na "local_file:remote_file". Tungkol sa paglipat
mismo, ito ay kumikilos bilang "put" na utos.
-T utos
--taktuk-utos utos
"utos" ang pangalan ng TakTuk command (default ay $0, ang pangalan na ginamit upang ilunsad
TakTuk). Ito ang utos na ginamit sa sandaling nakakonekta upang simulan ang remote TakTuk engine.
Tandaan na ang epekto ng switch na ito ay walang bisa kapag ginagamit ang opsyong "-s".
-V listahan
--path-value listahan
itakda ang PATH environment variable sa ibinigay na listahan (gaya ng dati, isang colon na pinaghihiwalay
listahan ng mga direktoryo) sa mga malalayong host kung saan TakTuk nag-uugnay. Ito ay ginanap nang napaka
maaga at isinasaalang-alang kahit para sa "taktuk" o "perl" na mga invocation sa koneksyon
time.
COMMAND LINE PAG-PARSING Opsyon
-C itinakda ang mga separator
--command-separator itinakda ang mga separator
pinapalitan ang default na set ng mga character na naghihiwalay ng sunud-sunod TakTuk utos.
-E katangian
--escape-character katangian
ay tumutukoy sa isang escape character na maaaring gamitin upang protektahan ang sinumang sumusunod na character mula sa
TakTuk interpretasyon. Nalalapat ang proteksyong ito halos sa kabuuan TakTuk utos
linya.
-O itinakda ang mga separator
--opsyon-separator itinakda ang mga separator
pinapalitan ang default na set ng mga character na naghihiwalay sa magkakasunod na salita kapag nagbabasa
mga opsyon at utos mula sa isang file (gamit ang "-F" switch).
I / O Opsyon
-o stream=template
--output-template stream=template
nagtatakda ng detalye ng template ng output para sa isa sa mga stream ng output na idinisenyo ng ibinigay
pangalan. Kapag nagbibigay lang ng pangalan ng stream (walang template) hindi nito pinapagana ang stream.
Kasama sa mga available na stream ang:
"connector" (mga error mula sa connector command)
ang stream na ito ay naglalaman ng $line na impormasyon na na-output sa stderr ng isang connector
utos. Kasama sa mga nauugnay na field ang $host, $peer at iba pang nakalista sa ibaba.
"error", "output" (error at output ng malayuang naisakatuparan na mga utos)
ang mga stream na ito ay naglalaman ng $line na impormasyon na na-output sa pamamagitan ng executed command sa stdout
o stderr (ayon sa pagkakabanggit). Kasama sa mga nauugnay na field ang $host, $command, $pid at iba pa
na nakalista sa ibaba.
"impormasyon" (pangkalahatang impormasyon gaya ng buod ng tulong o bersyon)
ang stream na ito ay naglalaman ng impormasyon sa $line na inilabas ng taktuk bilang tugon sa
mga command gaya ng "help" o "version".
"mensahe" (mga mensahe mula sa mga tumatakbong proseso)
bawat output ng stream na ito ay naglalaman sa $line ng mensaheng ipinadala na may target na "output"
(sa pamamagitan ng TakTuk out-of-band na mga pasilidad ng komunikasyon) ng ilang prosesong sinimulan
paggamit TakTuk mga utos. Kasama sa mga nauugnay na field para sa stream na ito ang $from at $to and
iba pang nakalista sa ibaba.
"estado" (panloob na estado ng halimbawa ng TakTuk)
ang stream na ito ay naglalaman sa $line ng code ng pagbabago ng estado na tumutugma sa ilan TakTuk Mga kaganapan.
Ang mga code ay ang mga sumusunod:
0 - Handa na ang TakTuk
1 - Ang TakTuk ay binibilang
2 - Tinapos ang TakTuk
3 - nabigo ang koneksyon
4 - nasimulan ang koneksyon
5 - nawala ang koneksyon
6 - nagsimula ang utos
7 - nabigo ang utos
8 - winakasan ang utos
9 - nabigo ang pag-update ng pagnunumero
10 - nagsimula ang input ng pipe
11 - nabigo ang input ng pipe
12 - natapos ang input ng pipe
13 - nagsimula ang pagtanggap ng file
14 - nabigo ang pagtanggap ng file
15 - winakasan ang pagtanggap ng file
16 - Nabigo ang pagpapadala ng file
17 - Di-wastong target
18 - Walang target
19 - Naihatid ang mensahe
20 - Di-wastong destinasyon
21 - Hindi na available ang destinasyon
22 - Maghintay ng kumpleto
23 - Maghintay bawasan kumpleto
Ang function na event_msg($) ay maaaring gamitin sa template upang isalin ang code na ito
isang string na naglalarawan sa kaganapan. Kasama sa mga nauugnay na field ang $host, $position,
$rank, $count at iba pang nakalista sa ibaba.
"status" (nag-uutos ng exit status)
ang stream na ito ay naglalaman sa $line ng return code ng mga executed command. Kaugnay
kasama sa mga field ang $host, $pid at iba pang nakalista sa ibaba.
"taktuk" (mga panloob na mensahe, babala at error)
ang stream na ito ay naglalaman ng error sa $line, mga mensahe ng babala at pag-debug na inilabas ni TakTuk
mismo. Kasama sa mga nauugnay na field ang $line_number, $package at iba pang nakalista sa ibaba.
ang isang template ay isang Perl expression na dapat suriin sa string sa kalaunan
ipinapakita. Sa loob ng isang detalye, maaaring gamitin ang ilang variable depende sa
nag-aalalang stream:
$command (hindi para sa "taktuk" o "impormasyon")
ang command line execution na nakabuo ng output.
$count
ang kabuuang bilang ng TakTuk mga pagkakataon
$eol
isang walang laman na string o isang bagong linya depende sa kung anong character ang natapos na output ng command.
$filename ("taktuk" lang)
ang file kung saan a TakTuk diagnostic function ay tinatawag na.
$from ("mensahe" lamang)
ang lohikal na numero ng TakTuk halimbawa kung saan ipinadala ang mensahe.
$host
ang pangalan ng host na nagpapatupad ng kasalukuyang TakTuk halimbawa
$init_date ("konektor" at "estado" lamang)
ang oras sa mga segundo mula noong Enero 1, 1970 kung saan ang remote TakTuk halimbawa
nakumpleto ang pagsisimula nito (kabilang ang oras ng koneksyon ng ssh at pagpapalaganap ng sarili
kung mayroon man).
$level ("taktuk" lang)
ang antas ng diagnostic function na tinatawag.
$level_name ("taktuk" lang)
ang pangalang nauugnay sa antas ng diagnostic function na tinatawag.
$linya
ang raw data na inilabas ng isang command o ipinasa sa isang diagnostic function, anuman
inalis ang sumusunod na bagong linya (tingnan ang $eol).
$line_number ("taktuk" lang)
ang numero ng linya kung saan a TakTuk diagnostic function ay tinatawag na.
$package ("taktuk" lang)
ang pakete kung saan a TakTuk diagnostic function ay tinatawag na.
$peer ("konektor" at "estado" lamang)
ang malayuang makina kung saan naglabas ng impormasyon ang isang command ng connector.
$peer_position ("konektor" at "estado" lamang)
posisyon sa command line ng remote host. Ang posisyong ito ay ipinahayag bilang a
path sa hierarchy ng mga host na ipinahayag sa command line (dot separated
numero ng posisyon sa bawat antas ng imbrication).
$peers_given ("estado" lamang)
isang hiwalay na espasyo na listahan ng mga malalayong node na ibinigay sa malayong peer para sa
deployment (anuman ang kanilang deployment state). Ang bawat malayong node ay tinukoy bilang a
colon separated couple na ginawa ng hostname nito at ang posisyon nito sa command line.
May makabuluhang value lang ang variable na ito kapag na-output ang event sa stream
Ang "estado" ay isang pagkawala ng koneksyon (numero 5 ng kaganapan).
$pid (hindi para sa "taktuk" o "impormasyon")
ang pid ng command line na naisakatuparan (na gumawa ng output).
$posisyon
posisyon sa command line ng kasalukuyang host. Ang posisyong ito ay ipinahayag bilang a
path sa hierarchy ng mga host na ipinahayag sa command line (dot separated
numero ng posisyon sa bawat antas ng imbrication).
$ranggo
ang lohikal na bilang ng TakTuk halimbawa kung saan nakolekta ang output.
$reply_date ("konektor" at "estado" lamang)
ang oras sa mga segundo mula noong Enero 1, 1970 kung saan tumugon ang command ng connector
ang lokal TakTuk halimbawa (tandaan na hindi kasama dito ang initialization
exange na nagaganap bago ang remote TakTuk ay itinuturing na functional).
$start_date ("output", "error", "connector" at "status")
ang oras sa mga segundo mula noong Ene. 1, 1970 kung saan nagsimula ang utos (kinuha lang
pagkatapos ng tawag sa tinidor ()).
$init_date ("konektor" at "estado" lamang)
ang oras sa mga segundo mula noong Enero 1, 1970 kung saan ang remote TakTuk nakumpleto nito
pagsisimula.
$stop_date ("konektor" at "status" lamang)
ang oras sa mga segundo mula noong Enero 1, 1970 kung saan natapos ang utos (pagkatapos ng
pagsasara ng stdout nito).
$to ("mensahe" lamang)
ang lohikal na numero (o set ng naturang mga numero) ng TakTuk halimbawa kung saan ang
naipadala na ang mensahe.
$type
ang pangalan ng output stream (connector, error, output, ...).
$user_scalar
isang scalar, pandaigdigan sa package, sa una ay sinimulan sa undef, na ang user ay
malayang gamitin para sa anumang layunin.
sa pagtatapos ng araw, sinusuri ang detalye para sa bawat linya ng kinauukulan
stream at ang resulta na naka-print sa root node. Tandaan na ang bagong linya ay kailangang idagdag
tahasan bilang "\n" sa template kung kinakailangan.
BABALA: ingatan ang iyong detalye, kung ang Perl syntax ay hindi tama ng maraming
kakila-kilabot na mga mensahe ng error sa compilation ay ipapakita at TakTuk mabibigo ang pagpapatupad.
-R stream=filename
--output-redirect stream=filename
i-redirect ang isang ibinigay na output ng stream sa isang naibigay na file (na matatagpuan sa root node). Pansinin
na ang ibinigay na filename ay sumusunod sa Perl open syntax: halimbawa, maaaring mag-redirect ang isa
sa isang file descriptor X gamit ang pangalang ">&=X". Tingnan ang opsyong "-o" para sa higit pang mga detalye tungkol sa
stream ng output.
PAGGANAP TUNING Opsyon
-B parameter=expression
--worksteal-uugali parameter=expression
mag-ingat: ang feature na ito ay dapat ituring na pang-eksperimento at maaaring alisin mula sa
mga release sa hinaharap. Pino-pino ang pag-uugali ng algorithm sa pagnanakaw sa trabaho sa pamamagitan ng pagtatakda
ilang mga parameter nito sa mga expression ng Perl. Ang mga Perl na expression na ito ay maaaring gumamit ng mga variable
$last_given at $available na ayon sa pagkakabanggit ay katumbas ng bilang ng mga gawaing ibinigay
sa isang magnanakaw noong huling beses na nagnakaw ito at sa kabuuang bilang ng natitirang mga gawain sa pag-deploy.
Ang mga magagamit na parameter ay:
pauna
ang bilang ng mga gawain na ibinigay sa isang remote TakTuk halimbawa sa unang pagkakataon na ito ay nagpadala ng a
magnakaw ng kahilingan sa lokal na host.
paglaki
ang bilang ng mga gawain na ibinigay sa isang remote TakTuk halimbawa sa bawat oras na ito ay gumaganap ng a
magnakaw sa lokal na host pagkatapos ng unang pagkakataon.
limitasyon
isang upper bound sa value na nagreresulta mula sa pagsusuri ng "growth".
-g tagal
--oras-butil tagal
itatakda sa "tagal" (sa mga segundo) ang pinakamaraming agwat sa pagitan ng mga timeout na pagsusuri (karaniwan
ang mga pagsusuri ay ginagawa nang mas madalas: sa bawat mensahe na natanggap, isang timeout ang pagsusuri ay ginawa).
-n
--no-numbering
hindi pinapagana TakTuk logical numbering at ang mga variable na "TAKTUK_COUNT" at "TAKTUK_RANK"
ay hindi tinukoy sa mga naisagawang utos. Ito ay may bentahe ng pag-alis ng global
pag-synchronize na nagaganap sa pagtatapos ng deployment at ginagawang higit pa ang deployment
mahusay.
BABALA: gamitin lamang ang opsyong ito bago ang anumang detalye ng remote na node ("-m" o "-f")
kung hindi, maaari kang makakuha ng mga seryosong isyu sa pag-synchronize TakTuk. Paggamit TakTuk punto-
to-point na komunikasyon kasama ang opsyong ito ay mabibigo at magbubunga TakTuk mga babala
-t oras
--timeout oras
nagtatakda ng timeout (sa mga segundo) para sa mga sumusunod na konektor (0 = walang timeout). Pansinin mo yan
i-override ng opsyong ito ang timeout ng connector command ("ssh" halimbawa). Kailan
ang pagkaantala ay nag-e-expire, ang utos ng connector ay pinapatay lamang.
-u limitasyon
--cache-limit limitasyon
nililimitahan ang isang bilang ng mga byte ng memorya TakTuk maaaring gamitin bilang panloob na write buffer. Para sa karamihan
mga user, ang pagtatakda ng naturang limitasyon ay isang masamang ideya : sa ilang bihirang sitwasyon maaari itong magresulta
isang deadlock sa TakTuk (sanhi ng parallel blocking writes between an application and
TakTuk mismo). Ang pagtatakda ng opsyong ito sa isang negatibong halaga ay hindi pinapagana ang limitasyon (default).
Gayunpaman, kung gagamitin mo TakTuk para maglipat ng malalaking file, dahil sa I/O bandwidth
mga pagkakaiba sa iba't ibang bahagi ng isang sistema, TakTuk Ang paggamit ng memorya ay maaaring lumaki nang masyadong malaki at
maaaring masira nang husto ang pagganap kapag nagsimulang magpalit ang system. Sa ganyan
mga sitwasyon, ang paglilimita sa laki ng panloob na cache ay mananatili TakTuk sa pangunahing memorya
at panatilihin ang pagganap.
-w laki
--window laki
nagtatakda ng paunang window sa ibinigay na laki (= lapad ng pipeline).
-W pamamaraan
--window-adaptation pamamaraan
itinatakda ang windows adaptation scheme sa numero (default ay 0, 0: walang adaptation, 1:
isinasagawa ang pagpapatupad).
IBA PA Opsyon
-M
--aking
ginagawang lokal ang susunod na opsyon (hindi minana). Nangangahulugan ito na ang susunod na opsyon ay nakatakda
para lamang sa lokal na host at hindi pinalaganap sa mga bata TakTuk mga pagkakataon. May no
epekto kung ang susunod na opsyon ay isa nang lokal.
-h
- Tumulong
nagpi-print ng maikling paglalarawan ng TakTuk sa screen.
-i
--interactive
pwersa TakTuk interactive mode kahit na pagkatapos ng ilang batch command na ibinigay sa command
linya.
-v
--bersyon
nagpi-print ng TakTuk bersyon.
-P
--print-default
ini-print ang mga default na setting na ginagamit ng TakTuk (mga variable ng kapaligiran na kinuha sa
account).
PANLOOB Opsyon
Hindi kapaki-pakinabang ang opsyong ito para sa karamihan ng mga user. Ginagamit ang mga ito alinman sa loob ng TakTuk
mismo o para sa mga layunin ng pag-unlad.
-p Pangalan ng package
--print-package Pangalan ng package
ini-print ang nilalaman ng package na "packagename" na kinuha mula sa taktuk code sa
pagpapatupad
-r
--hindi-ugat
kasalukuyan TakTuk instance ay hindi ang root node. Ito ay isang panloob na switch na ginagamit ng
nagsilang TakTuk mga pagkakataon. Ito ay karaniwang hindi kapaki-pakinabang para sa karamihan ng mga gumagamit.
-D saklaw=antas
--debug saklaw=antas
nagtatakda ng antas ng pag-debug (1..4) para sa "saklaw". Ang "saklaw" ay maaaring a TakTuk pangalan ng package o
"default" at ang pinakamababa ang antas ay mas verbose ang output.
UTOS
Pagkatapos ng pag-parse ng mga opsyon, TakTuk inaasahan ang ilang mga utos alinman sa natitira sa
command line (batch mode) o sa karaniwang input (interactive mode). Ang mga utos na ito ay
mga aksyon na gagawin ng TakTuk gamit ang lohikal na imprastraktura ng network na naka-set up sa panahon
ang deployment. Bilang default, ang mga utos ay maaaring paghiwalayin ng ; o mga bagong linya. Para sa lahat ng
command, anumang hindi malabo na prefix ay maaaring gamitin sa halip na ang kanilang buong pangalan. Sa interactive
fashion, TakTuk ay may suporta para sa "readline" (kasaysayan, pag-edit ng command line) kung naka-install sa
ang iyong system.
Kailan TakTuk ang mga utos ay tumatanggap ng mga argumento, dapat itong ilakip sa mga tugmang delimiter
(ipinahiwatig ng * sa ibaba). Sa madaling salita, ang * ay maaaring mapalitan ng alinmang hindi alphanumeric
character o sa pamamagitan ng isang pares ng magkatugmang braces, bracket o panaklong. Ang mga delimiter na ito ay dapat
ihiwalay sa kanilang nilalaman (gamit ang separator ng mga pagpipilian). Kung ang argumento ay naglalaman ng a
pagsasara ng delimiter na pinangungunahan ng isang separator, kung gayon marahil isang magandang ideya na takasan ito
(Tingnan ang -E opsyon) o upang protektahan ang buong string ng mga argumento kung ibinigay sa command line.
Naiintindihan ni Taktuk ang mga sumusunod na utos:
[ itakda detalye ] utos
Ipinapadala ang pagpapatupad ng utos sa lahat ng mga kapantay na kabilang sa ibinigay na hanay. Para sa karagdagang
mga detalye tungkol sa set na detalye, tingnan ang seksyong "SET AT MGA TARGET NA ESPESIPIKASYON".
brodkast utos
Nag-broadcast ng pagpapatupad ng command sa lahat ng malalayong peer (hindi kasama ang node
pagsisimula ng broadcast).
malungkot utos
Ipinakalat ang pagpapatupad ng utos sa lahat ng mga anak ng node na nagpapasimula ng
downcast (hindi kasama ang sarili nito).
exec mga parameter * command line *
Isinasagawa ang "command line" sa lokal na makina. Ang mga input/output ng execution ay
multiplexed at fowarded sa TakTuk ugat. Tumatanggap ang command na ito ng mga opsyonal na parameter
na nagbibigay-daan sa pag-attach ng mga callback na na-trigger ng mga timeout sa pagpapatupad ng
utos. Tingnan ang seksyong "EXEC PARAMETER" para sa higit pang mga detalye.
makuha * src * * dest *
Kinokopya ang (a) (mga) malayong pinagmulan (naroroon sa (mga) malayong node) sa isang destinasyon sa
node na nagpapatupad ng utos na ito. Ang uri ng pinagmulan at patutunguhan ay medyo magkatulad sa
ang mga tinanggap ng "cp -r" na utos (iyon ay file o mga direktoryo). Ang utos din na ito
gumaganap ng ilang uri ng magic kasama ang mga parameter nito: naroroon ang mga variable ng shell environment
sa pinagmulan o patutunguhan ang mga pangalan ay pinapalitan ng kani-kanilang halaga sa
remote at lokal na mga node. Bilang karagdagan, ang mga variable na $host, $ranggo at $posisyon ng
remote node (na pareho sa in -o opsyon) ay maaari ding gamitin sa parehong pangalan.
Tulungan
Nagpi-print ng isang napaka-maigsi TakTuk makatulong.
input [ target target ] * data *
input [ target target ] data * data *
Ipinapadala ang ibinigay na data bilang input sa mga utos sa pagpapatupad sa lokal na makina bilang
tinukoy ng ibinigay na target. Kung walang target na ibinigay, ang data ay ipapadala sa lahat
mga utos. Para sa higit pang mga detalye tungkol sa mga target, tingnan ang "Itakda AT MGA TARGETS ESPESIPIKASYON"
input [ target target ] malapit
Isinasara ang mga input descriptor ng pagpapatupad ng mga command sa lokal na makina gaya ng tinukoy
ng ibinigay na target. Kung walang target na ibinigay, ang mga input ng lahat ng mga command ay sarado.
input [ target target ] file * filename *
Nagpapadala ng nilalaman ng isang file (na dapat ay lokal sa node na nagpapatupad ng input file)
bilang input sa mga utos sa pagpapatupad sa lokal na makina gaya ng tinukoy ng ibinigay
target. Kung walang ibinigay na target, ipapadala ang data sa lahat ng mga utos.
BABALA: hindi atomic ang command na ito. Kung pinamamahalaan mo kahit papaano upang simulan ang isang input file
utos mula sa dalawang magkaibang TakTuk mga pagkakataon, ang data ay malamang na mai-interleaved. Sa
sa kasong ito dapat mong i-synchronize ang dalawang pagkakataon. Hindi ito kailangan kapag
pagkalat ng mga file lamang mula sa root node.
input [ target target ] linya * data *
Ipinapadala ang ibinigay na data na may karagdagang bagong linya bilang input sa mga utos sa pagpapatupad sa
ang lokal na makina gaya ng tinukoy ng ibinigay na target. Kung walang target na ibinigay, ang data ay
ipinadala sa lahat ng mga utos.
input [ target target ] tubo * filename *
Tratuhin ang parameter bilang isang file (na dapat ay lokal sa node na nagpapatupad ng input
pipe) kung aling pag-uugali ang kapareho ng isang pipe: ang data ay maaaring tuluy-tuloy na dumating. TakTuk idagdag
ito bilang isa sa mga channel ng input nito at magpadala ng data bilang input sa mga command kapag available. Kung
ibinigay, tinutukoy ng target kung aling utos ang ipapadala, kung hindi, ito ay
ipinadala sa lahat ng mga utos.
pumatay [ target target ]
Nagpapadala ng ibinigay na signal sa mga lokal na command na nagpoproseso ng mga grupo. Kung walang signal na ibinigay,
nagpapadala ng TERM signal (signal 15). Kung ibinigay, tinutukoy ng target kung aling utos ang
signal ay ipapadala, kung hindi, ito ay ipapadala sa lahat ng mga utos. Para sa higit pang mga detalye tungkol sa
mga target, tingnan ang "Itakda AT MGA TARGET SPECIFICATION"
mensahe [ target target ] * data *
mensahe [ target target ] data * data *
Ipinapadala ang ibinigay na data bilang isang mensahe sa mga utos na isinasagawa sa lokal na makina bilang
tinukoy ng ibinigay na target (tingnan TakTuk(3) at taktukcomm(3) para sa higit pang mga detalye tungkol sa
mga mensahe). Kung walang target na ibinigay, ang data ay ipapadala sa unang command na gumaganap a
makatanggap at hindi pa na-target ng isa pang mensahe. Para sa higit pang mga detalye tungkol sa mga target,
tingnan ang "SET AT MGA TARGET NA ESPESIPIKASYON"
mensahe [ target target ] file * filename *
Nagpapadala ng nilalaman ng isang file (na dapat ay lokal sa node na nagpapatupad ng mensahe
file) bilang isang mensahe sa mga utos sa pagpapatupad sa lokal na makina gaya ng tinukoy ng
ibinigay na target (tingnan TakTuk(3) at taktukcomm(3) para sa higit pang mga detalye tungkol sa mga mensahe). Kung hindi
target ay ibinigay, ang data ay ipinadala sa unang utos peforming isang tumanggap at hindi
na-target na ng isa pang mensahe.
BABALA: hindi atomic ang command na ito. Kung pinamamahalaan mo kahit papaano na simulan ang isang file ng mensahe
utos mula sa dalawang magkaibang TakTuk mga pagkakataon, ang data ay malamang na mai-interleaved. Sa
sa kasong ito dapat mong i-synchronize ang dalawang pagkakataon. Hindi ito kailangan kapag
pagkalat ng mga file lamang mula sa root node.
mensahe [ target target ] linya * data *
Ipinapadala ang ibinigay na data na may karagdagang bagong linya bilang isang mensahe sa mga utos na isinasagawa
sa lokal na makina gaya ng tinukoy ng ibinigay na target (tingnan TakTuk(3) at taktukcomm(3)
para sa higit pang mga detalye tungkol sa mga mensahe). Kung walang ibinigay na target, ipapadala ang data sa una
utos na gumagawa ng isang tumanggap at hindi pa na-target ng isa pang mensahe.
mensahe [ target target ] tubo * data *
Tratuhin ang parameter bilang isang filename (na dapat ay lokal sa node na nagpapatupad ng input
pipe) kung aling pag-uugali ang kapareho ng isang pipe: ang data ay maaaring tuluy-tuloy na dumating. TakTuk idagdag
ito bilang isa sa mga channel ng input nito at magpadala ng data bilang mensahe sa mga command kapag available
(Tingnan ang TakTuk(3) at taktukcomm(3) para sa higit pang mga detalye tungkol sa mga mensahe). Kung bibigyan, ang
Tinutukoy ng target kung saang utos ipapadala ang data, kung hindi, ipapadala ito sa
unang utos na gumagawa ng isang tumanggap at hindi pa na-target ng isa pang mensahe.
network
network ay
Nagpi-print ng kasalukuyang TakTuk deployment tree. Ang mga numero sa panaklong ay tumutugma sa peer rank
sa lohikal TakTuk numbering at ang peer ready na estado. Kung ang deployment ay hindi
kumpleto, ang naka-print na puno ay magpapakita ng "pagkonekta ..." dahon.
network kanselahin
Kinakansela ang lahat ng patuloy na koneksyon. Dahil dito, nagiging sanhi ito ng agarang pagsisimula ng
posibleng pagnunumero ng TakTuk mga pagkakataon at ang pagpapatupad ng TakTuk utos.
network muling bilang
Ganap na recompute ang lohikal na pagnunumero ng TakTuk mga pagkakataon. Lalo na ito
kapaki-pakinabang kapag nagdaragdag ng mga bagong node sa naka-deploy na network pagkatapos ng paunang pagnunumero.
network update
Ina-update ang lohikal na pagnunumero ng TakTuk mga pagkakataon nang hindi nagbabago na mayroon na
numero. Hindi palaging nagtatagumpay bilang TakTuk gumagamit ng depth first scheme para sa pagnunumero.
Nagpapadala ng kaganapan 9 sa stream na 'estado' para sa bawat node ng puno na hindi maaaring
na-update habang pinapanatili TakTuk scheme ng pagnunumero. Ito ay lalong kapaki-pakinabang kapag nagdadagdag
mga bagong node sa naka-deploy na network pagkatapos ng paunang pagnunumero.
opsyon pangalan * halaga *
opsyon *linya*
Alinman sa pagbabago ng isang opsyon kung saan ang pangalan ay ibinigay (unang anyo) o pag-parse ng isang
karagdagang linya ng mga opsyon (pangalawang anyo) sa (mga) node na nagpapatupad ng utos na ito. Tingnan mo
TakTuk mga opsyon para sa higit pang mga detalye, maaaring maikli o mahaba ang pangalan sa unang anyo.
BABALA: idinagdag ang mga bagong node sa TakTuk network gamit ang command na ito ay hindi binibilang.
Ang karagdagang paggamit ng network renumbering o update ay kinakailangan upang makakuha TakTuk lohiko
pagnunumero.
ilagay * src * * dest *
Kinokopya ang isang lokal na pinagmulan (naroroon sa node na nagpapatupad ng command na ito) sa isang destinasyon sa
lahat ng malalayong node na ibinigay bilang prefix ng command. Ang uri ng pinagmulan at
ang patutunguhan ay halos kapareho sa mga tinanggap ng "cp -r" na utos (iyon ay file o
mga direktoryo). Gumaganap din ang utos na ito ng ilang uri ng mahika kasama ang mga parameter nito: shell
ang mga variable ng kapaligiran na nasa pinagmulan o mga pangalan ng patutunguhan ay pinapalitan ng kanilang
kaukulang halaga sa mga lokal at malalayong node. Bilang karagdagan, ang mga variable na $host,
$ranggo at $posisyon ng lokal na node (na pareho sa in -o opsyon) ay maaari ding
ginamit sa parehong pangalan.
i-synchronize utos
Pinipilit ang ibinigay na utos na maghintay para sa pagkumpleto ng pag-deploy, pagnunumero ng mga node at
nakaraang mga utos bago isagawa. Ito ay kapaki-pakinabang para sa mga pandaigdigang utos tulad ng
"broadcast" na hindi naghihintay para sa pagnunumero ng mga node. Sa kabaligtaran, ang mga multicast na utos
(yung mga gumagamit ng set na detalye bilang prefix) hintayin ang pagnunumero ng mga node at ang
pagkumpleto ng mga nakaraang utos. Kung may pag-aalinlangan, palaging gumamit ng "i-synchronize" bago a
"broadcast", "downcast" o "wait reduce".
taktuk_perl *mga argumento*
Tinidor ang isang perl interpreter sa lokal na node na parang ang command na "exec perl
arguments" ay ginamit. Ang pagkakaiba ay ang interpreter na ito ay dati
kinuha gamit ang "taktuk" na pakete na naglalaman ng point-to-point na mga gawain sa komunikasyon
("TakTuk::send" at "TakTuk::recv", tingnan taktukcomm(3)). BABALA: dahil sa
mga limitasyon ng parser na sinusuri ang mga argumento ng utos na ito, kailangan mong gawin
magbigay ng mga argumento (kahit na walang laman) at gamitin ang '--' kung magbibigay ka ng anumang opsyon sa perl
interpreter (at kahit na bigyan mo lang ito ng mga opsyon).
bersyon
mga kopya TakTuk bersyon.
umalis
Itigil ang TakTuk engine at isara ang lohikal na network ng komunikasyon na itinatag
sa panahon ng deployment.
maghintay target target
Naghihintay (sususpindihin ang pagpapatupad ng mga sumusunod na utos) sa lokal TakTuk halimbawa para sa
ang pagkumpleto ng ilang lokal na proseso depende sa ibinigay na target. Ang target na ito ay maaaring
maging anumang target na detalye maliban sa "output". Para sa higit pang mga detalye tungkol sa mga target, tingnan ang "SET
AT MGA TARGET NA ESPESIPIKASYON".
maghintay bawasan target target
Maaari lamang gamitin sa root node. Naghihintay (sususpindihin ang pagpapatupad ng pagsunod
commands) para sa pagkumpleto ng ilang proseso sa lahat ng na-deploy TakTuk mga pagkakataon
depende sa ibinigay na target. Ang target na ito ay maaaring anumang target na detalye maliban sa
"output". Pansinin na, salungat sa simpleng "wait" commands, ang command na ito ay
naka-synchronize sa parehong paraan tulad ng "broadcast". Kaya, dapat itong tahasang i-synchronize
kung may halong hindi na-broadcast na mga utos (kung hindi, ito ay isasagawa bago sila).
EXEC MGA PARAMETERS
Ang TakTuk tumatanggap ang command na "exec" ng mga opsyonal na parameter. Ang mga parameter na ito ay ginagamit upang
tumukoy ng target na id para sa command, o upang mag-attach ng mga pagkilos na na-trigger ng mga timeout sa
pagpapatupad ng mga utos. Ang isang "exec" na utos ay tumatanggap ng anumang bilang ng mga parameter. Ang mga parameter na ito
ay binibigyang-kahulugan mula kaliwa hanggang kanan gamit ang sumusunod na syntax:
target halaga
Ilakip ang (numerical) value bilang target id ng executed command. Ang target id na ito
ay gagamitin ng anumang kasunod na utos na gumagamit ng mga target (tulad ng "input",
"mensahe", "patayin" o "maghintay").
Babala: ang halagang ito ay nag-o-overwrite sa anumang target na id na maaaring awtomatiko
itinalaga ni TakTuk. Samakatuwid, hindi inirerekomenda na paghaluin ang paggamit ng tahasan
itinalagang mga target na id gamit ang mga awtomatikong itinalagang target na id.
oras halaga
Lumilikha ng bagong detalye ng timeout. Sa pagtatapos ng tagal na ipinahayag ng ibinigay
halaga, ito ay magti-trigger sa mga naka-attach na callback nito. Kung wala itong naka-attach na callback, gagawin nito
magpadala ng TERM signal sa command. Kung ang pagpapatupad ng utos ay matatapos bago matapos
sa tagal ng timeout, kinansela ang timeout.
pumatay halaga
Mag-attach ng callback sa huling tinukoy na timeout. Ang callback na ito ay nagpapadala ng signal, na
ang numero ay ang ibinigay na halaga, sa naka-timeout na utos.
aksyon utos
Mag-attach ng callback sa huling tinukoy na timeout. Isinasagawa ng callback na ito ang ibinigay TakTuk
utos. Kung magpapatupad ito ng ibang utos, maaari nitong gamitin ang variable ng kapaligiran
"TAKTUK_PID" na naglalaman ng pid ng naka-timeout na command. Ang binigay TakTuk utos
maaaring maging anumang wasto TakTuk command (walang command separator).
Pansinin na ang bawat timeout ay maaaring magkaroon ng anumang bilang ng mga naka-attach na callback. Ipoproseso sila
sa pagkakasunud-sunod na ibinigay ang mga ito bilang mga parameter.
Kapaligiran
Variable na baguhin TakTuk default pag-uugali
Ilan sa TakTuk maaaring baguhin ang mga default na setting sa ilang host gamit ang environment
mga variable. Ang mga setting na ito ay pinalaganap tulad ng iba pang mga opsyon. Na-override sila ng
propagated na mga setting at mga opsyon sa command line.
Upang baguhin ang ilang default na setting gamitin ang variable TAKTUK_NAME saan NAME ay ang pangalan ng
ang ayon sa mahabang opsyon sa upper case at may mga gitling na pinalitan ng mga underscore. Para sa
opsyon na kumukuha ng kumplikadong halaga (tulad ng "--debug") magdagdag lamang ng underscore at ang field
gusto mong baguhin sa malaking titik sa dulo ng pangalan. Gamit ang "taktuk
--print-defaults" ay magbibigay sa iyo ng mga halimbawa ng mga pangalan na ginamit upang baguhin ang mga default na setting.
Tandaan na ang pagtukoy sa kapaligiran ng isang default na setting na hindi ginagamit ng TakTuk ay walang
epekto.
Maaari mo ring baguhin ang ilan TakTuk mga default na setting nang lokal nang hindi nagpapalaganap ng
pagbabago sa deployment tree. Upang gawin ito, gamitin ang variable TAKTUK_MY_NAME saan pangalan
ay tinukoy bilang sa itaas. Gaya ng dati, ang mga lokal na setting na ito ay na-override ng propagated
mga setting at mga pagpipilian sa command line.
Variable itakda by TakTuk in malayo naisakatuparan utos
Itinatakda ng Taktuk ang mga sumusunod na variable ng kapaligiran para sa lahat ng mga utos na ipinapatupad nito:
TAKTUK_CONTROL_READ, TAKTUK_CONTROL_WRITE
Ang mga deskriptor ng file, na ginamit sa loob ng TakTuk.
TAKTUK_COUNT
Ang kabuuang bilang ng mga matagumpay na na-deploy TakTuk mga pagkakataon
TAKTUK_HOSTNAME
Lokal na node hostname gaya ng ibinigay sa TakTuk (sa command line)
TAKTUK_PIDS
Listahan ng mga pid (na pinaghihiwalay ng mga puwang) ng mga utos na isinagawa ng lokal TakTuk
halimbawa.
TAKTUK_TARGET
Target na numero ng kasalukuyang isinasagawang proseso (tingnan ang "SET AND TARGETS
SPECIFICATION" para sa higit pang mga detalye).
TAKTUK_POSITION
Posisyon ng host sa command line.
TAKTUK_RANK
Ang lohikal na ranggo ng lokal na instance.
TAKTUK_FATHER
Ang lohikal na ranggo ng taktuk instance na nagbunga ng isang ito.
TAKTUK_CHILD_MIN
Ang lohikal na ranggo ng pinakamababang bilang na inapo mula sa kasalukuyang taktuk
instance (-1 kung walang anak ang lokal na Instance ng TakTuk).
TAKTUK_CHILD_MAX
Ang lohikal na ranggo ng pinakamataas na may bilang na inapo mula sa kasalukuyang taktuk
instance (-1 kung walang anak ang lokal na Instance ng TakTuk).
MGA HOSTNAME Detalye
Mga hostname na ibinigay sa TakTuk maaaring simpleng pangalan ng makina o kumplikadong listahan ng mga host
mga pagtutukoy. Sa pangkalahatang anyo nito, ang isang hostname ay binubuo ng isang host set at isang opsyonal
itinakda ng pagbubukod na pinaghihiwalay ng slash. Ang bawat isa sa mga set na iyon ay isang listahan ng host na pinaghihiwalay ng kuwit
mga template. Ang bawat isa sa mga template na ito ay gawa sa pare-parehong bahagi (mga character sa labas ng mga bracket)
at mga opsyonal na bahagi ng hanay (mga character sa loob ng mga bracket). Ang bawat bahagi ng hanay ay isang kuwit
pinaghiwalay na listahan ng mga pagitan o iisang halaga. Ang bawat pagitan ay binubuo ng dalawang solong halaga
pinaghihiwalay ng isang gitling. Ito ay totoo para sa lahat ng hostname na ibinigay sa TakTuk (parehong may -m or -f
mga pagpipilian).
Sa madaling salita, ang mga sumusunod na expression ay wastong mga detalye ng host:
node1
node[19]
node[1-3]
node[1-3],otherhost/node2
node[1-3,5]part[a-b]/node[3-5]parta,node1partb
sila ayon sa pagkakabanggit ay lumawak sa:
node1
node19
node1 node2 node3
node1 node3 otherhost
node1parta node2parta node2partb node3partb node5partb
Pansinin na ang listahan ng mga value na ito ay hindi mga regular na expression ("node[19]" ay "node19" at
hindi "node1, node2, ...., node9"). Ipinapatupad ang mga agwat gamit ang perl magical auto
tampok na pagtaas, kaya maaari mong gamitin ang mga alphanumeric na halaga bilang mga hangganan ng pagitan (tingnan ang perl
dokumentasyon, operator ++ para sa mga limitasyon ng auto increment na ito).
Itakda AT MGA TARGET Detalye
Ang TakTuk command line at ang routine na "TakTuk::send" ay tumatanggap ng set specification bilang
(mga) destinasyong host. Ang isang hanay na detalye ay ginawa ng mga pagtutukoy ng agwat na pinaghihiwalay ng
mga slash. Ang isang detalye ng agwat ay maaaring gawa sa isang numero, dalawang numero
pinaghihiwalay ng isang gitling o isang solong numero na sinusundan ng isang plus na simbolo (ang huling kaso na ito ay tumutugma sa
pagitan na napupunta mula sa numero hanggang sa pinakamataas na bilang TakTuk patutunguhan). Syempre
ang dalawang numero na tumutukoy sa isang pagitan ay dapat ibigay sa pagtaas ng pagkakasunud-sunod.
Ang mga malalayong peer na kasama sa isang set na detalye ay ang lahat ng peer na lohikal na numero
nabibilang sa hindi bababa sa isang pagitan ng set. Narito ang ilang mga halimbawa ng mga set na pagtutukoy:
1
ang kapantay ay may bilang na 1
2-7
ang mga kapantay ay may bilang na 2,3,4,5,6 at 7
2-4 / 1 / 10
ang mga kapantay ay may bilang na 1,2,3,4 at 10
3+
ang mga kapantay mula 3 hanggang sa pinakamataas na bilang
5 + / 1
ang mga kapantay mula 5 hanggang sa pinakamataas na bilang at ang kapantay 1
Ang target na numero ay isang numero na itinalaga ni TakTuk sa lahat ng prosesong ginagawa nito
(matagumpay na nagsimula o hindi gumagamit ng "exec" o "taktuk_perl" na mga utos). Bilang default, ito
ang numero ay nagsisimula sa 0 at napupunta sa kabuuang bilang ng mga prosesong naisakatuparan
mula nang ilunsad ang TakTuk na minus one. Mga target na proseso ng isang "TakTuk::send" o a TakTuk utos
ay maaaring ipahayag sa parehong syntax tulad ng sa kaso ng mga set.
Bukod dito, TakTuk naiintindihan ang ilang mga espesyal na target. Ang espesyal na target na "lahat" ay target
lahat ng mga proseso: nangangahulugan ito na ang utos ay inilalapat sa lahat ng nagpapatupad ng mga lokal na proseso
(Ang mensahe o data ng input ay nadoble at ipinadala sa lahat ng mga ito), ito ang default para sa
ang "input" at "kill" commands. Tina-target ng espesyal na target na "anuman" ang unang kwalipikado
proseso. Sa kaso ng isang mensahe, ito ang unang proseso na naglalabas ng "TakTuk::recv"
at hindi pa iyon ang target ng isa pang mensahe, ito ang default para sa
"mensahe" na utos. Sa wakas, ang espesyal na target na "output" ay nagta-target sa output stream
"mensahe" sa halip na isang proseso.
HALIMBAWA
Ang mga sumusunod na halimbawa ay naglalarawan ng pangunahing paggamit ng TakTuk sa ilang mga makina at ang paggamit ng
Mga pagpipilian ng nag-develop. Pansinin mo yan TakTuk ay idinisenyo upang masukat sa higit pang mga kapantay kaysa sa
bilang na kasama sa mga halimbawang ito.
Basic paggamit
simple paglawak
ang pinakasimpleng paraan ng paggamit TakTuk ay gawin itong selfpropagate na may opsyon na "-s". Dito sa
kaso, ang pangunahing remote execution ng "hostname" sa host na "toto.nowhere.com" ay maaaring
nakasulat:
taktuk -s -m toto.nowhere.com broadcast exec [ hostname ]
Sa halimbawang ito, nagtatanong ang "-s". TakTuk upang ipalaganap ang sarili nitong code sa mga malalayong host. Maaari itong maging
inalis sa pamamagitan ng pag-install ng "taktuk" na maipapatupad sa "toto.nowhere.com". Sa pamamagitan ng mga sumusunod
ipagpalagay natin iyon TakTuk ay naka-install sa lahat ng remote na host.
Ang "-m toto.nowhere.com" ay naglalarawan sa hanay ng mga malayuang host na makontak TakTuk
at ang "broadcast exec [ hostname ]" ay isang command na isasagawa ng TakTuk
interpreter.
Ang halimbawang ito ay maaaring isulat sa maraming iba pang paraan. Sa interactive na mode, pareho
ang pagpapatupad ay maaaring maging:
taktuk -m toto.nowhere.com
dito TakTuk ay naharang habang naghihintay ng mga utos mula sa stdin. Kaya, kailangan lang nating mag-type:
broadcast exec { hostname }
Ctrl-D
dito mo mapapansin na ang mga parameter sa "exec" TakTuk utos (tulad ng lahat ng mga utos
mga parameter) ay maaaring ilakip sa anumang makatwirang pares ng mga delimiter. Baka magsulat din tayo
ang listahan ng mga host na kasangkot sa command sa isang file na "machine" na naglalaman ng:
toto.nowhere.com
at ang TakTuk ang utos ay nagiging:
taktuk -f machine broadcast exec - hostname -
Maaari rin kaming gumamit ng isa pang "mga opsyon" na file na naglalaman ng:
-f makina
at gamitin ito bilang linya ng mga opsyon na ibinigay sa TakTuk:
taktuk -F options broadcast exec \( hostname \)
Sa wakas, lahat ay maaaring maimbak sa isang huling file na "command_line" na naglalaman ng:
-f machine broadcast exec = hostname =
at ang sumusunod na utos ay nakamit ang parehong resulta:
taktuk -F command_line
Ang lahat ng mga variant na ito ay may parehong epekto: ipapatupad nila ang "hostname" sa
"toto.nowhere.com" at ang output ng programa ay ipapasa sa localhost. Sa
kasong ito:
toto.nowhere.com: hostname: somepid: output > toto.nowhere.com
parameter tirante
pansinin na ang mga braces para sa mga parameter ng command ay dapat na ihiwalay sa kanilang nilalaman. kaya,
maaari silang maglaman ng iba pang braces hangga't walang solong closing brace ang bahagi ng
nilalaman:
taktuk -m localhost broadcast exec [ 'kung [ $RANDOM -gt 10000 ];then echo greater; else echo lower;fi' ]
Sa halimbawang ito, ang mga quote ay kinakailangan upang maiwasan ang shell mula sa pagbibigay-kahulugan sa "$"
at ";" mga character at upang maiwasan ang pagsasara ng brace para sa "kung" daliri ng paa ay ituring bilang
pagsasara ng "exec" na utos. Sa kasong ito, ang variable ay isasama lamang sa
malayong mga host. Ang parehong halimbawang ito ay maaari ding ipahayag gamit ang mga shortcut at intercative
mode:
taktuk -m localhost -E%
pagkatapos ay i-type ang:
maging [ kung [ $RANDOM -gt 10000 %];then echo greater; else echo lower;fi ]
Ctrl-D
Pansinin ang pagsasara ng bracket na ginamit sa pagsusulit na hindi dapat bigyang-kahulugan bilang ang
pagsasara ng bracket para sa mga "exec" na argumento. Sa ganitong kaso, ang isang mas simpleng solusyon ay malamang na
gumamit ng ibang uri ng braces
taktuk -m localhost
at pagkatapos ay:
maging { if [ $RANDOM -gt 10000 ];then echo greater; else echo lower;fi }
Ctrl-D
Karaniwan, kung gusto mong maging ligtas, maaari mong banggitin ang lahat ng mga parameter ng command. gayunpaman,
pansinin na ang mga parameter ay hindi dapat ma-quote sa interactive na mode dahil ang mga linya ng input ay hindi
binibigyang kahulugan ng shell.
exec parameter
mga utos na isinagawa ni TakTuk maaaring ma-timeout gamit ang mga parameter na "exec". Halimbawa kung
gusto mong magsagawa ng ilang utos at ipadala ito ng TERM signal pagkatapos ng dalawang segundo, lang
type:
taktuk -m localhost broadcast exec timeout 2 [ sleep 10 ]
ang callback na isinagawa kapag may timeout na nangyari ay maaari ding ibang bagay kaysa sa TERM
hudyat. Ito ay maaaring isa pang senyales (KILL halimbawa):
taktuk -m localhost broadcast exec timeout 2 kill 9 [ sleep 10 ]
o anumang may bisa TakTuk utos:
taktuk -m localhost broadcast exec timeout 2 aksyon broadcast exec [ echo hello ] [ sleep 10 ]
o kahit ilang timeout at ilang callback:
taktuk -m localhost bet 2 ae [ echo hello ] k 30 t 10 k 9 [ sleep 5 ]
sa huling halimbawang ito, ang utos na "sleep 5" ay isinasagawa ng TakTuk. Pagkatapos ng 2 segundo,
ang unang timeout ay ma-trigger, ito ay isasagawa ang command na "echo hello" at ipadala
isang USR1 signal sa unang command ("sleep 5"). Ang pangalawang timeout ay nakatakda sa 10
segundo. Kaya, hindi ito mangyayari dahil ang "sleep 5" na utos ay wawakasan bago
expiration nito.
topology
Karaniwan, TakTuk inilalagay ang sarili nito gamit ang medyo patag na puno dahil ang default na window nito
ang laki ay medyo malaki (10 sabay-sabay na patuloy na koneksyon). Gamit ang mas maliit na window
ang laki ay magreresulta sa mas malalim na puno bagama't depende rin ito sa lokal na karga ng
mga deployment node. Maaari mong gamitin ang TakTuk "network state" na utos para i-print ang puno
itinayo ni TakTuk.
Pansinin na kadalasan ay masamang ideya na gumamit ng masyadong malaking window dahil nagreresulta rin ito
maraming lokal na load at masamang pamamahagi ng trabaho (isang bagay na tulad ng 10 ay kadalasang sapat).
Maaari mo ring pilitin TakTuk upang gumamit ng mas tiyak na mga topolohiya. Halimbawa, upang maisagawa
"echo $$" gamit ang flat-tree bilang deployment topology, huwag paganahin ang pagnanakaw ng trabaho sa
TakTuk:
taktuk -d -1 -m host1 -m host2 -m host3 broadcast exec [ 'echo $$' ]
at para gumamit ng tulad-chain na topology, maaaring i-encode ang topology sa istruktura ng mga argumento:
taktuk -m host1 -[ -m host2 -[ -m host3 -] -] broadcast exec [ 'echo $$' ]
o nililimitahan ang ariy ng dynamic na puno sa 1:
taktuk -d 1 -m host1 -m host2 -m host3 broadcast exec [ 'echo $$' ]
Sa wakas, ang default ay gagamit ng isang dynamic na binuo na topology:
taktuk -d 0 -m host1 -m host2 -m host3 broadcast exec [ 'echo $$' ]
magaan ang timbang parilya paglawak
Sa isang magaan na grid, dahil sa mga isyu sa lokalidad (ldap cache, network topology, ...)
mukhang kawili-wiling paghiwalayin ang deployment ng bawat subcluster. Upang gawin ito, ito ay
posibleng ilakip ang mga node ng bawat cluster sa isang hiwalay na pangkat ng deployment:
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 ]
Ang utos na ito ay may epekto ng pag-deploy TakTuk sa dalawang cluster (cluster 1 at 2) na ginawa
ng apat na node (node 1 hanggang 4), na pumipigil sa mga naka-deploy na node mula sa isang cluster na gagamitin
mag-deploy ng mga node mula sa kabilang cluster. Sa wakas, kapag kumpleto na ang deployment, ito
nagpapatupad ng command na "hostname" sa lahat ng mga node na ito.
e-execute a naiiba utos on bawat marami
bawat natatanging host ay maaaring bigyan ng sarili nitong command gamit ang mga argumento:
./taktuk -m host1 -[ exec [ hostname ] -] -m host2 -[ exec [ id ] -] -m host3 -[ exec [ 'echo $TAKTUK_RANK; ls' ] -] huminto
ngunit ito ay maaari ding ibigay gamit ang set na detalye (sa kasong ito ang lohikal na numero ay
ginagamit para sa mga host):
./taktuk -m host1 -m host3 -m host8 1 exec [ hostname ], 2 exec [ id ], 3 exec [ 'echo $TAKTUK_RANK; ls' ]
o sa interactive na mode:
./taktuk -m host1 -m host3 -m host8
1 exec [ hostname ]
2 exec [ id ]
3 exec [ echo $TAKTUK_RANK; ls ]
Ctrl-D
Gayunpaman, tandaan na sa pangkalahatan ang mga lohikal na numerong ito ay hindi tumutugma sa
posisyon ng mga host sa command line.
script ibinobrodkast
nagkakalat at nagpapatupad ng perl script na pinangalanang "essai.pl" sa tatlong host, alam iyon
Ang "taktuk" at "essai.pl" ay naroroon lamang sa root node na diretso
TakTuk:
taktuk -s -m host1 -m host2 -m host3
broadcast exec [ perl -- - ]
broadcast input file [ essai.pl ]
malapit na ang input ng broadcast
Ctrl-D
file ibinobrodkast at koleksyon
mula noong bersyon 3.4, ang paglilipat ng mga file ay direktang sinusuportahan ng TakTuk. Pansinin na ito
ang paglipat ay gumagamit ng TakTuk network (karaniwan ay isang puno na binubuo ng mga ssh na koneksyon ni
default). Ang network na ito ay hindi mahusay para sa paglipat ng malalaking file (parehong
topologically at mula sa isang protocol point of view), kaya isaisip ito kapag ginagamit ito
tampok.
pagkopya ng file na pinangalanang "message.txt" sa "/ Tmp" ang direktoryo ng bawat malayong host ay ganito
kasingdali:
taktuk -s -m host1 -m host2 -m host3
broadcast ilagay [ message.txt ] [ / Tmp ]
Ctrl-D
ngunit ang mas lumang paraan ay gumagana pa rin (at halos pareho sa nakaraang utos):
taktuk -s -m host1 -m host2 -m host3
broadcast exec [ cat - >/tmp/message.txt ]
broadcast input file [ message.txt ]
malapit na ang input ng broadcast
Ctrl-D
bagama't kailangan nitong maging mas maingat tungkol sa interpretasyon ng shell kapag nagta-type
lahat nang direkta sa command line:
taktuk -s -m host1 -m host2 -m host3 broadcast exec [ 'cat - >/tmp/message.txt' ]\;broadcast input file [ message.txt ]
mapansin sa huling utos na ito na ang "input close" ay hindi kailangan bilang TakTuk magsasara
input ng lahat ng spawned command kapag huminto.
ginagawa rin ng "get" command ang mga bagay na dati ay napakahirap
TakTuk, pagkolekta ng mga file. Nakukuha ng sumusunod na command ang file na "/tmp/message.txt" mula sa
bawat malayong host at lokal na kopyahin ito sa "message-number.txt" kung saan ang "number" ay ang
lohikal na ranggo ng source node:
taktuk -s -m host1 -m host2 -m host3
broadcast makakuha ng [ /tmp/message.txt ] [ message-$rank.txt ]
Ctrl-D
sa wakas, tila mahalagang banggitin na ang "put/get" na mga utos ay maaaring kopyahin ang mga direktoryo
at panatilihing hindi nagbabago ang mga pahintulot ng file.
Komunikasyon
TakTuk ay maaari ding gamitin upang magtatag ng isang point-to-point na komunikasyon. Ipagpalagay ang file
Ang "communication.pl" ay naglalaman ng sumusunod na Perl script:
my $rank = TakTuk::get('rank');
my $count = TakTuk::get('count');
kung ($ranggo == 1)
{
print "I'm process 1\n";
kung ($bilang > 1)
{
TakTuk::send(to=>2, body=>"Hello world");
}
}
elsif ($ranggo == 2)
{
print "I'm process 2\n";
my ($from, $message) = TakTuk::recv();
i-print ang "Iproseso ang $upang natanggap ang $mensahe mula sa $mula\n";
}
pagkatapos ay ang pagpapatupad ng sumusunod na utos:
taktuk -m localhost -m localhost broadcast taktuk_perl [ - ]\;broadcast input file [ communication.pl ]
gagawa ng output na katulad ng:
Astaroth.local: taktuk_perl: 3523: output > I'm process 2
Astaroth.local: taktuk_perl: 3523: output > Natanggap ng Proseso 2 ang Hello world mula sa 1
Astaroth.local: taktuk_perl: 3523: status > 0
Astaroth.local: taktuk_perl: 3524: output > I'm process 1
Astaroth.local: taktuk_perl: 3524: status > 0
kung ang file na "communication.pl" ay inilagay sa login directory ng user, ito
maaaring naisakatuparan din ng mas simple:
taktuk -m localhost -m localhost broadcast taktuk_perl [ communication.pl ]
output template at mga pag-redirect
TakTuk ay may kakayahang gawin ang bawat site na echo ang ranggo nito nang walang command status
impormasyon:
taktuk -o status -m host1 -m host2 broadcast exec [ 'echo $TAKTUK_RANK' ]
o pag-alis ng prompt bago ang bawat linya ng output mula sa mga command:
taktuk -o output='"$line\n"' -m host1 -m host2 broadcast exec [ 'echo $TAKTUK_RANK' ]
o kahit na baguhin ang prompt upang ipakita lamang ang uri ng stream:
taktuk -o default='"$type > $line\n"' -m host1 -m host2 broadcast exec [ 'echo $TAKTUK_RANK' ]
at posible ring i-redirect ang status sa file descriptor 2 para lamang sa pangalawa
host:
taktuk -m host1 -R status=2 -m host2 broadcast exec [ 'echo $TAKTUK_RANK' ]
at iba pa...
Developer paggamit
pag-debug TakTuk
pag-debug sa TakTuk ay ginawa gamit ang "debug", "babala" at "error" na mga function ng
package na "diagnostic". Ang mga gawaing ito, depende sa antas ng pag-debug ng package
kung saan sila ay tinatawag na, gumawa ng isang output na propagated hanggang sa root node at
naka-print sa screen.
Bilang default, ang antas ng pag-debug ng mga pakete ay nakatakda sa 2 (lahat ay naka-print out
maliban sa mga "debug" na mensahe). Maaari itong mabago para sa bawat pakete gamit ang -D pagpipilian.
Halimbawa ang sumusunod na code ay nagpapatupad ng "true" sa "toto.nowhere.com" at nagpi-print
bawat bit ng panloob na pagmemensahe:
taktuk -D default=1 -m toto.nowhere.com broadcast exec [ true ]
ngunit ang isa ay maaaring nagsagawa ng parehong utos na pinapanatili lamang ang mga mensahe mula sa
"taga-iskedyul" na pakete:
taktuk -D scheduler=1 -m toto.nowhere.com broadcast exec [ true ]
o pagtiyak na ang pagpapatupad ay hindi kasama sa anumang babala o mensahe ng error:
taktuk -D default=4 -m toto.nowhere.com broadcast exec [ true ]
panloob mensahe server
ang panloob na server ng mensahe na ginamit sa TakTuk para sa pamamahala ng lohikal na network
construction, command execution at I/O forwarding ay maaaring ilantad gamit ang -r
opsiyon:
taktuk -r
Pansinin na sa mode na ito ang pag-uugali ng TakTuk maaaring mukhang napaka misteryoso. Hindi ito
inilaan para sa mga ordinaryong gumagamit.
Gumamit ng taktuk online gamit ang mga serbisyo ng onworks.net