问题描述
我在 Nginx docker 容器中运行 logrotate。
FROM Nginx:1.16.1
RUN apt-get update && apt-get -y install cron logrotate
ADD logrotate /etc/logrotate.d/Nginx
CMD ["cron","-f"]
日志旋转文件:
/var/log/Nginx/access.json {
missingok
rotate 7
notifempty
sharedscripts
postrotate
if [ -f /var/run/Nginx.pid ]; then
kill -USR1 `cat /var/run/Nginx.pid`
fi
endscript
- access.json
- 访问日志
- 错误日志
运行后旋转命令
logrotate -v /etc/logrotate.d/Nginx
文件变成:
- access.json.1
- 访问日志
- 错误日志
access.json
消失了。详细的是:
reading config file /etc/logrotate.d/Nginx
Reading state from file: /var/lib/logrotate/status
Allocating hash table for state file,size 64 entries
Creating new state
Handling 1 logs
rotating pattern: /var/log/Nginx/access.json 100 bytes (7 rotations)
empty log files are not rotated,old logs are removed
considering log /var/log/Nginx/access.json
Now: 2020-12-23 10:33
Last rotated at 2020-12-23 10:32
log needs rotating
rotating log /var/log/Nginx/access.json,log->rotateCount is 7
dateext suffix '-20201223'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/Nginx/access.json.7 to /var/log/Nginx/access.json.8 (rotatecount 7,logstart 1,i 7),old log /var/log/Nginx/access.json.7 does not exist
renaming /var/log/Nginx/access.json.6 to /var/log/Nginx/access.json.7 (rotatecount 7,i 6),old log /var/log/Nginx/access.json.6 does not exist
renaming /var/log/Nginx/access.json.5 to /var/log/Nginx/access.json.6 (rotatecount 7,i 5),old log /var/log/Nginx/access.json.5 does not exist
renaming /var/log/Nginx/access.json.4 to /var/log/Nginx/access.json.5 (rotatecount 7,i 4),old log /var/log/Nginx/access.json.4 does not exist
renaming /var/log/Nginx/access.json.3 to /var/log/Nginx/access.json.4 (rotatecount 7,i 3),old log /var/log/Nginx/access.json.3 does not exist
renaming /var/log/Nginx/access.json.2 to /var/log/Nginx/access.json.3 (rotatecount 7,i 2),renaming /var/log/Nginx/access.json.1 to /var/log/Nginx/access.json.2 (rotatecount 7,i 1),renaming /var/log/Nginx/access.json.0 to /var/log/Nginx/access.json.1 (rotatecount 7,i 0),old log /var/log/Nginx/access.json.0 does not exist
log /var/log/Nginx/access.json.8 doesn't exist -- won't try to dispose of it
renaming /var/log/Nginx/access.json to /var/log/Nginx/access.json.1
running postrotate script
logrotate_script: 3: kill: No such process
error: error running shared postrotate script for '/var/log/Nginx/access.json '
我创建了一个文件 /var/run/Nginx.pid
并手动在其中设置了一个数字以进行测试,但仍然无法正常工作。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)