GNU/Linux >> Znalost Linux >  >> Linux

Jak spustit jeden příkaz na více vzdálených systémech najednou

Před chvílí jsme publikovali průvodce „zkopírováním souboru do více adresářů v příkazovém řádku v systému Linux“ . V tomto článku jsme vás naučili různé metody kopírování jednoho souboru do více adresářů najednou. Dnes se podíváme, jak spustit jeden příkaz na více vzdálených systémech najednou v operačních systémech podobných Unixu. Jak již víte, můžeme přistupovat a komunikovat se vzdáleným systémem pomocí ssh. openSSH nám umožňuje provádět všechny druhy administrativních úkolů ve vzdáleném systému. Jedním omezením openSSH je, že nemůžeme spustit jeden příkaz na více vzdálených systémech najednou. Žádný problém. Zde je PSSH přichází vyplnit tuto mezeru.

Stáhnout - Příručka zdarma:"Příručka programování modulu jádra Linuxu"

PSSH nebo P aralel SSH , je sada příkazového řádku, která vám pomáhá s ssh paralelně na řadě hostitelů. Sada PSSH se skládá z následujících příkazů:

  • pssh - SSH k více vzdáleným systémům paralelně,
  • pscp - Kopírovat soubory paralelně na několik hostitelů,
  • prsync : Kopírujte soubory paralelně na několik hostitelů,
  • pnuke : Zabijte procesy paralelně na několika hostitelích,
  • pslurp :Kopírování souborů paralelně z několika hostitelů.

V tomto tutoriálu uvidíme, jak provést jeden příkaz na více hostitelích najednou pomocí PSSH.

Nainstalujte PSSH

PSSH můžeme snadno nainstalovat pomocí PIP , správce balíčků pythonu.

Chcete-li nainstalovat PIP na Arch Linux a jeho deriváty, spusťte:

$ sudo pacman -S python-pip

Na RHEL, Fedora, CentOS:

$ sudo yum install epel-release
$ sudo yum install python-pip

Nebo,

$ sudo dnf install epel-release
$ sudo dnf install python-pip

V systémech Debian, Ubuntu, Linux Mint:

$ sudo apt-get install python-pip

Další podrobnosti o správě balíčků python pomocí PIP naleznete na následujícím odkazu.

  • Jak spravovat balíčky Python pomocí Pip

Po instalaci PIP spusťte následující příkaz pro instalaci PSSH.

$ sudo pip install pssh

PSSH bylo nainstalováno! Pojďme se podívat, jak to používat.

Spusťte jeden příkaz na více vzdálených systémech najednou pomocí PSSH

Důležité: Abyste mohli používat PSSH (pouze pro účely tohoto tutoriálu), všechny vaše vzdálené systémy musí mít společné uživatelské jméno se stejným heslem . Jinak tato metoda nepomůže. Řekněme například, že jsem již vytvořil uživatele s názvem sk s heslem ostechnix na všech mých vzdálených hostitelích. Měli byste mít stejného uživatele se stejným heslem na všech vzdálených systémech.

Nyní se podívejme, jak spustit jeden příkaz na více vzdálených hostitelích pomocí PSSH. Přejděte do místního systému, kde chcete příkaz spustit, a vytvořte textový soubor s názvem remotehosts.txt . Můžete jej pojmenovat, jak chcete.

$ vi remotehosts.txt

Přidejte IP adresy svých vzdálených hostitelů s čísly portů jednu po druhé, jak je přesně uvedeno níže.

192.168.1.103:22
192.168.1.104:22

Kde, 192 168.1.103 a 192.168.1.104 jsou IP adresy mých vzdálených systémů. 22 je číslo portu ssh. Pokud jste jej již změnili, musíte uvést správné číslo portu. Také se ujistěte, že můžete mít přístup ke všem vzdáleným hostitelům z vašeho místního systému přes ssh.

Nyní zkontrolujme dostupnost obou vzdálených hostitelů z našeho místního systému. Chcete-li to provést, spusťte:

$ pssh -h remotehosts.txt -l sk -A -i "uptime"

Tady,

  • remotehosts.txt - Obsahuje IP adresy obou vzdálených systémů.
  • sk - uživatelské jméno obou vzdálených systémů

Zadejte heslo uživatele "sk" .

Ukázkový výstup:

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 20:51:15 [SUCCESS] 192.168.1.103:22
 20:50:50 up 8 min, 1 user, load average: 0.05, 0.11, 0.10
[2] 20:51:15 [SUCCESS] 192.168.1.104:22
 20:50:52 up 12 min, 1 user, load average: 0.00, 0.07, 0.12

Jak vidíte výše, spustili jsme příkaz "uptime" na dvou vzdálených hostitelích a výsledek jsme získali jedním tahem.

A co verze jádra? Chcete-li zkontrolovat nainstalovanou verzi obou vzdálených hostitelů, spusťte:

$ pssh -h remotehosts.txt -l sk -A -i "uname -r"

Ukázkový výstup:

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 20:53:09 [SUCCESS] 192.168.1.103:22
3.10.0-327.22.2.el7.x86_64
[2] 20:53:09 [SUCCESS] 192.168.1.104:22
4.4.0-21-generic

Velmi cool, že? Můžeme vytvořit adresář na obou vzdálených hostitelích najednou? Ano, samozřejmě! Chcete-li tak učinit, spusťte následující příkaz:

$ pssh -h remotehosts.txt -l sk -A -i "mkdir dir1"

Podobně můžete dělat cokoli chcete na více vzdálených hostitelích z vašeho místního systému pomocí PSSH.

Důležité: Při používání PSSH buďte velmi opatrní. Jeden špatný příkaz se provede současně na více hostitelích a poškodí všechny hostitele. Buďte tedy velmi opatrní při používání této metody ve výrobě. Doporučuji vám to vyzkoušet na virtuálních strojích. Jakmile se seznámíte s PSSH, můžete jej použít v produkci, pokud chcete.

Doporučené čtení:

  • DSH – Spusťte příkaz Linux na více hostitelích současně
  • Provádění příkazů na vzdálených systémech Linux prostřednictvím SSH

Doufám, že to pomůže.


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

  2. Jak přejmenovat více souborů v jediném příkazu nebo skriptu v systému Unix?

  3. Jak přejmenovat více souborů najednou v Linuxu

  1. Jak spustit více procesů Tor najednou s různými výstupními IP?

  2. Jak spustit příkaz vícekrát pomocí bash shell?

  3. Jak spustit příkaz, jakmile se scrub ZFS *dokončí*?

  1. Jak spustíme příkaz uložený v proměnné?

  2. Jak spustím více příkazů na pozadí v bash na jednom řádku?

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