Nginx日志切割

nginx日志切割

在apache里面有工具可以去进行日志的自动切割删除,但是在nginx里面并没有那种工具,需要我们写一个脚本来实现

我们在sbin下创建个可执行文件nginx_logrotate.sh 注意我们一般写脚本都放在/usr/local/sbin下面

[root@wqslinux ~]# vim/usr/local/sbin/nginx_logrotate.sh

#!/bin/bash
d=`date -d “-1 day” +%F` //切割昨天的日志
[ -d /tmp/nginx_log ] || mkdir/tmp/nginx_log //判断日志存在不存在,|| 如果的条件
mv /tmp/access.log /tmp/nginx_log/$d.log //移动日志并重新名
/etc/init.d/nginx reload > /dev/null //重新加载nginx 生成access.log,2>错误重定向
cd /tmp/nginx_log/
gzip -f $d.log //压缩文件 -f强制覆盖

做个计划任务
[root@wqslinux tmp]# crontab -e
0 0 * * * sh/usr/local/sbin/nginx_logrotate.sh 零点零分执行此脚本
检查任务计划是否运行
[root@wqslinux tmp]# service crond status
crond (pid 1269) 正在运行…

发表评论