Pssh - Izvedite ukaze na več oddaljenih strežnikih Linux z enim terminalom


Brez dvoma je OpenSSH eno najpogosteje uporabljenih in najmočnejših orodij, ki so na voljo za Linux, ki vam omogoča varno povezavo z oddaljenimi sistemi Linux prek lupine in omogoča varen prenos datotek v oddaljene sisteme in iz njih.

Toda največja slabost OpenSSH je ta, da istega ukaza ne morete izvajati na več gostiteljih naenkrat in OpenSSH ni razvit za izvajanje takih nalog. Tu je orodje Parallel SSH ali PSSH priročno, je aplikacija, ki temelji na pythonu in omogoča istočasno izvajanje ukazov na več gostiteljih.

Ne zamudite: Izvedite ukaze na več strežnikih Linux z orodjem DSH

Orodje PSSH vključuje vzporedne različice OpenSSH in sorodna orodja, kot so:

  1. pssh - je program za vzporedno izvajanje ssh na več oddaljenih gostiteljih.
  2. pscp - je program za kopiranje datotek vzporedno s številnimi gostitelji.
    1. Pscp - Kopiranje/prenos datotek dveh ali več oddaljenih strežnikov Linux

    Ta orodja so dobra za sistemske skrbnike, ki delajo z velikimi zbirkami vozlišč v omrežju.

    Namestite PSSH ali Parallel SSH v Linux

    V tem priročniku bomo preučili korake za namestitev najnovejše različice programa PSSH (tj. Različice 2.3.1) na distribucije, ki temeljijo na Fedori, kot so CentOS/RedHat in izpeljanke Debian, kot je Ubuntu/Mint, z uporabo pip ukaza.

    Ukaz pip je majhen program (zamenjava skripta easy_install) za namestitev in upravljanje indeksa programskih paketov Python.

    V distribucijah CentOS/RHEL morate najprej namestiti paket pip (tj. Python-pip) v sistem, da namestite program PSSH.

    # yum install python-pip
    

    V Fedori 21+ morate namesto yum zagnati ukaz dnf (dnf je zamenjal yum).

    # dnf install python-pip
    

    Ko namestite orodje pip, lahko paket pssh namestite s pomočjo ukaza pip, kot je prikazano.

    # pip install pssh  
    
    /usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
      InsecurePlatformWarning
    You are using pip version 7.1.0, however version 7.1.2 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    Collecting pssh
    /usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
      InsecurePlatformWarning
      Downloading pssh-2.3.1.tar.gz
    Installing collected packages: pssh
      Running setup.py install for pssh
    Successfully installed pssh-2.3.1
    

    V distribucijah, ki temeljijo na Debianu, traja minuto, da namestite pssh z ukazom pip.

    $ sudo apt-get install python-pip
    $ sudo pip install pssh
    
    Downloading/unpacking pssh
      Downloading pssh-2.3.1.tar.gz
      Running setup.py (path:/tmp/pip_build_root/pssh/setup.py) egg_info for package pssh
        
    Installing collected packages: pssh
      Running setup.py install for pssh
        changing mode of build/scripts-2.7/pssh from 644 to 755
        changing mode of build/scripts-2.7/pnuke from 644 to 755
        changing mode of build/scripts-2.7/prsync from 644 to 755
        changing mode of build/scripts-2.7/pslurp from 644 to 755
        changing mode of build/scripts-2.7/pscp from 644 to 755
        changing mode of build/scripts-2.7/pssh-askpass from 644 to 755
        
        changing mode of /usr/local/bin/pscp to 755
        changing mode of /usr/local/bin/pssh-askpass to 755
        changing mode of /usr/local/bin/pssh to 755
        changing mode of /usr/local/bin/prsync to 755
        changing mode of /usr/local/bin/pnuke to 755
        changing mode of /usr/local/bin/pslurp to 755
    Successfully installed pssh
    Cleaning up...
    

    Kot lahko vidite iz zgornjega izhoda, je najnovejša različica pssh že nameščena v sistemu.

    Kako uporabim pssh?

    Ko uporabljate pssh, morate ustvariti datoteko gostitelja s številom gostiteljev skupaj z naslovom IP in številko vrat, ki jih morate povezati z oddaljenimi sistemi s pomočjo pssh.

    Vrstice v gostiteljski datoteki so v naslednji obliki in lahko vključujejo tudi prazne vrstice in komentarje.

    192.168.0.10:22
    192.168.0.11:22
    

    Kateri koli en ukaz lahko izvedete na različnih ali več gostiteljih Linuxa v omrežju, tako da zaženete ukaz pssh. Kot je opisano spodaj, obstaja veliko možnosti za uporabo s pssh:

    Ogledali si bomo nekaj načinov izvajanja ukazov na številnih gostiteljih z uporabo pssh z različnimi možnostmi.

    1. Če želite prebrati datoteko gostitelja, vključite možnost -h ime_datoteke-gostitelja ali -host_datoteke_ime_gostitelja.
    2. Če želite vključiti privzeto uporabniško ime na vseh gostiteljih, ki ne določajo določenega uporabnika, uporabite možnost -l uporabniško ime ali –user uporabniško ime.
    3. Po dokončanju vsakega gostitelja lahko prikažete tudi standardni izhod in standardno napako. Z uporabo možnosti -i ali –inline.
    4. Po določenem številu sekund boste morda želeli izteči čas povezav, tako da vključite možnost -t number_of_seconds.
    5. Če želite shraniti standardni izhod v dani imenik, lahko uporabite možnost -o/directory/path.
    6. Če želite vprašati za geslo in ga poslati na ssh, uporabite možnost -A.

    Oglejmo si nekaj primerov in uporabo ukazov pssh:

    1. Če želite uporabiti korenski uporabnik echo\"Hello TecMint" na terminalu več gostiteljev Linuxa in pozvati geslo korenskega uporabnika, zaženite spodnji ukaz.

    Pomembno: Ne pozabite, da morajo biti vsi gostitelji vključeni v datoteko gostitelja.

    # 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
    

    Opomba: V zgornjem ukazu je “pssh-hosts” datoteka s seznamom naslovov IP oddaljenih strežnikov Linux in številko vrat SSH, ki jih želite izvajati.

    2. Če želite ugotoviti, koliko prostora na disku uporabljate na več strežnikih Linux v vašem omrežju, lahko zaženete en ukaz, kot sledi.

    # 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
    

    3. Če želite naenkrat vedeti, kako neprekinjeno deluje več strežnikov Linux, lahko zaženete naslednji ukaz.

    # 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
    

    Ogledate si lahko stran z ročnim vnosom ukaza pssh, kjer najdete številne druge možnosti za iskanje več načinov uporabe pssh.

    # pssh --help
    

    Povzetek

    Vzporedni SSH ali PSSH je dobro orodje za izvajanje ukazov v okolju, kjer mora sistemski skrbnik delati s številnimi strežniki v omrežju. To bo olajšalo izvajanje ukazov na daljavo na različnih gostiteljih v omrežju.

    Upam, da se vam zdi ta priročnik koristen in vsebuje kakršne koli dodatne informacije o pssh ali napakah med namestitvijo ali uporabo, objavite komentar.