1.建立脚本
vim /usr/local/nginx/sbin/cut_nginx_log.sh
复制如下
#!/bin/bash
#By lumia98@vip.qq.com
# Nginx日志切割脚本,压缩日志打包脚本
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
#日志路径
log_path='/var/log/nginx'
#nginx的pid路径
pid_path="/tmp/nginx.pid"
#截取日志名称
logs_names=$(ls -f $log_path |grep log|awk -F ".log" '{print $1}')
#生成昨天的时间
time_date=$(date -d "yesterday" +"%Y%m%d")
#若指定10天前 date -d"10 day ago 2017-06-08" +%Y-%m-%d
#进入日志目录
cd ${log_path}
#循环日志,然后进行切割,并压缩成tar.gz,删除压缩后的原日志
for log_name in $logs_names
do
mv ${log_name}.log ${log_name}.$time_date.log
tar -czf ${log_name}.$time_date.tar.gz ${log_name}.$time_date.log
rm -rf ${log_name}.$time_date.log
done
#重新启动nginx
kill -USR1 `cat ${pid_path}`
#删除100天前的文件
find $log_path -mtime +100 -type f -name "*.log" | xargs rm -f
find $log_path -mtime +100 -type f -name "*.tar.gz" | xargs rm -f