2016-08-08 1 views
0

私はremote host addressのユーザー入力を受け取り、その後、どのログを末尾に置くかを選択することに基づいて、スクリプトはそのログのテーリングを開始します。スクリプトを終了せずにbashスクリプトを使ってログをテールする方法は?

例:

printf "\nEnter the customers Cloud URL:\n" 
read -r customerURL 

printf "\nWhich log do you want to tail?\n1. JLOG\n2. CLOG\n3. HLOG\n" 
read -r whichlog 

ssh "$customerURL" 
tail -f /path/to/log 

これを実行すると、スクリプトが実行されますが、それがホストにSSH'ing完了したら、次に、それが終了します。私は何をしようとしていますか?これを処理するより良い方法はありますか?

+0

'ssh'コマンドは、リモートホストのシェルの* out *をログに記録するまで終了しません。その時点で、' tail'コマンドが実行されます。 – chepner

答えて

6

組み合わせをsshとtailは、ローカルホストの代わりにリモートホスト上で実行されるようにします。

+0

Perfecto! @Nick Bullのコメントを見て、それは私の考えを得た。私たちが実行できるリモートホスト上にあるスクリプトを持っているなら、例えば:apache_statusはホスト上のApache Webサーバー上の統計情報を吐き出します。それはsshコマンドと一緒に文字列を書く方法です? – Martin

2

は、バックグラウンド・プロセスを使用します。

tail -f /path/to/log & 

あなたのSSHセッションを終了するコマンドを殺す場合は、nohupを使用します。

nohup tail -f /path/to/log & 

あなたはまた、sshを経由して、これを送信することができます。

ssh [email protected] nohup tail -f /path/to/log & 
関連する問題