
두 개의 웹 서버(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에 넣어주세요.