在 Linux 上以 tail 模式使用该less
命令(F 命令或 less -f)始终会在某些机器和/或某些文件上停止工作。新的更改会停止显示。
我知道我很久以前就修复过这个问题,但我不记得解决方案是什么。
有任何想法吗?
答案1
尝试使用less --follow-name
。即使文件具有相同的名称,更新它的进程也可能会以更改文件 inode 的方式进行更新 - 因此从操作系统的角度来看,更新后它是一个新文件。
答案2
您是否正在查看由 logrotate 轮换的日志文件?如果 less 查看的文件被重命名(例如,通过 logrotate 从 log 重命名为 log.0),less 将继续监视该文件,即使新条目被写入另一个文件(使用原始名称)。
答案3
也许你可以尝试tail -f [filename]
一下?
答案4
是的less +F --follow-name
。--follow-name
只是监视同名文件,而没有在我的情况下接收传入的更改(CentOS 7)。
实际上我为此创建了一个别名:
添加此行/etc/profile.d/alias.sh
:
alias lf="less +F --follow-name"
保存并获取它以供现在使用。. /etc/profile.d/alias.sh