GNU/Linux >> Tutoriales Linux >  >> Linux

DSH:ejecute un comando de Linux en varios hosts a la vez

Hace un tiempo, escribimos una guía que describía cómo ejecutar un solo comando en varios sistemas remotos a la vez usando PSSH en sistemas tipo Unix. Hoy vamos a hablar sobre una herramienta similar llamada DSH . Significa D distribuido sh ell (o concha de bailarina). Usando DSH, podemos ejecutar un comando de Linux en múltiples hosts a la vez. Es una utilidad gratuita y de código abierto escrita con C lenguaje de programación.

Instalar DSH

En Arch Linux y derivados:

DSH está disponible en AUR , para que pueda instalarlo usando los ayudantes de AUR, por ejemplo, Yay , como se muestra a continuación.

$ yay -S dsh

En Debian, Ubuntu:

DSH está disponible en los repositorios oficiales de Debian, Ubuntu y otros sistemas basados ​​en DEB como Linux Mint, Elementary OS. Para instalarlo DSH en cualquier sistema basado en DEB, ejecute:

$ sudo apt-get install dsh

Para otras distribuciones de Linux, DSH se puede compilar e instalar manualmente como se describe a continuación.

DSH requiere libdshconfig para que funcione. Puede descargar la última versión de libdshconfig y dsh desde este enlace .

Una vez descargado, vaya al directorio donde ha descargado ambos paquetes.

Primero compile e instale libdshconfig usando los comandos:

$ tar xfz libdshconfig*.tar.gz
$ cd libdshconfig-*
$ ./configure ; make
$ sudo make install

Luego, compile e instale dsh también.

$ tar xfz dsh*.tar.gz
$ cd dsh-*
$ ./configure ; make
$ sudo make install

Configurar DSH

Hemos instalado dsh. Ahora configuremos DSH para ejecutar comandos en múltiples hosts. Para hacerlo, primero edite el archivo de configuración de DSH y establezca el valor de shell remoto de rsh a ssh.

En Arch Linux y derivados, el archivo de configuración predeterminado es /etc/kgname/dsh.conf .

Edite este archivo:

$ sudo vi /etc/kgname/dsh.conf

Cambiar remoteshell valor de rsh a ssh .

#default configuration file for dsh.
 # suppled as part of dancer's shell

verbose = 0

remoteshell =ssh
 showmachinenames = 0
waitshell=1 # whether to wait for execution

#remoteshellopt=...

# default config file end.

En sistemas basados ​​en DEB:

$ sudo vi /etc/dsh/dsh.conf

remoteshell =ssh

En sistemas basados ​​en RPM:

$ sudo vi /usr/local/etc/dsh.conf

remoteshell =ssh

A continuación, debemos agregar los hosts remotos donde queremos ejecutar los comandos.

Para hacerlo, cree/edite la máquinas.lista y agregue los hosts remotos.

En Arch Linux y derivados:

$ sudo vi /etc/kgname/machines.list

Agregue la IP o el nombre de host del host remoto uno por uno como se muestra a continuación.

192.168.43.100 
192.168.43.101

En sistemas basados ​​en DEB:

$ sudo vi /etc/dsh/machines.list
192.168.43.100 
192.168.43.101

En sistemas basados ​​en RPM:

$ sudo vi /usr/local/etc/machines.list
192.168.43.100
192.168.43.101

Puede agregar cualquier cantidad de hosts remotos en machines.list archivo.

Ejecute un comando de Linux en varios hosts a la vez mediante DSH

Una vez que haya agregado todos los hosts remotos y haya creado un usuario común en todos sus sistemas remotos, puede ejecutar el comando de Linux en todos los hosts remotos a la vez. Digamos, por ejemplo, que el siguiente comando ejecutará uname -r Comando en todos los hosts remotos a la vez.

$ dsh -a -c uname -r

Le pedirá que ingrese el nombre de usuario y la contraseña del host remoto respectivo. Si no desea ingresar las credenciales de usuario cada vez que ejecuta este comando, simplemente configure el inicio de sesión SSH sin contraseña .

Salida de muestra:

3.10.0-514.16.1.el7.x86_64
4.4.0-34-generic

Como puede ver en el resultado anterior, la utilidad dsh muestra la versión Kernel de mis dos hosts remotos.

Para obtener más detalles, consulte la página del manual.

$ man dsh

Lectura sugerida:

  • Ejecutar comandos en sistemas Linux remotos a través de SSH

Linux
  1. ¿Ssh a múltiples hosts y ejecutar un comando?

  2. Ejemplos de comandos de tiempo de Linux

  3. Ejecute el comando en varios servidores Linux desde Windows

  4. Ejemplos de comandos uptime en Linux

  5. linux:cómo ejecutar un comando en un directorio dado

Cómo ejecutar un comando durante un tiempo específico en Linux

Cómo ejecutar múltiples comandos de Linux en un solo comando

11 ejemplos útiles de comandos de fecha de Linux

Cómo ejecutar varios comandos de Linux a la vez en la terminal de Linux

Ejemplos de comandos de fecha de Linux

Entendiendo el comando time en Linux