Wyszukiwanie w witrynie

PSSH — uruchamiaj polecenia na wielu zdalnych systemach Linux


Nie ulega wątpliwości, że OpenSSH jest jednym z najpowszechniej używanych i potężnych narzędzi dostępnych dla systemu Linux, które umożliwia bezpieczne łączenie się ze zdalnymi systemami Linux za pośrednictwem powłoki i umożliwia bezpieczne przesyłanie plików do i z systemów zdalnych.

Jednak największą wadą OpenSSH jest to, że nie można wykonać tego samego polecenia na wielu hostach jednocześnie, a OpenSSH nie jest przeznaczony do wykonywania takich zadań.

Tutaj z pomocą przychodzi narzędzie Parallel SSH lub PSSH, czyli aplikacja oparta na języku Python, która pozwala na równoległe wykonywanie poleceń na wielu hostach w tym samym czasie.

Narzędzie PSSH zawiera równoległe wersje OpenSSH i powiązanych narzędzi, takich jak:

  • pssh – to program do równoległego uruchamiania ssh na wielu zdalnych hostach.
  • pscp – to program do równoległego kopiowania plików na wiele hostów.
  • prsync – to program do wydajnego kopiowania plików na wiele hostów równolegle.
  • pnuke – zabija procesy na wielu zdalnych hostach równolegle.
  • pslurp – kopiuje pliki z wielu zdalnych hostów równolegle do centralnego hosta.

Narzędzia te są dobre dla administratorów systemu, którzy pracują z dużymi zbiorami węzłów w sieci.

Zainstaluj PSSH lub Parallel SSH w systemie Linux

W tym przewodniku przyjrzymy się krokom instalacji najnowszej wersji programu PSSH (tj. wersji 2.3.1) w dystrybucjach opartych na RHEL, takich jak Fedora, CentOS Stream , Rocky i AlmaLinux oraz dystrybucje oparte na Debianie, takie jak Ubuntu i Linux Mint za pomocą polecenia pip.

Polecenie pip to mały program (zamiennik skryptu easy_install) służący do instalowania indeksu pakietów oprogramowania Python i zarządzania nim.

W dystrybucjach opartych na RHEL

W dystrybucjach RHEL musisz najpierw zainstalować pakiet pip (tj. python-pip) w swoim systemie, aby zainstalować PSSH program używając yum lub dnf.

yum install python-pip
OR
dnf install python-pip

Po zainstalowaniu narzędzia pip możesz zainstalować pakiet pssh za pomocą polecenia pip, jak pokazano poniżej.

pip install pssh  

W dystrybucjach opartych na Debianie

W dystrybucjach opartych na Debianie instalacja pssh za pomocą polecenia pip zajmuje minutę.

sudo apt install python-pip
sudo pip install pssh

Jak używać pssh w systemie Linux?

Używając pssh, musisz utworzyć plik hosta zawierający liczbę hostów wraz z adresem IP i numerem portu, których potrzebujesz, aby połączyć się z systemami zdalnymi za pomocą pssh.

Linie w pliku hosta mają następującą formę i mogą również zawierać puste linie i komentarze.

192.168.0.10:22
192.168.0.11:22

Uruchom pojedyncze polecenie na wielu serwerach Linux

Możesz wykonać dowolne pojedyncze polecenie na różnych lub wielu hostach z systemem Linux w sieci, uruchamiając polecenie pssh. Istnieje wiele opcji, których można używać z pssh, jak opisano poniżej:

Przyjrzymy się kilku sposobom wykonywania poleceń na wielu hostach przy użyciu pssh z różnymi opcjami.

  • Aby odczytać plik hosta, użyj opcji -h nazwa_pliku_hosta lub --hosts nazwa_pliku_hosta.
  • Aby dołączyć domyślną nazwę użytkownika na wszystkich hostach, które nie definiują konkretnego użytkownika, użyj opcji -l nazwa użytkownika lub --user nazwa użytkownika.
  • Możesz także wyświetlić standardowe wyjście i standardowy błąd po zakończeniu każdego hosta. Używając opcji -i lub --inline.
  • Możesz chcieć ustawić limit czasu połączenia po określonej liczbie sekund, włączając opcję -t liczba_sekund.
  • Aby zapisać standardowe wyjście do podanego katalogu, możesz użyć opcji -o /directory/path.
  • Aby poprosić o hasło i wysłać je do SSH, użyj opcji -A.

Zobaczmy kilka przykładów i użycia poleceń pssh:

Uruchamiaj polecenia na wielu hostach z systemem Linux

1. Aby wykonać echo „Hello TecMint ” na terminalu wielu hostów z systemem Linux przez użytkownika root i wyświetlić monit o podanie hasła użytkownika root, uruchom poniższe polecenie.

Ważne: pamiętaj, że plik hosta musi zawierać wszystkie hosty.

pssh -h pssh-hosts -l root -A echo "Hello TecMint"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 15:54:55 [SUCCESS] 192.168.0.10:22
[2] 15:54:56 [SUCCESS] 192.168.0.11:22

Uwaga: W powyższym poleceniu „pssh-hosts” to plik z listą adresów IP zdalnego serwera Linux i numerem portu SSH że chcesz wykonać polecenia.

Znajdź użycie dysku przez wiele hostów z systemem Linux

2. Aby sprawdzić wykorzystanie miejsca na dysku na wielu serwerach Linux w Twojej sieci, możesz uruchomić jedno polecenie w następujący sposób.

pssh -h pssh-hosts -l root -A -i "df -hT"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:04:18 [SUCCESS] 192.168.0.10:22
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    38G  4.3G   32G  12% /
tmpfs          tmpfs  499M     0  499M   0% /dev/shm
/dev/sda1      ext4   190M   25M  156M  14% /boot

[2] 16:04:18 [SUCCESS] 192.168.0.11:22
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        30G  9.8G   20G  34% /
devtmpfs                devtmpfs  488M     0  488M   0% /dev
tmpfs                   tmpfs     497M  148K  497M   1% /dev/shm
tmpfs                   tmpfs     497M  7.0M  490M   2% /run
tmpfs                   tmpfs     497M     0  497M   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  166M  332M  34% /boot

Znajdź czas pracy wielu hostów z systemem Linux

3. Jeśli chcesz sprawdzić czas pracy wielu serwerów Linux za jednym razem, możesz uruchomić następujące polecenie.

pssh -h pssh-hosts -l root -A -i "uptime"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:09:03 [SUCCESS] 192.168.0.10:22
 16:09:01 up  1:00,  2 users,  load average: 0.07, 0.02, 0.00

[2] 16:09:03 [SUCCESS] 192.168.0.11:22
 06:39:03 up  1:00,  2 users,  load average: 0.00, 0.06, 0.09

Możesz wyświetlić stronę ręcznego wprowadzania polecenia pssh, aby uzyskać wiele innych opcji i dowiedzieć się więcej sposobów używania pssh.

pssh --help

Streszczenie

Równoległy SSH lub PSSH to dobre narzędzie do wykonywania poleceń w środowisku, w którym Administrator systemu musi pracować z wieloma serwerami w sieci . Ułatwi to zdalne wykonywanie poleceń na różnych hostach w sieci.

Mam nadzieję, że ten przewodnik okaże się przydatny, a w przypadku dodatkowych informacji na temat pssh lub błędów podczas jego instalacji lub używania, nie wahaj się opublikować komentarza.