在过去的 30 分钟里,我一直在调试一个无法验证第三方服务器正在访问我的站点的问题。
我有以下命令:
tail -f /var/log/mysite.pythonanywhere.com.access.log
而且我没有看到控制台中输出任何文本。
所以事实证明,第 3 方确实访问了我的服务器,但该条目没有换行符,因此tail -f
没有立即刷新。
这是要添加到日志中的内容:
103.7.30.108 - - [20/May/2016:06:23:20 +0000] "GET /wechat?signature=0a99723f6953778a5b86a167d03bb720ff703896&echostr=2566246727656931322×tamp=1463725400&nonce=784777684 HTTP/1.1" 200 19 "-" "Mozilla/4.0" "
如何在/var/www/access.log
上使用tail -f
并强制立即刷新每个字符?
步骤 1
默认情况下,I/O 处于缓冲状态。 您想关闭缓冲tail -f
。 要在 Linux 上执行此操作,请使用 stdbuf
:
stdbuf -o0 tail -f /path/to/logfile
-o0
告诉stdbuf
使输出无缓冲。
stdbuf
是GNU coreutils的一部分,应该包含在任何最近的Linux发行版中。
步骤 2
您没有提到哪个进程正在写入日志文件。 它有可能缓冲其输出。 您可能需要查看其文档并关闭其输出缓冲。