Quiero ejecutar una parte del script después de que se haya establecido una conexión ssh exitosa. Me gustaría que me resulte más fácil seguir un archivo de registro con un script que estoy intentando escribir.
Aquí está el trabajo del guión en progreso:
echo "[Log Tunnel]"
if [ "$1" == "foo" ]
then
echo "connecting to foo.dev.company.net"
ssh foo.dev.company.net
tail -f var/logs/staff/backend/backend.log # what's the way to do this
fi
if [ "$1" == "bar" ]
then
echo "connecting to bar.dev.company.net"
ssh bar.dev.company.net
fi
Cuando ejecuto el script espero lo siguiente:
[Log Tunnel]
connecting to foo.dev.company.net
[email protected]'s password: ***********
# Output of Tail
Me pregunto si es posible establecer la conexión ssh y pasar al shell posterior un nuevo script que debería ejecutarse inmediatamente después del inicio.
Editar:
Mi objetivo es tener un seguimiento de un archivo de registro en un servidor remoto en mi shell. El script debería facilitar el camino para seguir esos archivos de registro con mi simple escritura ./rtail.sh foo
. Al ejecutar ese comando, espero que el shell muestre la salida final particular dependiendo del servidor remoto que he elegido mediante el argumento del shell. Sólo quiero un atajo para:
- ssh al servidor remoto
- tail -f ruta/a/logfile.log
Respuesta1
Si entendí correctamente, estás buscando algo como esto:
#!/bin/sh
echo "[Log Tunnel]"
if [ "$1" = "foo" ]
then
server="foo.dev.company.net"
file="var/logs/staff/backend/backend.log"
elif [ "$1" = "bar" ]
then
server="bar.dev.company.net"
file="some/other/file"
fi
echo "connecting to $server"
ssh "$server" tail -f "$file"