nginx定时备份access访问日志并重启nginx

用.sh脚本写了备份日志脚本 其实就是转移文件改名后重新建一个空文件

mv /alidata/log/nginx/access/wxtest.log /alidata/log/nginx/access/wxtest_log/wxtest_log_$(date +%Y%m%d-%H%M%S).log
touch /alidata/log/nginx/access/wxtest.log

 

但是这样的话 nginx不能立即认识这个新文件 需要服务器重新加载一下配置 或者杀掉子进程 由于杀子进程有风险 所以这里采用平滑重启nginx的方法 nginx -s reload

但是crontab -e 定时任务执行sh脚本的时候必须采用绝对路径的服务地址所以必须知道nginx服务的绝对路径

一般nginx的服务绝对路径地址是local那直接这样写就行 

/usr/local/nginx/sbin/nginx -s reload

 

但是由于不同服务器部署位置不一致 比如我们的测试服务器地址为 alidata/server/nginx-1.4.4/sbin/nginx

所以整体就这样写了sh脚本

mv /alidata/log/nginx/access/wxtest.log /alidata/log/nginx/access/wxtest_log/wxtest_log_$(date +%Y%m%d-%H%M%S).log
touch /alidata/log/nginx/access/wxtest.log
/alidata/server/nginx-1.4.4/sbin/nginx -s reload

而定时任务的crontab -e中这样写

0 2 * * * /alidata/log/nginx/back_log.sh ###每天2个小时将wxtest.log 重新建立并将日志按照时分秒挪到wxtest_log文件夹中 并平滑重启nginx

posted @ 2016-06-12 15:34  李照耀  阅读(1285)  评论(0编辑  收藏  举报