创建split_log.sh文件
内容如下:
# /bin/bash
# 日志保存位置
base_path='/usr/local/nginx/logs'
# 获取当前年信息和月信息
log_path=$(date -d yesterday +"%Y%m")
# 获取昨天的日信息
day=$(date -d yesterday +"%d")
# 按年月创建文件夹
mkdir -p $base_path/$log_path
# 备份昨天的日志到当月的文件夹
mv $base_path/access.log $base_path/$log_path/access_$day.log
# 输出备份日志文件名
# echo $base_path/$log_path/access_$day.log
# 通过Nginx信号量控制重读日志
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
~
contab -e
配置定时任务,wq保存
# 每天凌晨1点切割日志
01 00 * * * /usr/local/nginx/logs/split_log.sh
# 每天凌晨2点删除10天前的日志
02 00 * * * find /usr/local/nginx/logs/ -name "access*.log" -mtime +10 | xargs rm -f