rsync가 nginx.conf를 업데이트할 때 nginx 구성을 다시 로드하세요.

rsync가 nginx.conf를 업데이트할 때 nginx 구성을 다시 로드하세요.

두 개의 웹 서버(server1과 server2)가 있습니다.

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에 넣어주세요.

관련 정보