读书人

NGINX日记分割备份不明白

发布时间: 2013-01-02 13:08:45 作者: rapoo

NGINX日志分割备份不明白?
本帖最后由 liaohongchu 于 2012-12-15 16:04:38 编辑 网上搜索的 但不知道这里是怎么用的 我的分 只有20了 没有了 ,分少了点。
#pid的位置,自己查找

kill -USR1 `cat /usr/local/nginx/nginx.pid` // 这里是什么意思呢 是和上面的的代码连在一起的吗?

编写shell程序

某种情况下会设置多个子域名,因此会产生多个日志文件,像我这类喜欢整齐的人会设置多个日志文件,把每个域名的日志都分开放。下面这个shell程序是多域名处理。

下面是示例,对以下三个网站的日志切割(日志文件名自己命名):

http://www.xinqq163.com 对应日志 blog.log

http://news.xinqq163.com 对应日志 demo.log

http://tech.xinqq163.com 对应日志 happy.log

# !/bin/bash

# 你的日志文件存放目录

logs_path="/home/logs/"

# 日志文件的名字,多个需要空格隔开

logs_names=(blog demo happy)

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday"+"%m")/

num=${#logs_names[@]}

for((i=0;i<num;i++));do

mv ${logs_path}${logs_names[i]}.log ${logs_path}$(date -d "yesterday"+"%Y")/$(date -d "yesterday"+"%m")/${logs_names[i]}_$(date -d "yesterday"+"%Y%m%d").log

done

#pid的位置,自己查找

kill -USR1 `cat /usr/local/nginx/nginx.pid` // 这里是什么意思呢 是和上面的的代码连在一起的吗?

设置crontab,每天定时切割

首先需要确定你的服务器有没有安装crontab的服务,输入crontab -e命令,有反应就安装了。

如果没有安装,运行yum install vixie-cron 一键安装。

输入crontab -e命令,输入下面的内容:

1、00 00意思为00分00点,也就是凌晨0点,后面“ * * * ”为“ 日 月 年 ”无需定义

2、” /home/logs/cut_nginx_log.sh “为你的shell的路径。

00 00 * * * /bin/bash /home/logs/cut_nginx_log.sh

OK ! 大功告成,每天的0时就会自动完成日志的切割并存在相应的以日期命名的目录中。
[解决办法]
重启 nginx 服务 使其重新生成日志文件
[解决办法]
kill -USR1 `cat /usr/local/nginx/nginx.pid`

在/usr/local/nginx/nginx.pid文件中读取nginx进程的pid号,并且发送USR1信号给nginx进程.
USR1信号的处理在nginx中定义

读书人网 >UNIXLINUX

热点推荐