在长时间运行的系统上,我通常有一个终端
$ tail -f /var/log/kern.log
Run Code Online (Sandbox Code Playgroud)
或类似的东西打开。
但有时我必须重新启动此类命令,因为不再显示新消息。
我认为这是因为替换日志文件的日志轮换作业tail -f
正在“观察”。
如何避免这种重启问题?
我可以调用tail
这样它注意到旋转过程并做正确的事情吗?
(我在rsyslogd
默认使用的 Ubuntu 11.04 系统上注意到了这个问题。)
我想使用less打开一个文件,并让它自动滚动类似于tail -f
.
我知道我可以做到less file
,然后Shift-F
永远向前冲;喜欢tail -f
。
我需要,less
因为它提供了--raw-control-chars
标志,这是必要的,因为我的输入是丰富多彩的。
正在按顺序下载文件wget
。
如果我开始用 解压它cat myfile.tar.bz2 | tar -xj
,它可能会正确解压或因“意外 EOF”而失败,具体取决于哪个速度更快。
如何“跟踪”文件,即将文件内容输出到标准输出,但不要在 EOF 上退出,而是继续订阅该文件并继续输出数据的新部分,仅在文件被关闭时退出writer 并且在 N 秒内没有重新打开。
我根据@arielCo 的回答创建了一个脚本cat_and_follow,该脚本也终止了不再打开文件进行写入的时间。tail
我有一个软件可以在它重新启动时轮换它的日志文件。但是,在开发过程中,我经常重启,所以我想随时监控最新的日志文件。
如果我less
正常启动less program.log
并按Shift+f到尾部,当日志文件轮换时,我继续监视旧日志文件。我认为这是因为 inode 编号保持不变并且less
具有该 inode 的打开文件句柄。
是否可以监视当前调用的任何日志文件的最新活动program.log
?
具体来说,我在 Sun OS 上工作,所以在那里工作的解决方案将是理想的。
在 Linux 终端 (CentOS) 中,我使用该命令tail --follow=name my-rolling-file.log
来查看我的应用程序的日志。
有时在日志中,会转储一些二进制数据(我转储通常包含字符串的 Camel 消息的正文,但有时转储二进制和/或特殊字符,如 UTF-8 中的中文),当它发生时,我的终端会像管道字符|
现在ö
改为。
我只是猜测是二进制数据记录谁会导致问题,我想知道是否可以要求tail
命令忽略特殊字符。我检查了手册页,但没有找到任何内容。
目前要解决我必须Ctrl-C
拖尾的问题,请reset
在终端中创建一个并重新启动tail
命令。如果可能,我想阻止这些操作。
如果你知道另一个命令而不是tail
,但具有相同的功能(跟随滚动文件)它是可以接受的,只要它可以在 CentOS 6.5 下安装和运行。