원격 웹 서버에서 완전히 업데이트된 Ubuntu 16.04 LTS 실행 원격 웹 서버에서 rsync 3.1.1 실행
저는 몇몇 사용자가 공개적으로 액세스 가능한 파일 세트를 관리할 수 있도록 하는 매우 간단한 설정을 가지고 있습니다.
원격 웹 서버에 대한 액세스 권한을 부여하는 대신 \localshare\
로컬 사무실 네트워크( )에 공유를 설정하여 필요에 따라 파일을 복사하고 파일과 폴더를 생성, 삭제 및 정렬할 수 있었습니다.
하루에 한 번 원격 웹 서버에서 실행되고 공용 www 폴더( \publicwww
)를 \localshare\
.
이것은 대부분의 경우 완벽하게 작동합니다. 하지만,때때로rsync가 폴더 및 파일의 전체 목록을 올바르게 읽지 못하는 것 같습니다. 이로 인해 공용 www 폴더의 거의 모든 항목이 삭제되고 \publicwww\
다음 동기화까지 모든 항목에 액세스할 수 없게 됩니다(모두 사라졌기 때문에). 이는 일반적으로 문제를 해결합니다. ).
내 추측으로는 웹 서버가 사이트에 없어 간헐적으로 연결 문제가 발생하기 때문에 rsync가 단순히 "시간 초과"되고 디렉터리에 있는 폴더와 파일의 전체 목록을 읽을 수 없게 된 다음 단순히 포기한다는 것입니다. 오류가 발생하고 해당 디렉터리가 더 이상 디렉터리에 없습니다.
예를 들어 다음과 같은 하위 폴더가 있다고 가정해 보겠습니다 \localshare\
.
\localshare\folderA
\localshare\folderB
\localshare\folderC
일반적으로 이것은 잘 동기화되어 다음과 같이 끝납니다.
\publicwww\folderA
\publicwww\folderB
\publicwww\folderC
하지만 때로는 다음을 발견합니다.
\publicwww\folderA
어떻게 하면 이 상황을 좀 더 우아하게 처리할 수 있을까요?
rsync 로그를 확인해 보았지만 전체 디렉터리를 읽지 못한 흔적은 발견되지 않았습니다.
오직...
2019/08/19 09:15:01 [18996] building file list
2019/08/19 09:15:04 [18996] *deleting folderB/
....그런 다음 다른 모든 폴더를 삭제합니다.
\localshare\
따라서 문제는 Ubuntu 서버에서 연결하는 방식에 있을 수 있습니다. Ubuntu 서버의 로컬 디렉터리로 autofs를 사용하여 설치한 다음 원격 디렉터리를 \localshare\
서버의 \localshare\
로컬 디렉터리 와 rsync합니다. \publicwww\
어쩌면 이 추상화 계층 때문에 rsync가 완전히 읽은 폴더와 시간이 초과된 마운트를 구분할 수 없습니까?
- 내 이론(이것은 단지 연결 시간 초과일 뿐이라는 것)이 올바른지 확인하기 위해 이 문제를 보다 명시적으로 어떻게 해결할 수 있습니까?
- rsync를 사용하여 이를 우아하게 완화할 수 있는 방법이 있습니까?
- 이 문제를 해결할 다른 방법이 있나요? 먼저
\localshare\
원격 서버의 중간 폴더(예:)와 동기화\publicwwwtemp\
한 다음 로그 파일에 첫 번째 동기화에 문제가 없는 경우에만 동기화하는 것을 생각했습니다\publicwwwtemp\
.\publicwww\
그러나 rsync 로그 파일에는 rsync가 전체 디렉토리 목록을 가져올 수 없다는 사실조차 인식하지 못하는 것 같습니다.
이것은 내 rsync 명령입니다.
rsync -rtvu --perms --chmod=D750,F640 --owner --group --chown=root:www-data --delete-delay --progress --exclude="Info.txt" --exclude="Sync-Logs" --exclude="lost+found" --log-file=/var/log/rsync.publicwww.files.$(date +%Y%m%d).log /Fileserver.mount/localshare/ /publicwww/