Я хочу выполнить часть скрипта после успешного установления соединения 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"