创建一个shell文件
目录根据自己服务器的实际文件目录进行修改,还有就是Nginx的配置重载命令也要根据自己实际路径进行修改。
#!/usr/bin/env bash
#function:cut nginx log files
#author: xiaochao
#自己的实际日志文件夹
log_files_path="/data0/wwwlogs/"
#set nginx log files must include '.log'
#Set how long you want to save
save_days=90
for logfile in $(ls ${log_files_path})
do
#set nginx log files must include '.log',and size of files must > 0
if [ ${logfile:0-4} = ".log" ] && [ -s ${log_files_path}${logfile} ]; then
log_files_dir=${log_files_path}${logfile//".log"/}
mkdir -p ${log_files_dir}
mv ${log_files_path}${logfile} ${log_files_dir}/${logfile//".log"/}_$(date -d "yesterday" +"%Y%m%d").log;
find $log_files_dir -mtime + $save_days -exec rm -rf {} \;
fi;
done
#nginx配置文件重新加载,目的是重新生成log日志文件,根据自己服务安装路径修改
nginx_sbin="/usr/local/nginx/sbin/nginx"
$nginx_sbin -s reload
创建一个corontab定时任务
#每天的0分 0时 执行一次
00 0 * * * /bin/bash /root/cut_nginx_logs.sh