GNU/Linux >> Znalost Linux >  >> Linux

DSH – Spusťte příkaz Linux na více hostitelích současně

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

Linux
  1. Spusťte příkaz na více linuxových serverech z Windows

  2. Příklady příkazů timedatectl v Linuxu

  3. Příklady příkazů uptime v Linuxu

  1. Ssh na více hostitelů a spustit příkaz?

  2. linux:jak spustit příkaz v daném adresáři

  3. Spusťte příkaz cd jako superuživatel v Linuxu

  1. Jak spustit příkaz s časovým limitem (Timeout) v Linuxu

  2. Linux Time Command

  3. Příklady příkazů času Linux