it-swarm-ko.tech

긴 파일 이름을 지원하는 Windows rsync 또는 좋은 대안?

현재 Linux 호스트에서 rsync를 사용하여 Windows에서 Linux 상자로 항목을 복사합니다. 하지만 이름이 긴 파일은 복사 할 수 없습니다.

나는 DeltaCopy , cwrsynccygwin 을 시도했습니다. 내가 찾은 것에서 이러한 모든 도구는 파일 길이가 길어지면 파일 복사를 거부합니다. 이것은 약 255 자 정도 인 것 같습니다.

이 문제는 cwrsync 포럼 here 에서 해결되었으며 cygwin 1.7이 출시되고 UTF8이 지원 될 때마다 향후 언젠가 수정 될 수 있습니다. 테스트 빌드 여기 도 있습니다.

프로덕션 시스템에서 테스트 빌드를 사용하는 것이 특히 불편합니다. 누군가가 다른 rsync 옵션을 알고 있기를 바랍니다.

Rsync의 대안으로 길거나 비정상적으로 명명 된 파일에 문제가없는 Windows 호스트에서 Linux의 디렉토리 구조를 복사 할 수있는 다른 도구를 알고 있습니까? 중요한 점은 SSH 터널에서 쉽게 작업 할 수있는 도구가 필요하다는 것입니다. 일부 시스템은 방화벽을 벗어 났고 SSH가 내가 사용할 수있는 터널이라고 생각합니다.

13
Zoredache

요점이 누락되었을 수 있지만 Windows에서 Robocopy 사용을 고려해 보셨습니까? RSync와 유사하지만 응용 프로그램에서 직접 예약 할 수 없습니다.

복사본에 대한 배치 파일을 작성한 다음 예약 된 작업을 생성하면이 문제를 해결할 수 있습니다. Robocopy는 무료이며 매우 강력합니다. Samba와 네트워크를 사용하여 Linux와 Windows간에 파일을 복사하는 데 자주 사용하며 Robocopy의 재개 기능은 정말 강력합니다.

6
BinaryMisfit

아하! rsync와 함께 subst를 사용할 수 있습니다.

깊은 디렉토리 트리 d :\very\long\file\n\ame\etc\etc이있는 경우 X :를 d :\very\long\file\name\etc로 대체 한 다음 rsync를 and/cygdrive/x/whatever에서. 이것은 클라이언트 쪽과 서버 쪽에서 모두 작동합니다.

이제 전략적 잠수함을 사용하여 파일 이름의 길이를 줄일 수 있지만 이것이 260 자 제한을 우회 할 수 있는지 여부는 알 수 없습니다. 또한 매우 편리하지 않을 수도 있습니다. 그래도 시도할만한 가치가 있습니다.

존 레니.

---- 8 <----

긴 파일 이름에 대한 내 방황은 http://www.ratsauce.co.uk/notablog/LongFilenames.asp 를 참조하십시오.

나는 \\?\접두사를 Cygwin에 가져 오는 방법을 모른다. 분명히 현재 버전의 Cygwin은 내부적으로 접두사를 사용하지 않는다. 아마도 그들은 새 버전에서 이것을 다루고 있으며 이것이 260 자보다 긴 이름을 지원하는 이유입니다. 나는 Cygwin rsync를 모든 곳에서 사용하므로 여러분처럼 릴리스를 간절히 기다리고 있습니다.

Cygwin rsync에는 몇 가지 다른 문제가 있습니다. cygwin = nontsec를 지정하지 않는 한 ACL을 엉망으로 만들고 매우 큰 디렉토리에 매달리는 경향이 있습니다. 죽기 전에해야 할 일 목록에서 이러한 문제가없는 기본 Windows 버전의 rsync를 작성하는 것입니다. 나는 이것이 이루어 졌다고 생각하지만, 공개 도메인이 아닌 상업용 버전으로 만 가능합니다.

JR

5
John Rennie

동일한 문제 (1.7 이전 cygwin의 제한 사항)가 발생하고 여기에서 cygwin 1.7과 함께 작동하는 cwrsync 빌드를 발견했습니다.

http://www.doering-thomas.de/page.php?seite=1&sub=6&lang=en#rsync

