2011년 11월 29일 화요일

Rsync on Windows can handle UTF-8 file/folder. Thanks cygwin 1.7

 

image

image 

 

1. 배경

  Linux, Windows 장비가 혼재된 환경에서 rsync를 백업용으로 사용한 것은 5년 이상 되었지만, 항상 한글 처리가 가장 큰 이슈였다.

  이 문제때문에 항상 백업될 파일/폴더 이름에 ASCII가 아닌 다른 문자를 사용하고 있는지 확인하는 것이 첫번째 작업이었다. 그래서, 개발자/DBA 등 파일 데이터를 생성하는 사용자들에게 매번 협조를 구해야만 했다.  workaround로 tar와 같은 압축 프로그램을 이용해서 미리 파일/폴더명을 ASCII 로 정리해두는 꽁수(?)를 사용하기도 했지만 어쨌든 깔끔한 방법은 아니었다.

 

 

2. 원인

 

  원인은 UNIX emulation layer를 제공하는 cygwin DLL이 UTF-8을 제대로 지원하지 못하기 때문이다. 이것 때문에 별도로 패치된 cygwin DLL 파일을 구하는 경우도 있었지만, 어쨌든 권장할 만한 방법은 아니었다. rsync 뿐만 아니라 cygwin 에 의존하는 다른 오픈소스 프로그램들도 비슷한 문제를 안고 있다고 보면 된다.

 

 

3. 한글이 정상적으로 처리되지 않을 때

  구 버전의 cygwin DLL 파일과 함께 rsync를 실행해서 한글 파일, 폴더를 복사 시도했다.

 

image

- 클라이언트쪽 메시지

image

- rsync 서버쪽 로그 (서버는 정상적으로 보내주는 것을 알 수 있다)

 

 

4. 해결책

rsync 패키지에 함께 제공되는 cygwin DLL 파일을 최신버전 (1.7.9)로 덮어쓴다. 

cygwin 최신 버전을 구하려면...

  • Cygwin 공식 사이트에서 setup.exe 실행 파일을 다운로드 받고 설치한다. 그 다음에 cygwin DLL 파일만 추출한다. 또는
  • 이 포스팅 작성자가 미리 정리한 cygwin-1.7.9-1.zip  파일을 여기에서 다운로드한다.
    다운로드 받은 cygwin-1.7.9-1.zip 파일에 포함된 cygwin1.dll 파일 정보
  • 03/29/2011  05:11 PM         2,666,500 cygwin1.dll
                   1 File(s)      2,666,500 bytes

        MD5SUM: a47a6b26c566f364e71a83b789a56226 *cygwin1.dll

image


 

5. 정상적으로 진행될 때의 스크린샷 (#1)

1.7 최신 버전의 cygwin DLL 파일과 함께 rsync를 실행해서 한글 파일, 폴더를 복사 시도했다.

 

image

- 클라이언트쪽 메시지

image

- rsync 서버쪽 로그

 

  에러메시지가 좀 있지만, 한글 이름으로 된 파일/폴더 들이 잘 전송되는 것을 볼 수 있다.

  chown 파일/폴더 failed: Invalid argument (22) 에러 메시지의 경우, 대충 짐작되지만 구글링해보면 좀 더 많은 자료를 찾을 수 있다. 간단히 정리하면 rsync 옵션 –a  (archive) 때문이다.  –a 옵션은  –rlptgoD  와 동일한 옵션이며, 그 중 –p (preserve permission), –o(preserve owner), –g (preserve group) 가 문제의 에러 메시지를 발생시킨 것이다.

  즉, rsync 서버로부터 Windows machine으로 파일을 전송하고 나서 Permission, Owner, Group 정보를 원본 그대로 설정하려고 시도하다가 발생한 것이다.이는 Linux 와 환경이 근본적으로 다르기 때문이므로 옵션을 다르게 사용할 필요가 있다.

 

image

- rsync의 옵션 목록 (문제의 옵션들을 볼 수 있다)

 

 

6. 정상적으로 진행될 때의 스크린샷 (#2)

마지막으로  rsync 옵션을 변경해서 한글 파일, 폴더를 복사 시도했다.

 

image

- 클라이언트쪽 메시지 (에러 메시지들이 사라졌다)

 

앞서 사용한   –a  옵션이 아닌  –rltD 라는 다소 복잡한 옵션을 지정했다.   (-vz 옵션은 그대로 사용)  

 

깔끔하게 출력되는 모습이 보기 좋다. 성공!!!

 

 

7. 참고자료

 

2011년 11월 28일 월요일

What is “Backup Window”

 

 

backupwindow

 

PC에 남아 있던 자료인데, 출처는 기억나지 않는다.  Backup Window는 백업에 소요되는 시간으로 기억해두면 좋다.

2011년 11월 25일 금요일

Windows 8 Developer Preview can not boot with VMware vSphere 5

 

VMware Workstation 8 에 설치한 Windows Server 8 Developer Preview

image

제목처럼 Windows 8 (Client & Server) Developer Preview 버전은 VMware vSphere 5 에서 설치/부팅할 수 없습니다.

그래도 시도하면.. 다음과 메시지를 보이며 VM이 자동 종료됩니다.

image

image

참고자료