Pssh - leeke terminaly ulanyp, uzakdaky Linux serwerlerinde buýruklary ýerine ýetiriň


“OpenSSH” -iň Linux üçin elýeterli iň giňden ulanylýan we güýçli guraldyr, şübhesiz, uzakdaky Linux ulgamlaryna gabyk arkaly ygtybarly birikmäge we faýllary ygtybarly we uzak ulgamlara geçirmäge mümkinçilik berýär.

Openöne OpenSSH-iň iň uly kemçilikleri, bir gezekde birnäçe hostda bir buýrugy ýerine ýetirip bolmaýar we OpenSSH beýle işleri ýerine ýetirmek üçin işlenip düzülmeýär. Parallel SSH ýa-da PSSH guralynyň amatly ýerinde, bir wagtyň özünde köp sanly hostda buýruklary ýerine ýetirmäge mümkinçilik berýän piton esasly programma.

Missitirmäň: DSH guralyny ulanyp, birnäçe Linux serwerinde buýruklary ýerine ýetiriň

PSSH guralyna OpenSSH-iň parallel wersiýalary we şuňa meňzeş gurallar girýär:

  1. pssh - köp uzakdaky hostlarda paralel ssh işlemek üçin programma.
  2. pscp - birnäçe öý eýesine paralel faýllary göçürmek üçin programma.
    1. Pscp - Iki ýa-da has uzakdaky Linux serwerlerini göçüriň/geçiriň

    Bu gurallar, ulgamdaky düwünleriň uly ýygyndylary bilen işleýän ulgam dolandyryjylary üçin amatlydyr.

    Linux-da PSSH ýa-da Parallel SSH guruň

    Bu gollanmada, CentOS/RedHat ýaly Fedora esasly paýlamalara PSSH-iň iň soňky wersiýasyny (ýagny 2.3.1 wersiýa) gurnamak ädimlerine serederis we turba buýrugyny ulanyp Ubuntu/Mint ýaly Debian önümlerinden.

    Turbanyň buýrugy, Python programma üpjünçiligi paketleriniň indeksini gurmak we dolandyrmak üçin kiçi programma (easy_install skriptini çalyşmak).

    CentOS/RHEL paýlamalarynda PSSH programmasyny gurmak üçin ilki bilen ulgamyňyzyň aşagyndaky turbany (ýagny python-pip) gurmaly.

    # yum install python-pip
    

    Fedora 21+-da, dumf ýerine dnf buýrugyny işletmeli (dnf çalşylýar).

    # dnf install python-pip
    

    Turba guralyny guranyňyzdan soň, görkezilişi ýaly pip buýrugynyň kömegi bilen pssh paketini gurup bilersiňiz.

    # 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 esasly paýlamalarda, pip buýrugyny ulanyp pssh gurmak üçin bir minut gerek.

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

    Aboveokardaky çykyşdan görnüşi ýaly, pssh-iň soňky wersiýasy eýýäm ulgamda gurnaldy.

    Pssh nädip ulanmaly?

    Pssh ulananyňyzda, pssh ulanyp uzakdaky ulgamlara birikmeli IP adresi we port belgisi bilen birlikde hostlaryň sany bilen host faýly döretmeli.

    Baş faýldaky setirler aşakdaky görnüşde bolup, boş setirleri we düşündirişleri hem öz içine alyp biler.

    192.168.0.10:22
    192.168.0.11:22
    

    Pssh buýrugyny işledip, torda dürli ýa-da birnäçe Linux hostlarynda islendik buýrugy ýerine ýetirip bilersiňiz. Aşakda görkezilişi ýaly pssh bilen ulanmagyň köp usuly bar:

    Dürli opsiýalar bilen pssh ulanyp, birnäçe hostda buýruklary ýerine ýetirmegiň birnäçe usulyna serederis.

    1. Host faýlyny okamak üçin -h host_file-name ýa-da hhosts host_file_name opsiýasyny goşuň.
    2. Belli bir ulanyjyny kesgitlemeýän ähli hostlara deslapky ulanyjy adyny goşmak üçin -l ulanyjy adyny ýa-da ulanyjy adynyň opsiýasyny ulanyň.
    3. Şeýle hem, her öý eýesi gutaransoň, standart çykyşy we adaty ýalňyşlygy görkezip bilersiňiz. -I ýa-da lineinline opsiýasyny ulanyp.
    4. Berlen sanlardan soň -t number_of_seconds opsiýasyny goşup, baglanyşyk wagtyny isläp bilersiňiz.
    5. Berlen kataloga standart çykyşy saklamak üçin -o/katalog/ýol opsiýasyny ulanyp bilersiňiz.
    6. Paroly soramak we ssh-e ibermek üçin -A opsiýasyny ulanyň.

    Geliň, pssh buýruklarynyň ulanylyşyna birnäçe mysal göreliň:

    1. Birnäçe Linux hostlarynyň terminalynda kök ulanyjy tarapyndan echo\Salam TecMint ýerine ýetirmek we kök ulanyjynyň parolyny soramak üçin aşakdaky buýrugy işlediň.

    Üns beriň: hosthli hostlaryň host faýlyna goşulmalydygyny ýadyňyzdan çykarmaň.

    # 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
    

    Bellik: aboveokardaky buýrukda pssh-hostlar buýruklary ýerine ýetirmek isleýän uzakdaky Linux serwerleriň IP adresi we SSH port belgisi bolan faýl.

    2. Toruňyzdaky birnäçe Linux serwerinde disk giňişliginiň ulanylyşyny bilmek üçin aşakdaky ýaly bir buýrugy işledip bilersiňiz.

    # 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. Birnäçe Linux serweriniň iş wagtyny bir gezek bilmek isleseňiz, aşakdaky buýrugy işledip bilersiňiz.

    # 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
    

    Pssh ulanmagyň has köp usullaryny tapmak üçin başga-da köp opsiýa almak üçin pssh buýrugy üçin el bilen giriş sahypasyny görüp bilersiňiz.

    # pssh --help
    

    Gysgaça mazmun

    Parallel SSH ýa-da PSSH, Ulgam dolandyryjysynyň tordaky köp serwerler bilen işlemeli şertlerinde buýruklary ýerine ýetirmek üçin ulanmak üçin gowy guraldyr. Buýruklary tordaky dürli öý eýelerinde uzakdan ýerine ýetirmegi aňsatlaşdyrar.

    Bu gollanmany peýdaly hasaplarsyňyz we pssh ýa-da gurnanyňyzda ýa-da ulananyňyzda ýalňyşlyklar barada goşmaça maglumat berseňiz, teswir ýazyp bilersiňiz.