可以根据需要改变成自己喜欢的日志保存格式,我这里的日志保存方式是:按照年月来创建文件夹,每日日志文件添加年月日的后缀形式,比如:/var/log/2013/11/letuknowit_20131110.log
#!/bin/bash # 日志文件保存的位置 logs_path="/alidata/log/nginx/access/" # 需要切割的日志文件名,多个文件用空格隔开 logs_name=(xxx) mkdir -p ${logs_path}$(date -d "yesterday" +"%Y/%m") num=${#logs_name[@]} for((i=0;i<num;i++));do echo ${logs_path}$(date -d "yesterday" +"%Y/%m")/${logs_name[i]}_$(date -d "yesterday" +"%Y%m%d").log done kill -USR1 `cat /alidata/server/nginx/logs/nginx.pid`
上面的xxx换成自己的日志文件名,如果有多个日志文件,用空格隔开,比如主站的日志文件为letu.log,二级域名的日志文件为blog.log,则logs_name如下:
logs_name=(letu blog)
日志名一般在nginx的配置文件中进行设置,如下面的设置
log_format letu '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /alidata/log/nginx/access/letu.log letu;
转载请注明:知识蚂蚁 » nginx日志定时切割脚本(支持多个域名的日志文件)