您的位置:首页 > 运维架构 > Nginx

nginx使用logrotate对日志进行分割

2016-07-21 19:56 1116 查看

系统环境

ubuntu 14.04LTS

nginx 1.4.7

编辑logrotate下的nginx文件

$ vim /etc/logrotate.d/nginx
/usr/local/nginx/logs/*.log { //log的位置
su root list   //使用root权限  ,如果不使用的话  可能会报权限有关的问题 后面有提到
daily    //每天运行一次
missingok  //如果日志文件丢失,不报错继续执行下一个
rotate 7   //日志保存7天
dateext //文件后缀是日期格式,也就是切割后文件是:xxx.log-20131216.gz 这样,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-1 这种格式
notifempty   //如果是空文件的话,不转储
create 0640 root root  //日志文件的权限
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
[ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
endscript
}


//后面带日期的文件生成了,表示成功了



测试

$ /usr/sbin/logrotate -f /etc/logrotate.d/nginx
//如果生成了文件则表示配置成功


添加到crontab

//每天12点10分执行一次
10 12 * * *  /usr/sbin/logrotate -f /etc/logrotate.d/nginx


错误处理

可能会报这个错,如果没有加su root list

...insecure permissions (It's world writable or writable by group which is not...
...error: skipping "/usr/local/nginx/logs/access.log" because parent directory...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx ubuntu log logrotate