byobu 的 windows.tmux 中的 watch、tail 和 grep 组合

byobu 的 windows.tmux 中的 watch、tail 和 grep 组合

我正在(重)写我windows.tmux常用的byobu会话。以下是我的确切要求:

我想要一个带有 root 提示符的选项卡(或窗口?)。(启动时,它会等待 sudo passwd)。我希望第二个选项卡水平分割。在上面的部分我想监控我的,/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组合可以根据我的需要实现(感谢watchtailgrep钢铁司机他的回答这里

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

GNU bash, version 4.4.7(1)-release我在 17.04 上使用。

提前致谢——迈克

我还没有尝试过screen。这是可实现使用screen

答案1

在你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;

这将在第二个窗口顶部分割中为您提供 bash-prompt,并在底部提供 dmesg。然后输入您最喜欢的watch命令:

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

不确定您是否可以为此创建别名!

希望这可以帮助。

相关内容