Před chvílí jsme napsali průvodce, který popisoval, jak spustit jeden příkaz na více vzdálených systémech najednou pomocí PSSH v systémech podobných Unixu. Dnes budeme diskutovat o podobném nástroji s názvem DSH . Zkratka znamená D přiděleno sh ell (neboli tanečník). Pomocí DSH můžeme spustit linuxový příkaz na více hostitelích současně. Je to bezplatný a open source nástroj napsaný pomocí C programovací jazyk.
Nainstalujte DSH
Na Arch Linuxu a jeho derivátech:
DSH je k dispozici v AUR , takže jej můžete nainstalovat pomocí pomocníků AUR, například Yay , jak je uvedeno níže.
$ yay -S dsh
V Debianu, Ubuntu:
DSH je k dispozici v oficiálních repozitářích Debianu, Ubuntu a dalších systémů založených na DEB, jako je Linux Mint, Elementary OS. Chcete-li jej nainstalovat DSH do jakéhokoli systému založeného na DEB, spusťte:
$ sudo apt-get install dsh
Pro ostatní distribuce Linuxu lze DSH ručně zkompilovat a nainstalovat, jak je popsáno níže.
DSH vyžaduje libdshconfig abych mohl pracovat. Nejnovější verzi libdshconfig a dsh si můžete stáhnout z tohoto odkazu .
Po stažení přejděte do adresáře, kde jste stáhli oba balíčky.
Nejprve zkompilujte a nainstalujte libdshconfig pomocí příkazů:
$ tar xfz libdshconfig*.tar.gz
$ cd libdshconfig-*
$ ./configure ; make
$ sudo make install
Poté zkompilujte a nainstalujte také dsh.
$ tar xfz dsh*.tar.gz
$ cd dsh-*
$ ./configure ; make
$ sudo make install
Nakonfigurujte DSH
Nainstalovali jsme dsh. Pojďme nyní nakonfigurovat DSH tak, aby spouštělo příkazy na více hostitelích. Chcete-li tak učinit, nejprve upravte konfigurační soubor DSH a nastavte hodnotu vzdáleného shellu z rsh na ssh.
V systému Arch Linux a odvozených verzích je výchozí konfigurační soubor /etc/kgname/dsh.conf .
Upravte tento soubor:
$ sudo vi /etc/kgname/dsh.conf
Změňte vzdálené prostředí hodnota z rsh na ssh .
#default configuration file for dsh. # suppled as part of dancer's shell verbose = 0 remoteshell =ssh showmachinenames = 0 waitshell=1 # whether to wait for execution #remoteshellopt=... # default config file end.
Na systémech založených na DEB:
$ sudo vi /etc/dsh/dsh.conf remoteshell =ssh
Na systémech založených na RPM:
$ sudo vi /usr/local/etc/dsh.conf remoteshell =ssh
Dále musíme přidat vzdálené hostitele, kde chceme provádět příkazy.
Chcete-li tak učinit, vytvořte/upravte machines.list soubor a přidejte vzdálené hostitele.
Na Arch Linuxu a jeho derivátech:
$ sudo vi /etc/kgname/machines.list
Přidejte IP nebo název hostitele vzdáleného hostitele jeden po druhém, jak je uvedeno níže.
192.168.43.100 192.168.43.101
Na systémech založených na DEB:
$ sudo vi /etc/dsh/machines.list 192.168.43.100 192.168.43.101
Na systémech založených na RPM:
$ sudo vi /usr/local/etc/machines.list 192.168.43.100 192.168.43.101
Do seznamu machines.list můžete přidat libovolný počet vzdálených hostitelů soubor.
Spusťte příkaz Linux na více hostitelích současně pomocí DSH
Jakmile přidáte všechny vzdálené hostitele a vytvoříte společného uživatele na všech vzdálených systémech, můžete spustit příkaz Linux na všech vzdálených hostitelích najednou. Řekněme například, že následující příkaz spustí uname -r příkaz na všech vzdálených hostitelích najednou.
$ dsh -a -c uname -r
Požádá vás o zadání uživatelského jména a hesla příslušného vzdáleného hostitele. Pokud nechcete při každém spuštění tohoto příkazu zadávat přihlašovací údaje uživatele, stačí nakonfigurovat přihlášení SSH bez hesla .
Ukázkový výstup:
3.10.0-514.16.1.el7.x86_64 4.4.0-34-generic
Jak vidíte ve výše uvedeném výstupu, nástroj dsh zobrazuje verzi jádra mých dvou vzdálených hostitelů.
Další podrobnosti naleznete na stránce manuálu.
$ man dsh
Doporučené čtení:
- Provádění příkazů na vzdálených systémech Linux prostřednictvím SSH