Pssh - Executeu ordres en diversos servidors Linux remots mitjançant un únic terminal
Sens dubte, OpenSSH és una de les eines més utilitzades i potents disponibles per a Linux, que us permet connectar-vos de manera segura a sistemes Linux remots mitjançant un shell i us permet transferir fitxers de manera segura a i des de sistemes remots.
Però el major desavantatge d'OpenSSH és que no podeu executar la mateixa ordre en diversos hosts d'una vegada i OpenSSH no està desenvolupat per realitzar aquestes tasques. Aquí és on l'eina Parallel SSH o PSSH és útil, és una aplicació basada en Python, que us permet executar ordres en diversos hosts en paral·lel al mateix temps.
No us perdeu: executeu ordres en diversos servidors Linux mitjançant l'eina DSH
L'eina PSSH inclou versions paral·leles d'OpenSSH i eines relacionades com ara:
- pssh: és un programa per executar ssh en paral·lel en diversos hosts remots.
- pscp: és un programa per copiar fitxers en paral·lel a diversos amfitrions.
- Pscp: copia/transfereix fitxers dos o més servidors Linux remots
- Per llegir el fitxer hosts, incloeu l'opció -h host_file-name o –hosts host_file_name.
- Per incloure un nom d'usuari predeterminat a tots els amfitrions que no defineixen un usuari específic, utilitzeu l'opció -l nom d'usuari o –user nom d'usuari.
- També podeu mostrar la sortida estàndard i l'error estàndard a mesura que finalitzi cada host. Mitjançant l'opció -i o –inline.
- És possible que vulgueu fer que les connexions esgotin un cop transcorregut el nombre de segons indicat si inclou l'opció -t number_of_seconds.
- Per desar la sortida estàndard a un directori determinat, podeu utilitzar l'opció -o /directory/path.
- Per demanar una contrasenya i enviar-la a ssh, utilitzeu l'opció -A.
Aquestes eines són bones per als administradors del sistema que es troben treballant amb grans col·leccions de nodes en una xarxa.
Instal·leu PSSH o Parallel SSH a Linux
En aquesta guia, veurem els passos per instal·lar la darrera versió del programa PSSH (és a dir, la versió 2.3.1) a distribucions basades en Fedora com CentOS/RedHat i derivats de Debian com Ubuntu/Mint mitjançant l'ordre pip.
L'ordre pip és un petit programa (substitució de l'script easy_install) per instal·lar i gestionar l'índex de paquets de programari Python.
A les distribucions CentOS/RHEL, primer heu d'instal·lar el paquet pip (és a dir, python-pip) al vostre sistema per instal·lar el programa PSSH.
# yum install python-pip
A Fedora 21+, heu d'executar l'ordre dnf en lloc de yum (dnf substituït yum).
# dnf install python-pip
Un cop hàgiu instal·lat l'eina pip, podeu instal·lar el paquet pssh amb l'ajuda de l'ordre pip tal com es mostra.
# 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
A les distribucions basades en Debian, es triga un minut a instal·lar pssh mitjançant l'ordre 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...
Com podeu veure a la sortida anterior, la darrera versió de pssh ja està instal·lada al sistema.
Com puc utilitzar pssh?
Quan utilitzeu pssh, heu de crear un fitxer d'amfitrió amb el nombre d'amfitrions juntament amb l'adreça IP i el número de port que necessiteu per connectar-vos a sistemes remots mitjançant pssh.
Les línies del fitxer amfitrió tenen la forma següent i també poden incloure línies en blanc i comentaris.
192.168.0.10:22 192.168.0.11:22
Podeu executar qualsevol ordre en diferents o diversos amfitrions Linux d'una xarxa executant una ordre pssh. Hi ha moltes opcions per utilitzar amb pssh, tal com es descriu a continuació:
Veurem algunes maneres d'executar ordres en diversos hosts utilitzant pssh amb diferents opcions.
Vegem alguns exemples i ús d'ordres pssh:
1. Per executar echo \Hola TecMint al terminal dels múltiples amfitrions Linux per usuari root i demanar la contrasenya de l'usuari root, executeu aquesta ordre a continuació.
Important: recordeu que tots els amfitrions s'han d'incloure al fitxer amfitrió.
# 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
Nota: A l'ordre anterior pssh-hosts hi ha un fitxer amb una llista de l'adreça IP dels servidors Linux remots i el número de port SSH que voleu executar ordres.
2. Per esbrinar l'ús d'espai en disc a diversos servidors Linux de la vostra xarxa, podeu executar una única ordre de la manera següent.
# 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. Si voleu conèixer el temps d'activitat de diversos servidors Linux d'una vegada, podeu executar l'ordre següent.
# 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
Podeu veure la pàgina d'entrada manual de l'ordre pssh per obtenir moltes altres opcions per esbrinar més maneres d'utilitzar pssh.
# pssh --help
Resum
Paral·lel SSH o PSSH és una bona eina per executar ordres en un entorn on un administrador del sistema ha de treballar amb molts servidors en una xarxa. Facilitarà l'execució remota d'ordres en diferents amfitrions d'una xarxa.
Esperem que aquesta guia sigui útil i, en cas que hi hagi informació addicional sobre pssh o errors durant la instal·lació o l'ús, no dubteu a publicar un comentari.