Linux下每天自动备份Nginx日志
通过Linux定时任务系统每天0点0分备份。
日志存储目录: /opt/www/logs/nginx
备案存储目录: /opt/www/logs/all
日志文件格式: yyyy-mm-dd.tar.bz2
#!/bin/bash
# powered by www.baidu.org.tw
# author:kethinc
# useage: crontab -e
# 0 0 * * * sh /opt/www/logs/logstore.sh > /dev/null 2>&1
# The Nginx logs bak
work_path=”/opt/www/logs”
logs_path=${work_path}”/nginx”
store_path=${work_path}”/all/”$(date -d “yesterday” +”%Y”)
yesterday_logs_path=$(date -d “yesterday” +”%Y-%m-%d”)
yesterday_logs_file=${yesterday_logs_path}.tar.bz2
cd $work_path
mv ${logs_path} ${yesterday_logs_path}
mkdir -p ${logs_path}
/etc/init.d/nginx reload #重新载入nginx因为原来的日志文件都已移动位置需要重新生成文件以免发生一些错误(感觉可能会发生没测试过)
tar -jcvf ${yesterday_logs_file} ${yesterday_logs_path}
mkdir -p ${store_path}
mv ${yesterday_logs_file} ${store_path}
rm -rf ${yesterday_logs_path}
使用方法:
保存脚本文件 /opt/www/logs/logstore.sh
编辑定时任务配置文件: crontab -e
在最后一行输入: 0 0 * * * sh /opt/www/logs/logstore.sh > /dev/null 2>&1