只需要將日志文件移動到備份目錄下
然後將日志壓縮打包,並刪除日志文件
最後重建日志文件
#!/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