Могу ли я передать последующее выполнение скрипта в установленную оболочку SSH-соединения?

Могу ли я передать последующее выполнение скрипта в установленную оболочку SSH-соединения?

Я хочу выполнить часть скрипта после успешного установления соединения ssh. Я хотел бы облегчить себе отслеживание файла журнала со скриптом, который я пытаюсь написать.

Вот сценарий, над которым ведется работа:

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 

При запуске скрипта я ожидаю следующее:

[Log Tunnel]
connecting to foo.dev.company.net
[email protected]'s password: ***********
# Output of Tail

Интересно, возможно ли вообще установить ssh-соединение и передать последующей оболочке новый скрипт, который она должна выполнить сразу после запуска.

Редактировать:

Моя цель — иметь следующий хвост к файлу журнала на удаленном сервере в моей оболочке. Скрипт должен облегчить способ отследить эти файлы журнала простым набором текста ./rtail.sh foo. При выполнении этой команды я ожидаю, что оболочка отобразит конкретный вывод хвоста в зависимости от удаленного сервера, выбранного мной аргументом оболочки. Мне просто нужна комбинация клавиш для:

  • ssh на удаленный сервер
  • tail -f путь/к/файлу/журнала.log

решение1

Если я правильно понимаю, вы ищете что-то вроде этого:


#!/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"

Связанный контент