NGINX配置文件变更监控 重新载入nginx reload生效 基于MD5的

NGINX配置文件变更监控 重新载入nginx reload生效 基于MD5的

这个是基于MD5的
不依赖其他

#!/bin/bash

# NGINX WATCH DAEMON
#
#
# Place file in root of nginx folder: /etc/nginx
# This will test your nginx config on any change and
# if there are no problems it will reload your configuration
# USAGE: sh nginx-watch.sh

# Set NGINX directory
# tar command already has the leading /
dir='etc/nginx'

# Get initial checksum values
checksum_initial=$(tar --strip-components=2 -C / -cf - $dir | md5sum | awk '{print $1}')
checksum_now=$checksum_initial

# Start nginx
nginx

# Daemon that checks the md5 sum of the directory
# ff the sums are different ( a file changed / added / deleted)
# the nginx configuration is tested and reloaded on success
while true
do
    checksum_now=$(tar --strip-components=2 -C / -cf - $dir | md5sum | awk '{print $1}')

    if [ $checksum_initial != $checksum_now ]; then
        echo '[ NGINX ] A configuration file changed. Reloading...'
        nginx -t && nginx -s reload;
    fi

    checksum_initial=$checksum_now

    sleep 2
done

wget https://raw.githubusercontent.com/devotox/nginx-watch/master/nginx-watch.sh -O /usr/bin/nginx-watch
chmod +x /usr/bin/nginx-watch
sudo nginx-watch
/usr/bin/nginx-watch

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注