只需要将日志文件移动到备份目录下
然后将日志压缩打包,并删除日志文件
最后重建日志文件
#!/bin/bash # nginx_app=/usr/local/nginx/sbin/nginx logs_dir=/usr/local/nginx/logs bak_dir=/tmp/logbak/ date=`date +%Y%m%d` # #先将日志文件移动到备份目录 cd $logs_dir echo “moving logs” mv *.log $bak_dir sleep 3 # #重建log文件 echo “rebuild logs” echo “$nginx_app -s reopen” $nginx_app -s reopen # #打包log文件,并以日期命名 echo “tar log” cd $bak_dir tar czf $date.tgz *.log # #删除备份目录的临时文件 echo “rm logs” rm -f *.log echo “done”
然后添加个计划任务,比如每天凌晨4点半执行,脚本位置在/root/logbak.sh
crontab -e
30 4 * * * sh /root/logbak.sh