WinSCP 를 이용한 파일 증분 백업 방법

서버에 업로드 되는 파일을 다른 서버에 동기화 시키는 이슈가 있었습니다. 

 

- 오늘날짜부터 업로드 되는 파일에 한정

- 이미지 및 문서파일 등 모든 파일에 대해 적용

- 신규파일 및 동일한 파일이 변경 업데이트 된 경우도 적용

- 5분마다 동기화 여부 체크 후 자동으로 동기화

- 파일 삭제 시 동기화 서버에 있는 파일은 삭제하지 않아야 함

 

위 조건을 만족하는 파일 동기화가 이루어져야 하는데 마땅한 솔루션이 보이지 않습니다.

간단히 생각하기로는 python으로 개발한 에이전트를 하나 두어 5분마다 특정 폴더를 감시하면서 추가되거나 업데이트 되는 파일에 한해 FTP 서버로 파일을 업로드 시키는 방법을 쓰려했으나 이런 작업은 보통 잘만들어진 프로그램이 있을것 같기에 서칭을 해보았습니다.

 

결과적으로 WinSCP를 찾을 수 있었고, FTP 서버는 파일질라 서버를 활용하기로 했습니다.

 

WinSCP 브라우저

 

WinSCP는 FTP 클라이언트라고 보시면 되는데 폴더 모니터링 및 동기화를 지원해줍니다.

서버1의 특정폴더를 감시대상으로 적용하여 서버2의 특정 폴더에 변경된 파일을 FTP 업로드를 통해 동기화를 수행하는 작업을 지원합니다. 

 

서버1

- WinSCP 설치(https://winscp.net/eng/download.php)

- 감시대상 폴더 지정

- 옵션 설정(오늘부터 추가되는 신규파일 및 업데이트 되는 파일에 대한 동기화)

- 감시 시작

 

서버2

- 파일질라 서버 설치

- 계정 추가 및 동기화 폴더 및 권한 지정

- 완료

 

위와 같은 간단한 설정으로 10분만에 특정 서버에 있는 동기화 혹은 백업 대상 폴더 및 파일에 대해 파일동기화 작업을 수행할 수 있는 프로세스를 구축했습니다. 

 

WinSCP가 FTP 클라이언트이지만 직관적인 인터페이스 UI를 가지고 있고 파일 동기화에 대한 기능도 쉽게 사용할 수 있도록 지원해줘서 좋아요.  특히 가장 좋은 점은 동기화 시 전체 동기화를 수행하는게 아닌 증분 백업을 지원해주는 부분입니다. 다른 파일 동기화 프로그램(ex : FreeFyleSync)의 경우 파일동기화 기능을 수행해낼 수 있으나 잦은 오류 및 두가지로 분리된 프로그램으로 인해 활용성이 조금 떨어지는 부분이 보여서 선택에서 배제가 되었네요