rsync が nginx.conf を更新したときに nginx 設定を再読み込みする

rsync が nginx.conf を更新したときに nginx 設定を再読み込みする

私は server1 と server2 という 2 つの Web サーバーを持っています。

server2 には、crontab でスケジュールされた rsync コマンドがあり、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に置きます。

関連情報