Nginx-Konfiguration neu laden, wenn rsync nginx.conf aktualisiert

Nginx-Konfiguration neu laden, wenn rsync nginx.conf aktualisiert

Ich habe zwei Webserver, Server1 und Server2.

Auf Server2 gibt es einen in Crontab geplanten Rsync-Befehl, der den Ordner /etc/nginx aktualisiert, wenn ich einige Änderungen auf Server1 vornehme:

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

Wie erkenne ich, dass rsync etwas geändert hat, sodass ich nginx neu laden muss?

Antwort1

Ich habe eine Lösung gefunden.

Wenn ich die Option -i hinzufüge und -v entferne, gibt rsync nur dann etwas aus, wenn Dateien geändert wurden. Also habe ich dieses Skript geschrieben:

#!/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

und legen Sie es in Crontab.

verwandte Informationen