LinuxParty
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,
- 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.
- USER-NAME: nombre de usuario del host remoto.
- REMOTE-HOST: dirección IP o nombre de host del host remoto, como fbsd.cyberciti.biz.
- 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.
- --: 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.
- -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.
- >/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
-
AMD
- 10 comandos "IP" útiles para configurar interfaces de red
- Nvidia anuncia la RTX 4070, una 'GPU de escritorio con un precio algo razonable'
- Los lenguajes de programación favoritos por los grandes directivos de Empresas TI y Sotware
- Cómo utilizar los volúmenes de Docker para programar más rápido
- Entrenador en el móvil, ya es posible para mantenerte en forma.
- Cómo monitorear, vigilar y controlar la actividad de los usuarios de Linux con las herramientas psacct o acct
- Un dron que se parece y mueve como un pájaro, vuela más de hora y media. ¿Podrían vigilar parques nacionales y naturales?
- Crear una nueva partición. Convertir un directorio /Home a una partición Linux
- Cómo colaborar en documentos usando ONLYOFFICE Workspace
- Dinamarca y Alemania ahora construyen el túnel sumergido más largo del mundo
- Ejecución de comandos en un host Linux/UNIX remoto
- Cómo instalar Drupal CMS en Centos, AlmaLinux Rocky Linux y RHEL 8
- Cómo convertir archivos a codificación UTF-8 en Linux
- El petroleo podría no ser fósil, según la teoria de algunos científicos.
- Descubren una técnica para rejuvenecer la piel 30 años