再次印证了免费的就是最贵的这句话
网上脚本或多或少都有错 改完后能运行了

直接上脚本

#!/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分执行切割日志