开发者社区> 问答> 正文

我把nginx的access.log删除了以后重新vim一个access.log可不写入了,怎么办?

我把nginx的access.log删除了以后重新vim一个access.log可不写入了,怎么办?

展开
收起
a123456678 2016-06-13 11:12:33 3495 0
2 条回答
写回答
取消 提交回答
  • restart或者reload nginx就可以了吧

    2019-07-17 19:35:24
    赞同 展开评论 打赏
  • #!/bin/bash
     
    NHOME=/nginx
    LOGHOME=$NHOME/logs
    PIDFILE=$LOGHOME/nginx.pid
    NGXPID=$(cat $PIDFILE)
    NGXCONF=$NHOME/conf/nginx.conf
    RDATE=$(date +%y%m%d%H%M%S)
     
    if [[ ! -f $PIDFILE ]]
         then
            echo "$PIDFILE not found."
            exit
    fi
     
    if [[ ! -f $NGXCONF ]]
         then
            echo "$NGXCONF not found."
            exit
    fi
     
    LOGNA1=$(grep -e "^\s*[^#]*\s*access_log" $NGXCONF|sed -n 's/;//p'|awk '!/\<on\>|\<off\>/ {print $2}'|sed -n '1p')
    LOGNA2=$(echo $LOGNA1 |sed -n '/^\//p')
    if [[ -z $LOGNA1 ]]
            then
                echo "access_log path not found."
                exit
    fi
     
    if [[ -z $LOGNA2 ]]
       then
                mv $NHOME/$LOGNA1 $NHOME/$(dirname $LOGNA1)/access_${RDATE}.log
                kill -USR1 $NGXPID
                cd $NHOME/$(dirname $LOGNA1)
                gzip access_${RDATE}.log
       else
                mv $LOGNA2 $(dirname $LOGNA2)/access_${RDATE}.log
                kill -USR1 $NGXPID
                cd $(dirname $LOGNA2)
                gzip access_${RDATE}.log
    fi
     
    cd $NHOME/$(dirname $LOGNA1)
    find ./ -iname "access_*.log.gz" -mtime +90 -type f -exec rm -f {} \;
     
    exit 0;
    2019-07-17 19:35:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Nginx 代理系统常用手册》 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载