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
网友评论