1、shell脚本分割nginx日志脚本如下:(注意路径换成自己的) #!/bin/bash # 日志保存位置 base_path='/www/wwwlogs' xuan='nginx' # 获取当前年信息和月信息 log_path=$(date -d yesterday +"%Y%m%d") # 获取昨天的日信息 day=$(date -d yesterday +"%d") # 按年月创建文件夹 mkdir -p $base_path/$xuan/$log_path # 备份昨天的日志到当月的文件夹 mv $base_path/test.log $base_path/$xuan/$log_path/test_$day.log # 输出备份日志文件名 # echo $base_path/$log_path/test_$day.log # 通过Nginx信号量控制重读日志 kill -USR1 `cat /www/server/nginx/logs/nginx.pid` 2、shell脚本删除三十天外的日志脚本如下:(注意路径换成自己的) #!/bin/bash #纯逻辑编写-Xuan local_path="/www/wwwlogs/nginx/" #路径地址 cd $local_path #切换到此路径 i=0 #判断条件 #循环获取文件个数并且判断文件是否大于三十个 for dir in $(ls -lt) do ((i=i+1)) #echo "$i" #echo "$dir" if [ $i -gt 30 ] then #如果大于30就删除此文件名的文件目录 rm -rf $local_path$dir fi done 3、添加到crontab定时任务然后测试即可