linux – Logrotate创建长名称,不删除日志
发布时间:2020-12-13 17:26:02 所属栏目:Linux 来源:网络整理
导读:postgres_db_dump_20091016.gz.1.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021postgres_db_dump_20091017.gz.1.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-200
postgres_db_dump_20091016.gz.1.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 postgres_db_dump_20091017.gz.1.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 postgres_db_dump_20091018.gz.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 postgres_db_dump_20091019.gz.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 postgres_db_dump_20091020.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 postgres_db_dump_20091021.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 这是我强制运行logrotate时的示例输出(文件名).不知何故,它无法识别旧文件. 调试输出示例: glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' glob finding old rotated logs failed renaming /var/backup/postgres/postgres_db_dump_20091019.gz.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 to /var/backup/postgres/postgres_db_dump_20091019.gz.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 rotating log /var/backup/postgres/postgres_db_dump_20091020.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021,log->rotateCount is 4 dateext suffix '-20091021' glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' glob finding old rotated logs failed renaming /var/backup/postgres/postgres_db_dump_20091020.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 to /var/backup/postgres/postgres_db_dump_20091020.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 rotating log /var/backup/postgres/postgres_db_dump_20091021.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021,log->rotateCount is 4 dateext suffix '-20091021' glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' glob finding old rotated logs failed renaming /var/backup/postgres/postgres_db_dump_20091021.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 to /var/backup/postgres/postgres_db_dump_20091021.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 和配置文件: daily rotate 4 create 666 root root maxage 30 dateext compress missingok notifempty noolddir # system-specific logs may be also be configured here. /var/log/* { size=10M postrotate /usr/bin/killall -HUP syslog-ng endscript } /var/backup/postgres/postgres* { nocompress nocreate } 解决方法
这里的其他答案是正确的,您需要更改配置匹配的文件. / var / log中的文件可能会出现同样的问题,但压缩和10M大小限制的组合会阻止它发生.
我想指出的另一个问题是你要遇到的问题.构建Logrotate是为了依赖一致的日志文件名来旋出旧文件.当它处理日志文件时,它使用它作为基本名称,通过搜索旧版本将具有的特定扩展名来查找它的所有旧版本.这就是调试日志中的glob内容正在寻找的东西.由于您的文件名由于日期而每次都会更改,因此它将永远不会返回并查看那些旧文件名,因为它现在正在处理的文件名不匹配. 你可以做两件事.第一个选项是设置postgres或创建该转储文件的任何脚本不使用日期.保持文件名一致将让logrotate做到这一点,并清除旧的.或者,你可以完全跳过logrotate并在你的crontab中输入这样的东西: 0 4 * * * find /var/backup/postgres/postgres_db_dump_*.gz -mtime +10 -delete 这将每晚运行并删除超过10天的转储文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |