1. 编辑脚本
说明:date -d "-1 day" 表示昨天; %F表示年月日以Y%-m%-d形式;[-d ]表示判断是否有这个目录,如果没有就或关系,创建该目录;将每日的access.log文件挪到创建的目录/tmp/nginx_log/中,并命名为d变量的格式;reload用于重新生成acces.log,并重定向清空;考虑到切割的日志比较大,gzip -f判断日志是否存在,如果存在,则进行强制压缩(如果一天执行多次,该文件已经存在并压缩过,则会同名,-f覆盖不提示)
vim /usr/local/sbin/nginx_logrotate.sh
1
2
3
4
5
6
7
8
|
#! /bin/bash
# author by huangzhenping
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
cd
/tmp/nginx_log/
gzip
-f $d.log
|
2. 日志切割脚本加入crond任务计划列表
1
|
0 0 * * *
/bin/bash
/usr/local/sbin/nginx_logrotate
.sh
|
3. 定期删除日志,crond计划列表
1
|
0 0 * * *
find
/tmp/nginx_log/
-
type
f -mtime +10 |
xargs
rm
|
本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1900638,如需转载请自行联系原作者