Desejo executar uma parte do script após o estabelecimento de uma conexão ssh bem-sucedida. Gostaria de tornar mais fácil acompanhar um arquivo de log com um script que estou tentando escrever.
Aqui está o trabalho do script em andamento:
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
Quando executo o script, espero o seguinte:
[Log Tunnel]
connecting to foo.dev.company.net
[email protected]'s password: ***********
# Output of Tail
Gostaria de saber se é possível estabelecer a conexão ssh e passar ao shell subsequente um novo script que deve ser executado logo após a inicialização.
Editar:
Meu objetivo é seguir um arquivo de log em um servidor remoto em meu shell. O script deve facilitar o acompanhamento desses arquivos de log com minha digitação simples ./rtail.sh foo
. Ao executar esse comando, espero que o shell exiba a saída final específica, dependendo do servidor remoto que escolhi pelo argumento do shell. Eu só quero um atalho para:
- ssh para servidor remoto
- tail -f caminho/para/logfile.log
Responder1
Se bem entendi, você está procurando algo assim:
#!/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"