LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Le gustaría ejecutar o ejecutar un comando en un host Linux, FreeBSD, Solaris, UNIX remoto y mostrar el resultado localmente. Una vez obtenido el resultado, puede ser utilizado por un script o programa local. Algunos ejemplos en los que la ejecución de comandos en un servidor remoto es útil para desarrolladores y administradores de sistemas:

  • Sistema de archivos e información del disco
  • Obtener información del usuario
  • Descubre todo el proceso en ejecución
  • Averigüe si un servicio en particular se está ejecutando o no, etc.
  • Puede usar ssh para este propósito. Sin embargo, tenga en cuenta que el sistema remoto debe ejecutar OpenSSH o cualquier otro servidor SSH de su elección.

Sintaxis para ejecutar comandos en un host Linux o Unix remoto

La sintaxis es la siguiente:

ssh {USER-NAME}@{REMOTE-HOST} command1
ssh [USER-NAME]@[REMOTE-HOST] command or script
ssh [USER-NAME]@[REMOTE-HOST] -- command -arg1 -arg2
# Rum multiple commands #

ssh [USER-NAME]@[REMOTE-HOST] -- "command1 && command2"
ssh [USER-NAME]@[REMOTE-HOST] -- command1 -arg1 >/path/to/local.output.txt
# Want to run remote command over ssh with sudo? #

ssh -t [USER-NAME]@[REMOTE-HOST] -- sudo command1 -arg1 arg2

Dónde,

  1. ssh: El ssh (u otro cliente SSH) es un programa para iniciar sesión en una máquina remota y para ejecutar comandos en una máquina remota.
  2. USER-NAME: nombre de usuario del host remoto.
  3. REMOTE-HOST: dirección IP o nombre de host del host remoto, como fbsd.cyberciti.biz.
  4. command or script: El comando o script de shell se ejecuta en el host remoto en lugar de un shell de inicio de sesión.
  5. --: El guion doble  --  significa indicadores de fin de línea de comandos . Le dice a ssh que no intente analizar lo que viene después de las opciones de la lÃnea de comandos. Consulte "¿Qué significa" (doble guión) en el comando SSH Shell? para obtener más información.
  6. -t: La -topción necesaria cuando se usa el comando sudo sobre ssh. De lo contrario, obtendrá sudo: Lo sentimos, debe tener un tty para ejecutar sudo Error en un mensaje de Linux y Unix.
  7. >/path/to/local.output.txt: Ejecute el comando en un host remoto y almacene los resultados en este archivo.

Ejemplos sobre la ejecución de comandos en un host remoto

Obtenga información del disco de un servidor llamado 192.168.1.200 usando el comando df o el comando ncdu o el comando pydf o el comando duf:

ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. df -h
ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. -- df -h


Enumere qué puertos están abiertos en el host remoto de Linux usando el comando netstat o el comando ss:

ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. netstat -vatn

en FreeBSD, puede enumerar o mostrar los puertos abiertos usando el comando sockstat. Por ejemplo:

ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. -- sockstat -4

según la política de seguridad, es posible que deba ejecutar el comando ssh con el comando sudo

ssh -t Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. -- sudo netstat -4

Consulte "Cómo ejecutar varios comandos SSH en una máquina remota y salir de forma segura" para obtener ejemplos avanzados.

Reinicie el host remoto

¿Quiere reiniciar el servidor Linux o Unix remoto? Pruebe el comando de reinicio de la siguiente manera:

ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. reboot

Si no puede iniciar sesión como usuario raíz, utilice el comando sudo:

ssh -t Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. -- sudo /sbin/reboot

Reinicie el servidor mysql de la siguiente manera encerrando múltiples argumentos de la línea de comando usando comillas simples o dobles:

ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. '/etc/init.d/mysql restart'

O use el comando systemctl:

ssh -t Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. -- sudo systemctl restart mysqld

Obtenga información de la memoria de Linux y almacene ese resultado (salidas) en un archivo local llamado /tmp/memory.status.txt: luego puede ver el archivo usando comandos estándar como cat, more, bat command o less command de la siguiente manera: puede también ejecute múltiples comandos o use las tuberías, el siguiente comando muestra la memoria en formato de "memoria disponible = memoria usada + memoria libre":

ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. -- 'free -m' > /tmp/memory.status.txt

cat /tmp/memory.status.txt

ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. -- free -m | grep "Mem:" | awk '{ print "Total memory (used+free): " $3 " + " $4  " = " $2 }'

Salidas de muestra que se muestran en mi máquina macOS Unix local desde el servidor Linux remoto:

Total memory (used+free): 2279 + 25446 = 32110

Consulte cómo configurar ssh para iniciar sesión sin contraseña mediante la autenticación basada en clave pública para obtener más información. También vea el script de shell de muestra para obtener el tiempo de actividad, el uso del disco, el uso de la CPU, el uso de RAM, la carga del sistema, etc. desde múltiples servidores Linux y genera la información en un solo servidor en formato html.

Resumiendo

Expliqué cómo ejecutar un comando en un servidor Linux o Unix remoto usando el comando ssh. Para obtener más información, consulte las siguientes páginas del manual utilizando el comando man o el comando de ayuda:

man ssh
man bash

 

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías