ssh 接続が正常に確立された後にスクリプト部分を実行したいです。作成しようとしているスクリプトでログ ファイルを簡単に tail できるようにしたいと思います。
進行中のスクリプトは次のとおりです。
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 接続を確立し、起動直後に実行する必要がある新しいスクリプトを後続のシェルに渡すことは可能でしょうか。
編集:
私の目標は、シェルでリモート サーバーのログ ファイルを tail することです。スクリプトを使用すると、簡単な入力でログ ファイルを tail できるようになります./rtail.sh foo
。このコマンドを実行すると、シェル引数で選択したリモート サーバーに応じて、シェルが特定の tail 出力を表示することを期待します。次のショートカットが必要です。
- リモートサーバーへのSSH
- tail -f パス/to/logfile.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"