유니슨은 얼마나 신뢰할 수 있습니까? 데이터가 망쳐 졌습니까? [닫은]


17

unison ( http://www.cis.upenn.edu/~bcpierce/unison/ )을 사용 하여 데이터를 망칠 때 사실에 관심이 있습니까? 그 신뢰성에 대해 알고 싶습니다.

답변:


4

다음과 같은 이유로 Unison 사용을 중단했습니다.

  • 파일 이름의 특수 문자 및 국제 문자를 올바르게 처리 할 수 ​​없습니다. 이 파일들은 복사되지 않았다고 생각합니다 (그러나 확실하지 않습니다).
  • Mac에서 (선택적) GUI가 자주 충돌했기 때문에 충돌이 발생할 때마다 동기화 프로세스를 다시 시작해야했습니다.

3
Unison의 파일 이름, Windows, Linux 또는 Mac 또는 ssh를 통한 플랫폼 간 동기화에서 국제 문자에 문제가 없었습니다. 실제로 rsync가 여전히 할 수 없을 때 Win 및 Linux 호스트를 올바르게 동기화 할 수 있기 때문에 처음에 사용하기 시작했습니다.
ttarchala

3
Cygwin 및 비 ASCII 파일 이름에 알려진 문제가 있습니다. 이것은 하나의 버그가 아닙니다.
JeffP

나는 많은 일본 기록 보관소와 함께 Unison을 사용합니다. 몇 년 전에 문제가 있었지만 아무런 문제가 없습니다. 이미 몇 년이 지난 유니 코드를 완전히 지원하는 2.48.3을 사용하고 있습니다.
edwinbradford

23

2004 년 이후 Unison을 사용하거나 사용하지 않았습니다. 다른 질문에 대한 답변으로 컴퓨터간에 데이터를 백업 / 동기화하기위한 도구로 rsync를 끄덕였습니다.

이 모든 시간 동안 Unison은 파일 내용을 파쇄한다는 의미에서 내 데이터를 망치지 않았습니다. 그러나 사용중인 파일, 권한 또는 플랫폼 간 문제와 같은 경계 조건에 대한 민감도를 표시했습니다. Unison과 파일을 동기화 할 때 오류가 발생하면이 점을주의해서 조사해야합니다. 로그를 저장하십시오.

몇 주 전에 저는 Unison 사용을 중단하고 rsync로 돌아갔습니다. 주요 이유 :

  • rsync가있는 동안 Unison은 더 이상 적극적으로 개발되지 않습니다.
  • Unison은 실제 사용 환경에서 rsync보다 느리며, 홈 디렉토리에 총 150GB가 넘는 수십만 개의 파일이 있습니다. USB 드라이브에 하루 작업의 백업은 Unison에서 약 10 분이 걸리고 최신 rsync에서는 1-2 분 밖에 걸리지 않습니다.
  • Unison의 데이터베이스는 파일 시스템 수신의 갑작스러운 연결 끊김과 같은 앞서 언급 한 에지 사례로 인해 2 개월마다 다시 빌드해야합니다. 파일이 손상되면 파일이 손상되지 않지만 동기화되지 않은 상태로 유지되어 이상한 오류가 발생합니다. 이 데이터베이스 재 구축, 특히 원격 볼륨을 사용하면 몇 시간 또는 며칠이 걸릴 수 있습니다.

14
btw, Unison은 실제로 rsync와 다른 사용 사례입니다. Unison은 양방향 동기화를위한 것이고 rsync는 단방향 동기화를위한 것입니다. 이것은 rsync보다 더 유능하지만 필연적으로 더 복잡합니다. 따라서 작업 등에 적합한 도구입니다.
sleske

데이터베이스를 어떻게 "재 구축"합니까? .unison 폴더를 지우시겠습니까?
russellpierce

백업을 위해 rsync 대신 Crashplan.com을 고려하십시오.
Chloe

9

나는 ttarchala만큼 오래 사용하지 않았지만 더 작은 파일 세트에는 훌륭하게 작동하며 데이터를 잃지 않았습니다.

활발한 개발이 진행되고 있지는 않지만 어느 정도 유지되고 있습니다. 지난 몇 개월 동안 소스 트리에 커밋 된 업데이트 / 버그 수정이 있었으며 여기에서 현재 바이너리를 얻을 수 있습니다 .

또한 전체 파일을 체크섬하는 대신 크기 및 날짜별로 파일 변경을 감지하는 fastcheck / pretendwin을 설정하여 성능을 향상시킬 수 있습니다.


8

나는 그것을 오랫동안 사용했다 (데스크톱과 노트북 사이를 동기화하기 위해). 다른 사람들이 쓰는 것처럼 동기화하는 동안 매우 조심스럽고 파일을 잃어 버리지 않았습니다. 문제가 발생하면 시간이 많이 걸리는 재 동기화가 필요할 수 있지만 결국에는 모든 것이 정리됩니다.

정기적 인 작동에서는 빠르고 안전합니다.


7

Mac에서 Unison을 8 년 이상 사용해 왔습니다. Unison이 손상되거나 파일을 잃어버린 적이 없습니다. 초기에 Unison에서 리소스 포크를 이해하지 못하는 문제가 발생하여 동기화가 실패했습니다.

Mac B & W G3의 Finder가 메가 바이트마다 1 ~ 2 바이트를 무작위로 변경하여 복사 된 파일을 자동으로 손상시키는 것을 알아 낸 후에 Unison을 사용하기 시작했습니다. (Rev 1 로직 보드에서 Firewire의 하드웨어 문제로 인해 발생했습니다.) 그 문제 이후, 저는 백업 사본을 비교하는 것에 대해 정말 편집증이었고 Unison이 저를 위해 잘 해냈습니다.


3

Unison의 실패는 다음과 같습니다.

Windows에서 두 Cygwin 디렉토리를 동기화하면 Cygwin이 사용하는 기호 링크가 손상되고 컨텐츠가 손상됩니다.

C:\Program Files\Unison>"Unison-2.40.102 Text.exe"  c:\cygwin socket://xps:4321/c:\cygwin -path bin
UNISON 2.40.102 started propagating changes at 03:32:12.55 on 28 Feb 2013
[BGN] Updating file bin/X from C:/cygwin to //xps/C:/cygwin


$ ls -l /bin/X //xps/c/cygwin/bin/X
-rwxr-xr-x+ 1 Administrators ???????? 19 Feb 28 03:32 //xps/c/cygwin/bin/X
lrwxrwxrwx  1 Chloe          None      8 Jan 28 18:35 /bin/X -> XWin.exe


$ stat /bin/X //xps/c/cygwin/bin/X
  File: `/bin/X' -> `XWin.exe'
  Size: 8               Blocks: 1          IO Block: 65536  symbolic link
Device: f8e5edb8h/4175818168d   Inode: 1125899907027010  Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1006/   Chloe)   Gid: (  513/    None)
Access: 2013-01-28 18:35:38.648870400 -0500
Modify: 2013-01-28 18:35:38.648870400 -0500
Change: 2013-01-28 18:35:38.648870400 -0500
 Birth: 2013-01-28 18:35:38.648870400 -0500
  File: `//xps/c/cygwin/bin/X'
  Size: 19              Blocks: 1          IO Block: 65536  regular file
Device: 808a8f0bh/2156564235d   Inode: 4222124650737757  Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (  544/Administrators)   Gid: (4294967295/????????)
Access: 2013-02-28 03:32:20.619899500 -0500
Modify: 2013-02-28 03:32:20.619899500 -0500
Change: 2013-02-28 03:32:20.629884400 -0500
 Birth: 2013-02-26 13:21:32.963302500 -0500

크기와 권한이 변경 되었습니까? 대상 컴퓨터에서 명령을 실행하려고하면 실패합니다.

Chloe@xps /usr/bin
$ X
bash: ./X: cannot execute binary file

심볼릭 링크를 올바르게 복사하려면 rsync를 사용해야합니다.

$ rsync -arvz  /cygdrive/c/cygwin/bin/ //xps/c/cygwin/bin
sending incremental file list
./
X -> XWin.exe

또 다른 실패는 Unison이 기본적으로 수정 된 시간을 유지하지 않는다는 것입니다 (단, -times파일 수정 시간을 동기화 하는 옵션을 사용할 수는 있습니다)! 동기화하면 수정 된 시간이 대상의 파일 작성 시간으로 설정됩니다.

$ unison 'c:\Sites' '\\xps\c\Sites'
...
  new file ---->            ruby-env.sh
...
[BGN] Copying ruby-env.sh from c:/Sites to //xps/c/Sites
[END] Copying ruby-env.sh



$ ls -l ruby-env.sh //xps/c/sites/ruby-env.sh
----------+ 1 ???????? ???????? 188 Feb 28 02:48 //xps/c/sites/ruby-env.sh
-rw-r--r--+ 1 Chloe    None     188 Feb 27 03:06 ruby-env.sh

이론적으로는 다음과 같은 경우 데이터가 손실 될 수 있습니다

  1. 위치 1, 위치 2,
  2. 두 번째 위치에서 파일의 동기화 된 사본을 수정합니다.
  3. 첫 번째 위치와 세 번째 위치 사이에서 Unison과 동기화
  4. Unison으로 인해 새로운 수정 날짜로 3 번째 목적지에 파일을 만들었습니다
  5. rsync 또는 SyncToy와 같은 다른 동기화 도구를 사용했습니다.
  6. 그런 다음 세 번째 대상을 다시 두 번째 위치와 다시 동기화했습니다. 두 번째 위치는 실제로 첫 번째 소스보다 늦게 수정되었지만 세 번째 대상 파일 작성 시간 이전에,
  7. 다른 동기화 도구는 세 번째 위치 시간이 최신임을 확인하고 두 번째 위치의 변경 사항을 덮어 씁니다.
  8. 따라서 데이터가 손실됩니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.