Nginx日志主要用于日后的审计和分析,对系统的安全有着重要的意义。但是随着时间的推移,日志文件会变得越来越大,这就需要对日志进行处理分割了。
第一步:建立脚本文件:
[root@localhosthome]# vim nginx_log.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #!/bin/bash #日志将要存放的路径 basepath_log= '/data/logs/nginx/' savepath_log=$basepath_log/$( date +%Y)/$( date +%m)/ #nginx的日志路径 logs_path= '/usr/logs' #创建目录 mkdir -p $savepath_log/ #切换目录 cd ${logs_path} #遍历nginx的日志路径中所有的log文件 for fileLog in ` ls *.log` do mv ${fileLog} $savepath_log/${fileLog}_$( date +%Y%m%d%H%M).log done #重启Nginx kill -USR1 $( cat /var/run/nginx/nginx .pid) #压缩Log文件 cd ${savepath_log} #遍历nginx的日志存放路径 for fileLog in ` ls *.log` do tar zcf ${fileLog}. tar .gz -C ${savepath_log} ${fileLog} rm -rf ${fileLog} done |
标黄的需要根据实际情况修改。
第二步:为nginx_log.sh分配可以执行权限
[root@localhost home]# chmod 755 nginx_log.sh
第三步:设定定时器
[root@localhost init.d]# crontab -e
1 | 00 00 * * * /home/nginx_log .sh #执行文件存放路径,每天凌晨00:00执行 |
定期清除过期日志
1 | 00 00 * * * find /home/post - type f -mtime +90 - exec rm -f {} \; |
注:保存方式与vim一致,输入:wq。90表示删除90天以前的过期文件。
第四部:重启定时器
[root@localhost init.d]# cd /etc/init.d
[root@localhost init.d]# ./crond restart
1 2 | 停止 crond: [确定] 正在启动 crond: [确定] |