我想在 CentOS 中跟踪多个文件(并跟踪它们),我试过这个:
尾 -f 文件 1 文件 2 文件 3
但是输出很不友好
我也看过 multitail 但找不到 CentOS 版本。
我还有什么其他选择?
我想在 CentOS 中跟踪多个文件(并跟踪它们),我试过这个:
尾 -f 文件 1 文件 2 文件 3
但是输出很不友好
我也看过 multitail 但找不到 CentOS 版本。
我还有什么其他选择?
Multitail 在 rpmforge 存储库中可用于 CentOS。要添加 rpmforge 存储库,请查看3rd Party Repositories 上的文档。
我发现这里描述的解决方案在 centos 上运行良好:
感谢拉梅什·纳塔拉詹
$ vi multi-tail.sh
#!/bin/sh
# When this exits, exit all back ground process also.
trap 'kill $(jobs -p)' EXIT
# iterate through the each given file names,
for file in "$@"
do
# show tails of each in background.
tail -f $file &
done
# wait .. until CTRL+C
wait
您可以通过在 Emacs 子窗口中打开 tail -f 的多个实例来模拟多尾。
我通常只是打开另一个 xterm 并在那里运行一个单独的“tail -f”。
否则,如果我使用“screen”工具,我将在那里设置单独的“tail -f”命令。我不太喜欢这样,因为在使用 Page Up 和 Page Down 键之前需要几次击键才能启用屏幕滚动。我更喜欢只使用 xterm 的滚动条。
您可以使用 watch 命令,我用它同时跟踪两个文件:
观看 -n0 尾 -n30 文件 1 文件 2
一个老问题的更好答案......
我在我的 .bashrc 中创建了一个 shell 函数(显然假设你使用 bash 作为你的 shell)并使用 tmux。您可能会使这一切复杂化,并且在没有临时文件的情况下执行此操作,但是如果您试图确保名称中带有空格或其他奇怪字符的文件仍然有效,那么引用将很难看。
multitail ()
{
cmdfile=`mktemp`
echo "new-session -d \"tail -f '$1'\"" >$cmdfile
shift
for file in "$@"
do
echo "split-window -d \"tail -f '$file'\"" >>$cmdfile
done
echo "select-layout even-vertical" >>$cmdfile
tmux source-file $cmdfile \; attach && rm -f $cmdfile
}