¿Puedo pasar una ejecución de script posterior a un shell de conexión ssh establecido?

¿Puedo pasar una ejecución de script posterior a un shell de conexión ssh establecido?

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"

información relacionada