web-dev-qa-db-ja.com

複数のリモートファイルをテールする

テール2ファイルをリモートする方法はありますか?

ロードバランサーの背後に2つのサーバー(aとb)があり、可能であればこのようなことをしたいと思います。

tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log

ありがとう!

43
Pablo Fernandez

これは私のために働きました:

ssh -n user@hostname1 'tail -f /mylogs/log' &
ssh -n user@hostname2 'tail -f /mylogs/log' &
31
einstiien

私の好ましいオプションは、マルチテイルを使用することです。私は次のようなものを実行します:

multitail -l 'ssh user@Host1 "tail -f /some/log/file"' -l 'ssh user@Host2 "tail -f /some/log/file"'
34
milosgajdos

fabric を使用して、複数のホスト(および必要に応じてgrep結果)をテールすることができます。

$ fab -P -u 'USER' -p 'PASSWORD' --linewise -H Host1,Host2,Host3 -- tail -f /path/to/my/log.log | grep ERROR
8
jbochi

チェックアウト stackoverflowのこの回答 -dshとtail -fを使用します。

6
mrm

私はそれが使用することも可能かもしれないと思っていました:

ssh -f user@hostname1 "tail -f /var/log/file" > /tmp/somefile &
ssh -f user@hostname2 "tail -f /var/log/file" > /tmp/somefile &

Sshの後に-fオプションを指定すると、バックグラウンドで実行する前にパスワードを入力できます。次に、1行ずつ結果を1つのファイルにして実行します。

tail -f /tmp/somefile

出力を表示するために他のテールオプションを使用したい場合は、現在の「テール」コマンドをもう少し制御できます。

6
bjcullinan

multitail を見てください。上記の例と同様に、sshへのコマンドとして指定すると、1つの画面に複数のログが表示されます(簡単にスクロールできるようにバッファリングされます)。また、カラーリングも行います。これは、異常の発見に非常に役立ちます。

5
Marcin

Parallel ssh にはこれに対する素晴らしい解決策があります:

pssh -t0 -H 'Host-01 Host-02 Host-03 Host-04' -P tail -f /var/log/app.log
  • -t0接続タイムアウトを無効にします。それ以外の場合、psshは接続を閉じました
  • -H '<Host>...'は、コマンドを実行するホストのリストです
  • -Pは、各ホストの標準出力の印刷を有効にします
  • tail -f /var/log/app.logは、リモートシェルが実行できる任意のコマンドです。
2
Augusto Hack

あなたはdbitailをチェックアウトできます。

A Java私が作成したツールで、SSHを使用してローカルおよび遠隔のログファイルを読み取ることができます。使用方法はかなり簡単です。

さらにいくつかの説明: https://github.com/pschweitz/DBITail/wiki

Javaランタイム(Java 8_40以上が必要))内で実行可能なネイティブjarリリースのオペレーティングシステムに対応するバージョンをダウンロードするだけです。

https://github.com/pschweitz/DBITail/releases

完全なドキュメントを見つけることができます(I Githubのページにも埋め込まれています)

フィリップ

1

このようなことについてどう思いますか? http://Gist.github.com/303175

1
Messa

ただ奇妙な解決策ですが、うまくいきます!:

画面1

ssh user@hostname1 "tail -f /var/log/file" > /dev/pts/6

画面2

ssh user@hostname2 "tail -f /var/log/file" > /dev/pts/6
1
Mel

または、screenを使用して2つの端末を作成し、それらを分割することもできます。

ログファイルをテイルしたい最初のホストにSSH接続し、テイルを実行する前にscreenと入力します。

次に、このホストのファイルをテールします。

CTRL + A、cは新しい画面またはウィンドウを作成します。この新しいウィンドウからsshで2番目のホストにアクセスし、そこにファイルをテールします。

次に、分割画面を作成します

CTRL + A、SHIFT + S、これにより、上部に現在のシェル、下部に空の分割画面が作成されます。下部に切り替えて最初の画面をその中に配置するには、

CTRL + A、TAB、これで下部に移動します。次に、最初のSSHセッションをこの領域に持ち込みます。

CTRL + A、 "(引用符)、最初のセッションを選択してEnterキーを押します。

これは多くの体操のように見えるかもしれませんが、実際はそうですが、数回使用すると慣れます。

これは、画面のコマンドの非常に優れたチュートリアルまたはクイックリファレンスです。 http://www.pixelbeat.org/lkdb/screen.html

さらに、.screenrcファイルを作成して、最初にscreenに入るときに説明した内容の多くを自動化することができます。

これに関するもう1つの良い点は、セッションを閉じて、別の場所で再開できることです。たとえば、あなたは仕事中で、いくつかの監視が行われています。ログアウトせずにセッションを閉じ、家に帰ったときや別の場所に戻ったときに再開できます。

0
Kilo

Bashとrsyncを使用してリモートでファイルをテールすることができます。私はそれを使用しています。これは素晴らしいbashスクリプトであり、次のチュートリアルを参照してください

bashとrsyncを使用してリモートでファイルをテール

0
user1381775