Nginx常规小脚本

nginx日志清理

清理日志

#!/bin/bash
mv  /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log.$(date +%F-%H-%M-%S)
NGX_PIDS=$(ps -ef | grep "nginx: master" | grep -v grep | awk '{print $2}')
kill -s USR1 ${NGX_PIDS}

USR1是用户自定义信号。可以理解为:进程自己定义接到这个信号该做什么

  • nginx 的主进程收到USR1信号,会重新打开日志文件。

  • 然后把日志文件的拥有者改为工作进程(worker进程),目的是让worker进程就具备了对日志文件的读写权限(master和worker通常以不同用户运行,所以需要改变拥有者)。

  • 主进程把USR1信号发给worker,worker接到这个信号后,会重新打开日志文件(也就是配置文件中约定的xxx.log)

删除日志

#!/bin/bash
logsfile="/usr/local/nginx/logs"
##删除超过两天以上的日志
find ${logsfile}  -mtime +2 -type f -name "*.log.*"  -exec rm -rf  "{}" \;

nginx主备检查脑裂脚本

check_split_brain.sh

#!/bin/bash
# 检查脑裂的脚本,在备节点上进行部署
LB01_VIP=$1
LB01_IP=$2
LB02_IP=$3

if [ $# -lt 3 ];then
        echo -e "\e[1;36m Please input VIP|master|standby address \e[0m"
        exit 1
fi

while true
do
  ping -c 2 -W 3 $LB01_VIP &>/dev/null
    if [ $? -eq 0 -a `ip add|grep "$LB01_VIP"|wc -l` -eq 1 ];then
        echo "ha is brain."
    else
        echo "ha is ok"
    fi
    sleep 5
done

你可能感兴趣的:(Nginx常规小脚本)