相关疑难解决方法(0)

如何对日志轮换文件执行`tail -f`?

在长时间运行的系统上,我通常有一个终端

$ tail -f /var/log/kern.log
Run Code Online (Sandbox Code Playgroud)

或类似的东西打开。

但有时我必须重新启动此类命令,因为不再显示新消息。

我认为这是因为替换日志文件的日志轮换作业tail -f正在“观察”。

如何避免这种重启问题?

我可以调用tail这样它注意到旋转过程并做正确的事情吗?

(我在rsyslogd默认使用的 Ubuntu 11.04 系统上注意到了这个问题。)

logs logrotate rsyslog tail

124
推荐指数
1
解决办法
4万
查看次数

相当于“tail -f”的“less”命令行

我想使用less打开一个文件,并让它自动滚动类似于tail -f.

我知道我可以做到less file,然后Shift-F永远向前冲;喜欢tail -f

我需要,less因为它提供了--raw-control-chars标志,这是必要的,因为我的输入是丰富多彩的。

shell less tail

68
推荐指数
2
解决办法
4万
查看次数

我如何“跟踪”一个文件?

正在按顺序下载文件wget

如果我开始用 解压它cat myfile.tar.bz2 | tar -xj,它可能会正确解压或因“意外 EOF”而失败,具体取决于哪个速度更快。

如何“跟踪”文件,即将文件内容输出到标准输出,但不要在 EOF 上退出,而是继续订阅该文件并继续输出数据的新部分,仅在文件被关闭时退出writer 并且在 N 秒内没有重新打开。


我根据@arielCo 的回答创建了一个脚本cat_and_follow,该脚本也终止了不再打开文件进行写入的时间。tail

pipe tail open-files files cat

33
推荐指数
3
解决办法
2万
查看次数

如何减少文件名而不是 inode 编号?

我有一个软件可以在它重新启动时轮换它的日志文件。但是,在开发过程中,我经常重启,所以我想随时监控最新的日志文件。

如果我less正常启动less program.log并按Shift+f到尾部,当日志文件轮换时,我继续监视旧日志文件。我认为这是因为 inode 编号保持不变并且less具有该 inode 的打开文件句柄。

是否可以监视当前调用的任何日志文件的最新活动program.log

具体来说,我在 Sun OS 上工作,所以在那里工作的解决方案将是理想的。

less logs solaris tail

11
推荐指数
2
解决办法
1150
查看次数

防止tail修改终端的字符集

在 Linux 终端 (CentOS) 中,我使用该命令tail --follow=name my-rolling-file.log来查看我的应用程序的日志。

有时在日志中,会转储一些二进制数据(我转储通常包含字符串的 Camel 消息的正文,但有时转储二进制和/或特殊字符,如 UTF-8 中的中文),当它发生时,我的终端会像管道字符|现在ö改为。

我只是猜测是二进制数据记录谁会导致问题,我想知道是否可以要求tail命令忽略特殊字符。我检查了手册页,但没有找到任何内容。

目前要解决我必须Ctrl-C拖尾的问题,请reset在终端中创建一个并重新启动tail命令。如果可能,我想阻止这些操作。

如果你知道另一个命令而不是tail,但具有相同的功能(跟随滚动文件)它是可以接受的,只要它可以在 CentOS 6.5 下安装和运行。

command-line terminal character-encoding tail

5
推荐指数
2
解决办法
5640
查看次数