(cwrsync 포럼에서 찾은 원본 링크)

정확히 공식 빌드는 아니지만 내 문자셋 문제를 해결했습니다. :)

2
user21332

Unison http://www.cis.upenn.edu/~bcpierce/unison/

bi-directionnal 동기화 (rsync로는 할 수없는)도 제공 할 수 있기 때문에 rsync에 대한 매우 흥미로운 대안입니다. 이미 2 개의 가상 머신에서 성공적으로 사용했으며 결과에 매우 만족했습니다.

그러나 긴 파일 이름에 관한 한 그것이 당신이 원하는대로 작동하는지 모르겠습니다.

공식 웹 사이트에서 :

Unison은 Unix 및 Windows 용 파일 동기화 도구입니다. 파일 및 디렉토리 모음의 두 복제본을 서로 다른 호스트 (또는 동일한 호스트의 서로 다른 디스크)에 저장하고 개별적으로 수정 한 다음 각 복제본의 변경 사항을 다른 복제본에 전파하여 최신 상태로 가져올 수 있습니다.

2
Olivier Jaquemet

http://lists.samba.org/archive/rsync/2009-March/022955.html

http://www.okisoft.co.jp/esc/utf8-cygwin/ 가능한 경로 크기를 늘리는 부작용이있는 UTF8 레이어가 있습니다. 저자에 따르면 더 많은 캐릭터를 사용하려면 패치에서 상수를 올릴 수 있습니다. 그것은 훨씬 더 끔찍해 보입니다.

아마도 원격 동기화에 대한 최선의 선택은 아니지만 더 긴 파일 이름을 지원한다고 주장하는 Windows rsync입니다.

1
redblacktree

이식성을 잃지 않으려면 rsync를 유지하고 255 제한을 해결하는 것이 좋습니다. 이 제한은 더 이상 Windows 내부가 아니며 RSYNC 코드에 있습니다. 사실 Windows의 제한은 현재 약 2048입니다 (제가 잘 기억한다면).

나는 당신이 지정한 것 이외의 다른 rsync 포트가 없다고 확신하며 테스트 버전을 사용하고 발견 할 수있는 버그를보고하는 것이 좋습니다.

FTP 사용에 신경 쓰지 않는다면 LFTP를 시도해 볼 수 있습니다. 미러링 기능이 매우 우수하지만 백업/동기화와 관련하여 rsync와 비교할 수 없습니다.

0
sorin

나는 스크립트를 함께 해킹 rsync (및 다른 프로그램)를 진행할 수 있도록 짧은 이름으로 파일이나 디렉토리의 이름을 일시적으로 바꿀 수 있습니다. Linux에서 Windows (rsync 또는 기타)로 파일을 복사하는 데 사용하는 도구 체인의 일부로이를 사용할 수 있습니다. 나는 당신이 "비정상적"이라는 말이 무엇을 의미하는지 모르기 때문에 아마도 이것은 당신의 요구 사항의 일부만을 다룬다. 도움이되는지 알려주세요.

0
taltman

그렇다면 Windows에서 도구가 좋지 않은 경우 Linux 도구를 사용할 수있는 방법이 있습니까?

Ssh- sshfs ?

SSH없이-VPN을 사용하고 SMB로 마운트 하시겠습니까?

어느 쪽이든 파일 시스템에 대해 더 유능한 Linux rsync 클라이언트를 사용할 수 있습니다. 나는 YMMV 그래서 10GB의 데이터로 이것을하지 않았습니다. :)

0
Cawflands

이것은 큰 파일 구조를 수행하지 않지만, 긴 이름을 가진 비교적 작은 데이터 세트의 경우 7-Zip과 같은 것을 사용하여 rsync가 전송할 수있는 아카이브를 만드는 것을 조사 할 수 있습니다. Windows 서버에서 Linux 서버로 데이터를 가져와야한다고 말씀하셨습니다. 셸 액세스 권한이있는 경우 컨테이너 (7-Zip)에 필요한 데이터를 보관하고 컨테이너를 전송하고 서버에 도달하면 확장합니다. 이것은 긴 파일 이름 문제를 아카이버로 밀어 붙이며, 더 나은 지원과 비 Cygwin 도구가 있다고 생각합니다.

0
sysadmin1138