当 rsync 更新 nginx.conf 时重新加载 nginx 配置

当 rsync 更新 nginx.conf 时重新加载 nginx 配置

我有两个 Web 服务器,server1 和 server2。

在 server2 上有一个 rsync 命令,在 crontab 中安排,当我在 server1 上进行一些更改时,它会更新 /etc/nginx 文件夹:

*/5 * * * * rsync -avzhe ssh user@server1:/etc/nginx/ /etc/nginx/

我怎么知道 rsync 已经改变了某些东西,以至于我必须重新加载 nginx?

答案1

我找到了一个解决方案。

添加选项 -i 并删除 -v,rsync 仅在文件发生更改时才输出内容。因此我写了这个脚本:

#!/bin/bash

RSYNC=$(rsync -aizhe ssh user@server1:/etc/nginx/ /etc/nginx/)

if [ $? -eq 0 ]; then
        if [ -n "${RSYNC}" ]; then
                /usr/sbin/nginx -s reload
                echo "reloaded."
        fi
else
        exit 1
fi

并将其放入crontab中。

相关内容