Pssh - izpildiet komandas vairākos attālos Linux serveros, izmantojot vienu termināli


Nav šaubu, ka OpenSSH ir viens no visplašāk izmantotajiem un jaudīgākajiem Linux pieejamajiem rīkiem, kas ļauj droši izveidot savienojumu ar attālajām Linux sistēmām, izmantojot čaulu, un ļauj droši pārsūtīt failus uz attālajām sistēmām un no tām.

Bet lielākie OpenSSH trūkumi ir tādi, ka jūs nevarat izpildīt vienu komandu vairākiem resursdatoriem vienā piegājienā, un OpenSSH nav izstrādāts šādu uzdevumu veikšanai. Šeit ir noderīgs Parallel SSH vai PSSH rīks, tas ir uz pitona balstīta lietojumprogramma, kas ļauj vienlaikus izpildīt komandas vairākiem resursdatoriem paralēli.

Nepalaidiet garām: Izpildiet komandas vairākos Linux serveros, izmantojot DSH rīku

PSSH rīks ietver paralēlas OpenSSH versijas un saistītos rīkus, piemēram:

  1. pssh - programma ssh paralēlai darbībai vairākos attālajos resursdatoros.
  2. pscp - programma failu kopēšanai paralēli vairākiem resursdatoriem.
    1. Pscp - failu kopēšana/pārsūtīšana vismaz divus attālinātos Linux serveros

    Šie rīki ir noderīgi sistēmu administratoriem, kuri strādā tīklā ar lielām mezglu kolekcijām.

    Linux instalējiet PSSH vai Parallel SSH

    Šajā rokasgrāmatā mēs apskatīsim soļus, lai instalētu jaunāko PSSH (t.i. versiju 2.3.1) programmu Fedora balstītajos izplatījumos, piemēram, CentOS/RedHat un Debian atvasinājumos, piemēram, Ubuntu/Mint, izmantojot komandu pip.

    Komanda pip ir neliela programma (skripta easy_install nomaiņa), lai instalētu un pārvaldītu Python programmatūras pakotņu indeksu.

    CentOS/RHEL izplatījumos vispirms savā sistēmā jāinstalē pakotne pip (t.i., python-pip), lai instalētu programmu PSSH.

    # yum install python-pip
    

    Vietnē Fedora 21+ jums jāpalaiž komanda dnf yum (dnf aizstāja yum).

    # dnf install python-pip
    

    Kad esat instalējis pip rīku, jūs varat instalēt paketi pssh ar komandu pip, kā parādīts.

    # 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
    

    Debian balstītajos izplatījumos pssh instalēšana, izmantojot komandu pip, prasa minūti.

    $ 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...
    

    Kā redzat no iepriekš minētās izejas, sistēmā jau ir instalēta jaunākā pssh versija.

    Kā es varu izmantot pssh?

    Lietojot pssh, jums jāizveido resursdatora fails ar resursdatoru skaitu, kā arī IP adresi un porta numuru, kas jāpievieno attālajām sistēmām, izmantojot pssh.

    Resursdatora faila rindas ir šādā formā, un tajās var būt arī tukšas rindas un komentāri.

    192.168.0.10:22
    192.168.0.11:22
    

    Jūs varat izpildīt jebkuru atsevišķu komandu dažādos vai vairākos Linux resursdatoros tīklā, izpildot komandu pssh. Ir daudz iespēju, ko izmantot ar pssh, kā aprakstīts zemāk:

    Mēs izskatīsim dažus veidus, kā izpildīt komandas vairākos resursdatoros, izmantojot pssh ar dažādām iespējām.

    1. Lai lasītu resursdatora failu, iekļaujiet opciju -h host_file-name vai –hosts host_file_name.
    2. Lai visiem resursdatoriem, kas nenosaka konkrētu lietotāju, iekļautu noklusējuma lietotājvārdu, izmantojiet opciju -l lietotājvārds vai –lietotāja lietotājvārds.
    3. Katra resursdatora pabeigšanas laikā varat parādīt arī standarta izvadi un standarta kļūdas. Izmantojot opciju -i vai –instrumentu.
    4. Varat izveidot savienojumu noildzi pēc norādītā sekunžu skaita, iekļaujot opciju -t_sekundes_sekundes.
    5. Lai saglabātu standarta izvadi noteiktā direktorijā, varat izmantot opciju -o/directory/path.
    6. Lai pieprasītu paroli un nosūtītu uz ssh, izmantojiet opciju -A.

    Apskatīsim dažus pssh komandu piemērus un lietojumu:

    1. Lai izpildītu atbalss “Hello TecMint” vairāku Linux resursdatoru terminālī, izmantojot root lietotāju un pieprasītu root lietotāja paroli, izpildiet šo komandu zemāk.

    Svarīgi: atcerieties, ka visi resursdatori ir jāiekļauj resursdatora failā.

    # 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
    

    Piezīme: Iepriekšminētajā komandā “pssh-hosts” ir fails ar attālo Linux serveru IP adresi un SSH porta numuru, kuru vēlaties izpildīt.

    2. Lai uzzinātu diska vietas izmantošanu vairākos Linux serveros tīklā, varat izpildīt vienu komandu šādi.

    # 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. Ja vēlaties vienā reizē uzzināt vairāku Linux serveru darbības laiku, varat izpildīt šādu komandu.

    # 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
    

    Jūs varat apskatīt manuālās ievades lapu pssh komandai, lai iegūtu daudzas citas iespējas, lai uzzinātu vairāk pssh izmantošanas veidu.

    # pssh --help
    

    Kopsavilkums

    Paralēlais SSH vai PSSH ir labs rīks, ko izmantot komandu izpildei vidē, kur sistēmas administratoram ir jāstrādā ar daudziem tīkla serveriem. Tas atvieglos komandu izpildi attālināti dažādos tīkla resursdatoros.

    Ceru, ka jūs atradīsit šo rokasgrāmatu noderīgu un izmantosiet papildu informāciju par pssh vai kļūdām, instalējot vai lietojot to, nekautrējieties ievietot komentāru.