免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1281 | 回复: 0
打印 上一主题 下一主题

为ngix留个deamon进程处理日志 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:48 |只看该作者 |倒序浏览
我们知道nginx日志文件要归档则需relog,具体的步骤是:
mv access_log 到其它目录
然后
kill -USR1 `cat $NGINX_PID`

在网上看到都是利用crontab 令做一个服务进行操作

那起一个nginx的deamon进行进行日志归档,岂不是能简化很多操作


对日志进行归档的操作函数
function relognginx() {
   LOG_DIR=$NGINX_HOME/logs
   DATE=`date +%Y%m%d%M%S`
   cd $LOG_DIR
   log_list="error.log|access.log"
   for i in `echo $log_list | awk -F"|" '{ for(i=1;i<=NF;i++) {print $i} }'`
   do
     isize=$(du -sh $i | awk '{print $1}')
     if echo $isize | grep -q "G"
       then
        mv $i $i.$DATE
     fi
   done
   kill -USR1 `cat $NGINX_PID`
   #find . -type f -mtime +7 -exec rm -f {} \;
}

构造deamon进程进行调用上面的方法

function daemon() {
  tmppid=$1
  while [ 1 -le 2 ]
  do
    [[ ! -e $NGINX_PID ]] && return 0
    mypid=$(cat $NGINX_PID)
    if [[ $mypid -eq $tmppid ]] ; then
       relognginx
    else
       echo "out daemon"
       return 0
    fi
    sleep 3
  done
}

然后在nginx start的时候增加调用这个deamon方法
以下是我的nginx管理脚本中的启动方法
start() {
        ulimit -HSn $NGINX_MAXFD
        if [[ -n $NGINX_USER ]]
        then
                su - $NGINX_USER -c "$NGINX_SBIN -c $NGINX_CONF"
        else
                $NGINX_SBIN -c $NGINX_CONF
        fi
        ret=$?
        if [ $ret -eq 0 ]; then
                action $"Starting $NGINX_NAME: " /bin/true
                daemon $(cat $NGINX_PID) &
        else
                action $"Starting $NGINX_NAME: " /bin/false
        fi
}

主要是利用一个后台进行和pid的存活量进行工作

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP