Перезагрузите конфигурацию nginx, когда rsync обновит nginx.conf

Перезагрузите конфигурацию nginx, когда rsync обновит nginx.conf

У меня есть два веб-сервера: server1 и server2.

На сервере server2 есть команда rsync, запланированная в crontab, которая обновляет папку /etc/nginx, когда я вношу какие-либо изменения на сервере server1:

*/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.

Связанный контент