只需要将日志文件移动到备份目录下

然后将日志压缩打包,并删除日志文件

最后重建日志文件


#!/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