Pssh - Udfør kommandoer på flere eksterne Linux-servere ved hjælp af en enkelt terminal


Ingen tvivl om, at OpenSSH er et af de mest anvendte og kraftfulde værktøjer til rådighed for Linux, der giver dig mulighed for at oprette forbindelse sikkert til eksterne Linux-systemer via en shell og giver dig mulighed for at overføre filer sikkert til og fra eksterne systemer.

Men de største ulemper ved OpenSSH er, at du ikke kan udføre den samme kommando på flere værter på én gang, og OpenSSH er ikke udviklet til at udføre sådanne opgaver. Dette er hvor Parallel SSH eller PSSH-værktøj er praktisk, er et pythonbaseret program, der giver dig mulighed for at udføre kommandoer på flere værter parallelt på samme tid.

Gå ikke glip af: Udfør kommandoer på flere Linux-servere ved hjælp af DSH Tool

PSSH-værktøj inkluderer parallelle versioner af OpenSSH og relaterede værktøjer såsom:

  1. pssh - er et program til kørsel af ssh parallelt på flere eksterne værter.
  2. pscp - er et program til kopiering af filer parallelt med et antal værter.
    1. Pscp - Kopier/overfør filer to eller flere eksterne Linux-servere

    Disse værktøjer er gode for systemadministratorer, der arbejder med store samlinger af noder på et netværk.

    Installer PSSH eller Parallel SSH på Linux

    I denne vejledning skal vi se på trin til installation af den nyeste version af PSSH (dvs. version 2.3.1) -programmet på Fedora-baserede distributioner som CentOS/RedHat og Debian-derivater såsom Ubuntu/Mint ved hjælp af pip-kommando.

    Pip-kommandoen er et lille program (udskiftning af easy_install script) til installation og styring af Python softwarepakkeindeks.

    På CentOS/RHEL-distributioner skal du først installere pip-pakken (dvs. python-pip) under dit system for at installere PSSH-programmet.

    # yum install python-pip
    

    På Fedora 21+ skal du køre dnf-kommandoen i stedet for yum (dnf erstattede yum).

    # dnf install python-pip
    

    Når du har installeret pip-værktøjet, kan du installere pssh-pakken ved hjælp af pip-kommandoen som vist.

    # 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
    

    På Debian-baserede distributioner tager det et minut at installere pssh ved hjælp af pip-kommando.

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

    Som du kan se fra output ovenfor, er den nyeste version af pssh allerede installeret på systemet.

    Hvordan bruger jeg pssh?

    Når du bruger pssh, skal du oprette en værtsfil med antallet af værter sammen med IP-adresse og portnummer, som du skal oprette forbindelse til eksterne systemer ved hjælp af pssh.

    Linjerne i værtsfilen er i følgende form og kan også omfatte blanke linjer og kommentarer.

    192.168.0.10:22
    192.168.0.11:22
    

    Du kan udføre en enkelt kommando på forskellige eller flere Linux-værter på et netværk ved at køre en pssh-kommando. Der er mange muligheder at bruge med pssh som beskrevet nedenfor:

    Vi skal se på et par måder at udføre kommandoer på et antal værter ved hjælp af pssh med forskellige muligheder.

    1. For at læse værtsfilen skal du medtage -h host_file-name eller –hosts host_file_name option.
    2. For at inkludere et standardbrugernavn på alle værter, der ikke definerer en bestemt bruger, skal du bruge -l brugernavn eller –brugerbrugernavn.
    3. Du kan også få vist standardoutput og standardfejl, når hver vært fuldender. Ved at bruge indstillingen -i eller –inline.
    4. Det kan være en god idé at lave timeout for forbindelser efter det givne antal sekunder ved at medtage -t number_of_seconds option.
    5. For at gemme standardoutput til et givet bibliotek kan du bruge indstillingen -o/katalog/sti.
    6. Brug indstillingen -A for at bede om en adgangskode og sende til ssh.

    Lad os se få eksempler og brug af pssh-kommandoer:

    1. For at udføre ekko “Hej TecMint” på terminalen på flere Linux-værter af root-bruger og bede om root-brugerens adgangskode, skal du køre denne kommando nedenfor.

    Vigtigt: Husk at alle værter skal inkluderes i værtsfilen.

    # 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
    

    Bemærk: I ovenstående kommando er "pssh-hosts" en fil med en liste over eksterne Linux-serveres IP-adresse og SSH-portnummer, som du ønsker at udføre kommandoer.

    2. For at finde ud af diskpladsforbruget på flere Linux-servere på dit netværk kan du køre en enkelt kommando som følger.

    # 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. Hvis du ønsker at kende oppetid for flere Linux-servere på én gang, kan du køre følgende kommando.

    # 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
    

    Du kan se den manuelle indtastningsside for kommandoen pssh for at få mange andre muligheder for at finde ud af flere måder at bruge pssh på.

    # pssh --help
    

    Resumé

    Parallel SSH eller PSSH er et godt værktøj til brug til udførelse af kommandoer i et miljø, hvor en systemadministrator skal arbejde med mange servere på et netværk. Det gør det nemt for kommandoer at udføres eksternt på forskellige værter på et netværk.

    Håber du finder denne vejledning nyttig og i tilfælde af yderligere oplysninger om pssh eller fejl under installation eller brug af den, er du velkommen til at skrive en kommentar.