再次印证了免费的就是最贵的这句话
网上脚本或多或少都有错 改完后能运行了
直接上脚本
#!/bin/bash #nginx access log segmentation shell script
#日志目录 log_dir="/home/wwwlogs/" cd $log_dir time=`date +%Y%m%d --date="-1 day"` nginxDir="/usr/bin/nginx"
#日志保存天数 save_days=5
#日志文件名所处'/'分割的位置 #可执行 #ls 日志目录/*.log | xargs -n 1 | cut -f 1 -d "." | cut -f 数字 -d "/" #进行查看 直到能正确显示日志文件名为止 num=4;
#此处待优化(取得文件不带后缀的文件名) website=`ls $log_dir*.log | xargs -n 1 | cut -f 1 -d "." | cut -f $num -d "/"`
#日志目录下所有的日志文件为文件夹,循环新建对应的时间文件 for i in $website do
#判断目录是否存在 if [ ! -d $log_dir$i ]; then mkdir "$i" fi
#移动原日志到新文件夹 mv $log_dir$i.log $log_dir$i/$i-$time.log true>$log_dir$i.log done
#删除设置天数前的数据 find $log_dir -mtime +$save_days -exec rm -rf {} \;
#平滑启动nginx nginxDir -s reload
|
赋予执行权限chmod +x cut_nginx_log.sh
然后在crontab
里面加个任务
0 0 * * * /bin/bash /path/to/your/cut_nginx_log.sh
每天0点0分执行切割日志