1.- Usar comandos separados por punto y coma :
Este ejemplo cambiará al directorio /var/log, contará la cantidad de líneas que contienen “error” en el archivo syslog y mostrará las últimas 5 líneas del archivo syslog.
1 |
ssh user@host 'cd /var/log; grep "error" syslog | wc -l; tail -n 5 syslog' |
2.- Usar comandos separados por doble ampersand :
Este ejemplo cambiará al directorio /var/log, creará un archivo comprimido de syslog como syslog.gz y eliminará el archivo syslog original solo si los comandos anteriores tuvieron éxito.
1 |
ssh user@host 'cd /var/log && gzip -c syslog > syslog.gz && rm syslog' |
3.- Usar comandos separados por un solo ampersand :
Este ejemplo buscará todos los archivos .txt en el directorio raíz y guardará los resultados en archivos.txt, esperará 5 segundos e imprimirá “¡Terminado!”, todo en paralelo.
1 |
ssh user@host 'find / -name "*.txt" > archivos.txt & sleep 5 & echo "¡Terminado!"' |
4.- Usar la agrupación de comandos :
Este ejemplo ejecutará dos grupos de comandos en paralelo: el primer grupo cambiará al directorio /var/log y guardará todas las líneas que contienen “error” del archivo syslog en errores.log, y el segundo grupo cambiará al directorio /var/tmp y mostrará el uso del disco para cada elemento.
1 |
ssh user@host '(cd /var/log; grep "error" syslog > errores.log) & (cd /var/tmp; du -sh *)' |
5.- Usar una subcapa :
Este ejemplo cambiará al directorio /var/log, contará la cantidad de líneas que contienen “error” en el archivo syslog y mostrará las últimas 5 líneas del archivo syslog, todo dentro de una subcapa (Ejecutar una subcapa (subshell) en Bash ofrece varias ventajas, incluyendo la capacidad de modificar el entorno de forma temporal, ejecutar comandos en paralelo y aislar procesos. Las subcapas permiten crear entornos de ejecución independientes dentro de los scripts, lo que facilita la gestión de procesos y la ejecución de comandos sin afectar el entorno principal).
1 |
ssh user@host 'bash -c "cd /var/log; grep error syslog | wc -l; tail -n 5 syslog"' |
6.- Ejecutar un script local de forma remota :
Para ejecutar un script local en el servidor remoto, se ejecuta de esta forma..
1 |
ssh user@host 'bash -s' < script_local.sh |
7.- Usar un Here Document :
Este ejemplo cambiará al directorio /var/log, contará la cantidad de líneas que contienen “error” en el archivo syslog y mostrará las últimas 5 líneas del archivo syslog en el host remoto.
1 2 3 4 5 |
ssh user@host << 'EOF' cd /var/log grep "error" syslog | wc -l tail -n 5 syslog EOF |