web-dev-qa-db-ja.com

「byobu」の「windows.tmux」の「watch」、「tail」、「grep」の組み合わせ

頻繁に使用するbyobuセッション用にwindows.tmuxを(再)作成しています。以下は私の正確な要件です。

ルートプロンプトのあるタブ(またはウィンドウ?)が必要です。 (開始時に、Sudo passwdを待ちます)。 2番目のものを水平に分割したいと思います。上部では/var/log/syslogを、下部ではdmesgを監視します。これまでのところ、私は以下を行うことで達成することができます。

new-session -AD -s 'root' Sudo su - ;
new-window -n log watch -n 1 tail -n 15 /var/log/syslog
split-window watch dmesg | tail -15;

ただし、(このスレッドとは完全に無関係です)syslog(ほぼ4/5行/秒)に多くのエントリがあるという問題は、監視中に回避したいものです。これらの行でgrep -vしたいと思います。 watchtail、およびgrepの組み合わせは、私のニーズに応じて実現できます(彼の答え here に対して steeldriver に感謝します)。 )

watch -n 1 'tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern2"'

ここから問題が始まります:window.tmuxに次の行を含めると

new-window -n log watch -n 1 'tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern2"'

ええ、

sh: 1: tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern2": not found

実際、より一般的な問題は、コマンドを引用符で囲んだ場合(シングル'またはダブル")、同じエラーが発生することです。

byobu --versionの出力は次のとおりです。

byobu version 5.116
tmux 2.3

17.04でGNU bash, version 4.4.7(1)-releaseを使用しています。

事前に感謝します-マイク

screenを試していない。 screenを使用してこれはachievableですか?

1
Mike V.D.C.

bashrcにエイリアスを作成します

alias monitor_log='tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern1"'

windows.tmuxは次のいずれかです。

new-session -AD -s 'root' Sudo su - ;
new-window -n log;
split-window watch dmesg | tail -15;

これにより、2番目のウィンドウ上部の分割でbashプロンプトが表示され、下部でdmesgが表示されます。そして、お気に入りのwatchコマンドを与えます:

watch -n 1 'tail -n 15 /var/log/syslog | grep -v -E "pattern1|pattern2"'

このエイリアスを作成できるかどうかはわかりません!

お役に立てれば。

1
user5325