Pesquisa de site

PSSH - Executar comandos em vários sistemas Linux remotos


Sem dúvida, o OpenSSH é uma das ferramentas mais usadas e poderosas disponíveis para Linux, que permite conectar-se com segurança a sistemas Linux remotos por meio de um shell e transferir arquivos com segurança de e para sistemas remotos.

Mas a maior desvantagem do OpenSSH é que você não pode executar o mesmo comando em vários hosts de uma só vez e o OpenSSH não foi desenvolvido para executar tais tarefas.

É aqui que a ferramenta Parallel SSH ou PSSH se torna útil, é um aplicativo baseado em Python, que permite executar comandos em vários hosts em paralelo ao mesmo tempo.

A ferramenta PSSH inclui versões paralelas do OpenSSH e ferramentas relacionadas, como:

  • pssh – é um programa para executar ssh em paralelo em vários hosts remotos.
  • pscp – é um programa para copiar arquivos em paralelo para vários hosts.
  • prsync – é um programa para copiar arquivos de forma eficiente para vários hosts em paralelo.
  • pnuke – elimina processos em vários hosts remotos em paralelo.
  • pslurp – copia arquivos de vários hosts remotos para um host central em paralelo.

Essas ferramentas são boas para administradores de sistema que trabalham com grandes coleções de nós em uma rede.

Instale PSSH ou SSH paralelo no Linux

Neste guia, veremos as etapas para instalar a versão mais recente do programa PSSH (ou seja, versão 2.3.1) em distribuições baseadas em RHEL, como Fedora, CentOS Stream , Rocky & AlmaLinux e distribuições baseadas em Debian, como Ubuntu e Linux Mint usando o comando pip.

O comando pip é um pequeno programa (substituto do script easy_install) para instalar e gerenciar o índice de pacotes de software Python.

Em distribuições baseadas em RHEL

Nas distribuições RHEL, você precisa primeiro instalar o pacote pip (ou seja, python-pip) em seu sistema para instalar o PSSH programa usando yum ou dnf.

yum install python-pip
OR
dnf install python-pip

Depois de instalar a ferramenta pip, você pode instalar o pacote pssh usando o comando pip, conforme mostrado abaixo.

pip install pssh  

Em distribuições baseadas em Debian

Em distribuições baseadas em Debian, leva um minuto para instalar o pssh usando o comando pip.

sudo apt install python-pip
sudo pip install pssh

Como faço para usar o pssh no Linux?

Ao usar pssh você precisa criar um arquivo host com o número de hosts junto com o endereço IP e o número da porta que você precisa para se conectar a sistemas remotos usando pssh.

As linhas no arquivo host estão no formato a seguir e também podem incluir linhas em branco e comentários.

192.168.0.10:22
192.168.0.11:22

Execute um único comando em vários servidores Linux

Você pode executar qualquer comando único em hosts Linux diferentes ou múltiplos em uma rede executando um comando pssh. Existem muitas opções para usar com pssh conforme descrito abaixo:

Veremos algumas maneiras de executar comandos em vários hosts usando pssh com diferentes opções.

  • Para ler o arquivo host, inclua a opção -h host_file-name ou --hosts host_file_name.
  • Para incluir um nome de usuário padrão em todos os hosts que não definem um usuário específico, use a opção -l nome de usuário ou --user username.
  • Você também pode exibir a saída padrão e o erro padrão à medida que cada host é concluído. Usando a opção -i ou --inline.
  • Você pode querer fazer com que as conexões expirem após um determinado número de segundos, incluindo a opção -t number_of_seconds.
  • Para salvar a saída padrão em um determinado diretório, você pode usar a opção -o /directory/path.
  • Para pedir uma senha e enviá-la para SSH, use a opção -A.

Vejamos alguns exemplos e uso de comandos pssh:

Execute comandos em vários hosts Linux

1. Para executar echo “Hello TecMint ” no terminal dos múltiplos hosts Linux pelo usuário root e solicitar a senha do usuário root, execute este comando abaixo.

Importante: Lembre-se de que todos os hosts devem ser incluídos no arquivo host.

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: No comando acima “pssh-hosts” há um arquivo com a lista do endereço IP do servidor Linux remoto e o número da porta SSH que você deseja executar comandos.

Encontre o uso de disco de vários hosts Linux

2. Para descobrir o uso do espaço em disco em vários servidores Linux em sua rede, você pode executar um único comando como segue.

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

Encontre o tempo de atividade de vários hosts Linux

3. Se desejar saber o tempo de atividade de vários servidores Linux de uma só vez, você pode executar o seguinte comando.

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

Você pode visualizar a página de entrada manual do comando pssh para obter muitas outras opções e descobrir mais maneiras de usar o pssh.

pssh --help

Resumo

SSH paralelo ou PSSH é uma boa ferramenta para executar comandos em um ambiente onde um administrador de sistema precisa trabalhar com muitos servidores em uma rede . Isso tornará mais fácil a execução remota de comandos em diferentes hosts de uma rede.

Espero que este guia seja útil e em caso de qualquer informação adicional sobre pssh ou erros durante a instalação ou uso, fique à vontade para postar um comentário.