SyncBack Pro 백업 솔루션을 이용하여 Windows PC의 파일을 원격의 리눅스 proftp서버로 파일 전송을 하여 백업(sync 방식으로)을 진행하면 원본쪽 기존의 파일이 변화된게 없어도 백업 솔루션이 삭제 후 다시 업로드를 하는 경우가 발생. 확인을 해보니 proftp server의 SITE UTIME command 기능이 동작을 하지 않아서 그랬다. 그렇다 보니 SyncBack Pro 에서는 파일 업로드와 함께 리눅스 서버에 업로드된 파일을 SITE UTIME command를 통해 원본 파일의 Mtime과 맞추려 하지만 서버에서 구현이 되지 않아 파일의 Mtime이 변경되지 않음. 그래서 업로드된 파일은 업로드시각으로 Mtime이 맞춰지고 다음번 백업 Sync 때 원본파일과 Mtime이 맞지 않아서 변경된 파일로 간주하여 지우고 다시 업로드를 하게된다.
그림의 AS-IS가 위 설명을 나타내는 것이다.
이제 TO-BE 처럼 Backup Sync가 제대로 되도록 만들어 보자.
기본적으로 proftpd 1.2.x/1.3.x 버전에서는 mod_site_misc 모듈이 포함되지 않은채 컴파일이 된다. 따라서 mod_site_misc 모듈을 포함해서 컴파일 해야한다.
그리고 proftp 1.3.4a 버전 이후 부터 mod_site_misc 모듈이 추가 된것으로 보이며, 아래와 같이 컴파일 하면된다.
# ./configure --prefix=/usr/local/proftpd-135 --with-modules=mod_site_misc # make ; make install
컴파일 후 proftpd 바이너리의 정보를 보면 아래와 같이 mod_site_misc가 포함된 것이 확인된다.
# /usr/local/proftpd-135/sbin/proftpd -vv | grep mod_site_misc mod_site_misc/1.5
이제 ftp 서버에 sync 백업을 진행하면 Mtime이 원본-백업본간 동기화가 이루어지면서 백업이 되고 다시 백업을 진행하면 Mtime이 변경되지 않은 파일은 업로드가 skip 된다.
이 문제는 FTP 서버가 SITE UTIME Command를 지원하지 않은 경우 다른 FTP 백업 솔루션을 사용해도 Sync 방식의 백업 방법에서 문제가 발생한다.
참조 :
http://www.proftpd.org/docs/contrib/mod_site_misc.html