DSH (Dancer's Shell) – vykdykite komandas keliuose „Linux“ kompiuteriuose


Sistemų administratoriai puikiai žino, kaip svarbu per trumpą laiką stebėti ir administruoti daugybę įrenginių, pageidautina su minimaliais fiziniais judesiais. Nesvarbu, ar tai maža debesų aplinka, ar didelė serverių grupė, galimybė centralizuotai valdyti kompiuterius yra būtina.

Norėdami iš dalies tai padaryti, parodysiu, kaip naudoti puikų įrankį, pavadintą DSH (šokėjo apvalkalas/paskirstytas apvalkalas), kuris leidžia vartotojui vykdyti komandas keliose mašinose.

Kas yra DSH?

DSH reiškia Distributed Shell arba Dancer's Shell, kuris yra laisvai prieinamas įrankis daugelyje pagrindinių Linux platinimų, bet gali būti lengvai sukuriamas iš šaltinio, jei jūsų platinimas neįtraukia jo į savo paketų saugyklą.

Įdiekite DSH (Distributed Shell) sistemoje „Linux“.

Šioje mokymo programoje mes laikysimės Debian/Ubuntu aplinkos. Jei naudojate kitą platinimą, pakeiskite atitinkamas paketų tvarkyklės komandas.

„Debian“ pagrindu sukurtuose platinimuose galite įdiegti DSH naudodami šią apt komandą terminale.

sudo apt install dsh

Jei naudojate RHEL pagrįstą platinimą, turite jį kompiliuoti iš šaltinio tar balls, bet prieš tai darydami būtinai sukompiliuokite ir įdiekite biblioteką „libdshconfig“.

wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.10.cvs.1.tar.gz
tar xfz libdshconfig*.tar.gz 
cd libdshconfig-*
./configure ; make
sudo make install

Tada sukompiliuokite dsh ir įdiekite.

wget https://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.22.0.tar.gz
tar xfz dsh-0.22.0.tar.gz
cd dsh-*
./configure ; make 
sudo make install

Kaip naudoti DSH „Linux“.

Pagrindinis konfigūracijos failas „/etc/dsh/dsh.conf“ (skirta Debian) ir „/usr/local/etc/dsh.conf >“ (skirta Red Hat) yra gana paprasta, bet kadangi rsh yra nešifruotas protokolas, naudosime SSH kaip nuotolinį apvalkalą.

Naudodami pasirinktą teksto rengyklę raskite šią eilutę:

remoteshell =rsh

ir pakeiskite į:

remoteshell =ssh

Yra ir kitų parinkčių, kurias galite pateikti čia, jei pasirinksite, ir jų daug rasite dsh man puslapyje. Kol kas priimsime numatytuosius nustatymus ir pažiūrėsime į kitą failą /etc/dsh/machines.list (skirta Debian).

Jei naudojate Red Hat pagrįstą sistemą, aplanke /usr/local/etc/ turite sukurti failą pavadinimu machines.list. katalogas.

Sintaksė čia yra gana paprasta. Tereikia įvesti įrenginio kredencialus (Pagrindinio kompiuterio pavadinimas, IP adresas arba FQDN) kiekvienoje eilutėje.

Pastaba: kai vienu metu pasiekiate daugiau nei vieną įrenginį, visuose įrenginiuose derėtų nustatyti raktu pagrįstą SSH be slaptažodžio. Tai ne tik palengvina prieigą, bet ir saugo jūsų mašiną.

Mano faile „/etc/dsh/machines.list“ arba „/usr/local/etc/machines.list“ rašoma:

172.16.25.125
172.16.25.126

Įvedę norimų pasiekti mašinų kredencialus, paleiskite paprastą komandą, pvz., „uptime“ visiems įrenginiams.

dsh -aM -c uptime

Išvesties pavyzdys:

172.16.25.125: 05:11:58 up 40 days, 51 min, 0 users, load average: 0.00, 0.01, 0.05
172.16.25.126: 05:11:47 up 13 days, 38 min, 0 users, load average: 0.00, 0.01, 0.05

Taigi, ką daro „dsh“ komanda?

Gana paprasta. Pirmiausia paleidome dsh ir perdavėme jai parinktį „-a“, kuri nurodo komandą „uptime“ siųsti į „ >VISOS“ iš mašinų, išvardytų „/etc/dsh/machines.list“.

Tada nurodėme parinktį „-M“, kuri nurodo grąžinti „mašinos pavadinimą“ (nurodyta „/etc/dsh/machines.list<““) kartu su komandos uptime išvestimi. (Labai naudinga rūšiuojant, kai vykdoma komanda daugelyje mašinų).

Parinktis „-c“ reiškia „vykdyti komandą“, šiuo atveju – „veiklos laikas“.

DSH taip pat gali būti sukonfigūruotas su mašinų grupėmis faile „/etc/dsh/groups/“, kur yra failas su įrenginių sąrašu tokiu pat formatu kaip failą „/etc/dsh/machines.list“. Kai grupėje paleidžiate dsh, po parinkties „-g“ nurodykite grupės pavadinimą.

„Red Hat“ pagrįstose sistemose turite sukurti aplanką „groups“ kataloge „/usr/local/etc/“. Tame kataloge „groups“ sukuriate failą pavadinimu „cluster“.

Pavyzdžiui, paleiskite komandą „w“ visuose įrenginiuose, išvardytuose „cluster“ grupės faile „/etc/dsh/groups/cluster “ arba „/usr/local/etc/groups/cluster“.

dsh -M -g cluster -c w

DSH suteikia daug daugiau lankstumo, o ši pamoka tik subraižo paviršių. Be komandų vykdymo, DSH gali būti naudojamas failams perkelti, programinei įrangai įdiegti, maršrutams pridėti ir dar daugiau.

Sistemos administratoriui, atsakingam už didelį tinklą, tai neįkainojama.