¿Cómo puedo iniciar sesión en un servidor remoto y ejecutar un conjunto de comandos y luego, cuando termine de cerrar sesión y continuar mi script?Iniciar sesión mediante un script en un servidor remoto y ejecutar un conjunto de comandos
Gracias.
¿Cómo puedo iniciar sesión en un servidor remoto y ejecutar un conjunto de comandos y luego, cuando termine de cerrar sesión y continuar mi script?Iniciar sesión mediante un script en un servidor remoto y ejecutar un conjunto de comandos
Gracias.
ssh se puede utilizar para ejecutar un comando, en lugar de iniciar un shell de inicio de sesión interactivo remoto. Por ejemplo:
ssh [email protected] ls
iniciará sesión en host y ejecutar el comando ls
.
Puede utilizar esto dentro de una escritura del golpe de forma normal:
#!/bin/bash
# do local commands
ssh [email protected] "ls; grep something file.txt; copy a b"
# do more local commands
De página del manual de ssh, el estado de salida será el estado de salida del comando remove o 255 si se produjo un error.
El problema es que es una larga lista de comandos (155 líneas). – emurad
Algunas opciones: (1) coloque los comandos en un archivo separado, use 'scp' para copiar los comandos en el servidor remoto y ejecútelo o (2) ponga los comandos en una variable dentro del script bash y simplemente ejecútelo como 'ssh user @ host" $ COMMAND "'. Puede leer un archivo en COMMAND en lugar de tenerlo todo en línea: 'COMMAND = $ (cat remote_cmds.sh)' –
Por qué no funcionan: ssh [email protected] "EEEEE = 'eeeesssse' echo '$ EEEEE ' echo \ "$ EEEEE \" " – emurad
pequeña variación con el formato de código más fácil de usar y ssh
bash -s
:
echo '
globchar="*"
ls -1d $globchar
ls -ld $globchar
' |
ssh [email protected] "bash -s --"
Como otros han dicho, puede utilizar ssh
. Sin embargo, si está ejecutando un script, puede configurar ssh
para iniciar sesión sin una contraseña. Puede hacerlo configurando una clave pública/privada a través del comando ssh-keygen. Cambie también el permiso de los archivos clave (id_rsa, id_rsa.pub) como 600 para la clave pública y 400 para la clave privada para la seguridad de la modificación. chmod 600 id_rsa.pub; chmod 400 id_rsa
En su sistema, ejecuta ssh-keygen
para generar las claves pública y privada. En Unix/Linux/Mac, estos se encuentran en el directorio $HOME/.ssh
. (¡Mantenga la frase de contraseña en blanco!). Luego, desea crear un archivo llamado authorized_keys
en el equipo remoto bajo el directorio $HOME/.ssh
y copiar allí su clave pública. No es necesario generar claves de cifrado en m/c remoto.
Ahora, cuando usted hace ssh
o scp
en la máquina remota, no tiene que dar la contraseña.
No pongas Perl como palabra clave a menos que tengas una pregunta de Perl –