- 论坛徽章:
- 0
|
我nginx下有几十个站点,我的想法是日志按日期分割存档放在不同目录,比如/home/logs/web1 、 /home/logs/web2 ......
我是想用logrotate来切割日志,并通过cron每天执行,配置文件如下:
vi /etc/cron.daily/logrotate
#!/bin/sh
#/usr/sbin/logrotate -f /etc/logrotate.d/nginx
vi /etc/logrotate.d/nginx
/home/logs/*/*.log {
daily
missingok
rotate 180
nocompress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
dateext
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
测试发现,手动运行/usr/sbin/logrotate -f /etc/logrotate.d/nginx是可以的,会产生日期后缀的日志文件
但是每天cron根本不执行,cron日志如下:
Dec 23 03:24:01 host1 anacron[2967]: Job `cron.daily' started
Dec 23 03:24:01 host1 run-parts(/etc/cron.daily)[2978]: starting logrotate
Dec 23 03:24:01 host1 run-parts(/etc/cron.daily)[2985]: finished logrotate
Dec 23 03:24:01 host1 anacron[2967]: Job `cron.daily' terminated
这个是不是失败的意思,回头我又查了系统邮件,发现:
/etc/cron.daily/logrotate:
error: error opening /home/logs/web1/access.log: Permission denied
查资料,好像有人说是用户权限不够,需要关闭selinux,后来关闭selinux,发现cron还是每天不执行,请教下大家该怎么解决。 |
|