linux - Logrotate - 日志文件顶部的垃圾字符串

标签 linux logrotate

我最近设置了以下 logrotate 作业:

/var/log/app.*.log {
    daily
    rotate 7
    copytruncate
    nocompress
    dateext
}

我发现当我查看我的日志文件时,它们以一些二进制垃圾开头。我必须使用 --text 进行 grep 并在 vim 中加载文件需要很长时间。

这是预期的吗?我能做些什么来阻止它吗?

注意:日志以前是utf8文本文件。

最佳答案

我遇到了同样的问题。我发现问题是我输出到日志而不是追加。例如:

./application> logfile.log

什么时候应该:

./application >> logfile.log

发生的事情是 logrotate 上的 copytruncate 移动文件,然后输出似乎尝试写入相同的位置并用大量十六进制绒毛填充文件。这会将要检测的文件更改为二进制文件而不是文本文件。

改成append后,再没出现过这个问题。

关于linux - Logrotate - 日志文件顶部的垃圾字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648008/

相关文章:

linux - 列出其内容可以与多个字符串中的任何一个匹配的所有文件名的最快方法

MySQL 重新启动会导致使用 M​​ySQL C API 的双重释放或损坏

linux - 每天使用 logrotate 清除日志文件

linux - Apache2 日志文件大小和性能

bash - logrotate:即使日志没有旋转,你也可以运行 postrotate 吗?

python - 如何从 python 中的日期命令输出中删除不必要的字符

c - Linux shell 上的 I/O 重定向

linux - 如何在字符串中捕获返回码并重新运行

linux - 通过 cron 以 root 身份记录旋转 "Permission Denied"

Python 日志记录 - logrotate 选项