logrotate:打开 <log>.gz 时出错

sua*_*liu 5 ubuntu logrotate

我现在正在 ubuntu 上设置 logrotate 来轮换日志。这是我的配置:

\n\n

/etc/logrotate.d/test

\n\n
/var/log/test/*.log{\n  weekly\n  rotate 7\n  compress\n  delaycompress\n  notifempty\n  create 640 testuser testgroup\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在/var/log/test中,有以下测试日志文件:

\n\n
-rw-r--r--  1 testuser testgroup 0 \xe5\x9b\x9b\xe6\x9c\x88  1 00:00 2018-04-01.log\n-rw-r--r--  1 testuser testgroup 0 \xe5\x9b\x9b\xe6\x9c\x88  1 00:00 2018-04-02.log\n-rw-r--r--  1 testuser testgroup 0 \xe5\x9b\x9b\xe6\x9c\x88  1 00:00 2018-04-03.log\n-rw-r--r--  1 testuser testgroup 0 \xe5\x9b\x9b\xe6\x9c\x88  1 00:00 2018-04-04.log\n-rw-r--r--  1 testuser testgroup 0 \xe5\x9b\x9b\xe6\x9c\x88  1 00:00 2018-04-05.log\n-rw-r--r--  1 testuser testgroup 0 \xe5\x9b\x9b\xe6\x9c\x88  1 00:00 2018-04-06.log\n-rw-r--r--  1 testuser testgroup 39 \xe5\x9b\x9b\xe6\x9c\x88  1 00:00 2018-04-08.log\n-rw-r--r--  1 testuser testgroup 0 \xe5\x9b\x9b\xe6\x9c\x88  1 00:00 2018-04-09.log\n-rw-r--r--  1 testuser testgroup 391938 \xe5\x9b\x9b\xe6\x9c\x88  1 00:00 scheduler.log\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我运行时logrotate -d -v test,它告诉我所有日志都不需要旋转:

\n\n
reading config file zctest\n\nHandling 1 logs\n\nrotating pattern: /var/log/test/*.log  weekly (7 rotations)\nempty log files are not rotated, old logs are removed\nconsidering log /var/log/test/2018-04-01.log\n  log does not need rotating\nconsidering log /var/log/test/2018-04-02.log\n......\nconsidering log /var/log/test/2018-04-02.log\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我运行时logrotate -d -v test -f,它给出如下错误:

\n\n
renaming /var/log/KeyServer/2018-04-08.log.1.gz to \n/var/log/KeyServer/2018-04-08.log.2.gz (rotatecount 7, logstart 1, i 1), \nrenaming /var/log/KeyServer/2018-04-08.log.0.gz to \n/var/log/KeyServer/2018-04-08.log.1.gz (rotatecount 7, logstart 1, i 0), \nrenaming /var/log/KeyServer/2018-04-08.log to /var/log/KeyServer/2018-04-08.log.1\ncreating new /var/log/KeyServer/2018-04-08.log mode = 0640 uid = 1000 gid = 1000\nremoving old log /var/log/KeyServer/2018-04-08.log.8.gz\nerror: error opening /var/log/KeyServer/2018-04-08.log.8.gz: No such file or directory\n
Run Code Online (Sandbox Code Playgroud)\n\n

谁能帮我这个?

\n

par*_*tle 2

我不知道你missingok的 logrotate.conf 文件中是否有默认参数,但如果没有它,logrotate 就会抱怨那些丢失的文件。参见man logrotate

米索克

如果日志文件丢失,请继续执行下一个日志文件而不发出错误消息。