rsync는 rcp (와 scp)를 대신하여 디자인되었지만 더 많은 기능을 갖춘 오픈 소스 명령 줄 유틸리티입니다. 원격 파일을 동기화 할 수있는 매우 빠른 방법을 제공하는 "rsync 알고리즘"을 사용합니다.
rsync 프로젝트는 두 파일 세트가 링크 끝에 미리 존재하지 않아도 링크를 통해 파일의 차이점 만 전송하여 작업을 수행합니다.
rsync를 사용하면 사용자는 전체 파일 시스템과 디렉토리 트리를 업데이트 할 수 있으며, SSH, RSH 또는 직접 소켓을 전송으로 사용하고, 익명 rsync를 통해 미러링을 지원하며, 옵션으로 심볼 링크, 파일 소유권, 하드 링크, 사용 권한, 시간 및 기기가 포함됩니다.
rsync에는 설치에 특별한 권한이 필요하지 않으며 내부 파이프 라이닝 기능으로 여러 파일에 대한 대기 시간이 줄어 듭니다.
이 릴리스의 새로운 기능 :
. 여기에는 완전히 신뢰하지 않는 발신자로부터의 전송에 대한 보안 수정 사항이 포함되어 있습니다.
버전의 새로운 기능 :
이것은 버그 수정 릴리즈입니다. 여기에는 완전히 신뢰하지 않는 발신자로부터의 전송에 대한 보안 수정 사항이 포함되어 있습니다.
버전 3.1.0의 새로운 기능 :
출력 변경 :
기본적으로 3 자리 그룹의 숫자를 출력합니다 (예 : 1,234,567). 이 기능을 끄는 방법은 - 인간이 읽을 수있는 옵션을 참조하십시오. 데몬의 & quot; 로그 형식 & quot; 매개 변수 및 로그 이스케이프에서 사람이 읽을 수있는 출력을 요청하는 데 사용할 수있는 수정 자에 대한 관련 명령 행 옵션 (--out-format 포함). 로그 출력은 기본적으로 변경되지 않습니다.
--list-only 옵션은 - 인간이 읽을 수있는 설정의 영향을받습니다. 더 높은 수준의 가독성이 요구되면 기본적으로 숫자 그룹화가 표시되고 단위 접미사가 표시됩니다. 또한 사람의 가독성을 사용할 수있게되면 크기 출력의 열 너비가 11에서 14 자로 증가합니다. 구식 출력과 열 크기를 얻으려면 --no-h를 사용하십시오.
--stats 출력을 향상 시켰습니다 : 1) 생성 된 파일의 수 (protocol & gt; = 28), 2) 삭제 된 파일 수 (프로토콜 31에 대한 새로운 줄, --delete가있는 경우에만 출력 됨) 효과) 및 3) 유형별 개수를 보여주는 하위 계산 목록으로 파일 수, 생성 수 및 삭제 수를 추적합니다. 이전 된 횟수의 표현도 바뀌어 일반 파일 수에 불과하다는 것을 알 수 있습니다.
버그 수정:
EINVAL 또는 EILSEQ가 전체 출력 버퍼와 함께 반환 될 때 iconv 코드의 버그가 수정되었습니다.멀티 바이트 문자가 잘못 번역 될 수있는 --iconv 처리의 일부 드문 버그를 수정했습니다.
위조 된 "사라진 파일"을 수정했습니다. 일부 파일이 & quot; ./& quot;로 지정되면 오류가 발생합니다. 접두사 등은 그렇지 않았습니다.
--sparse의 부분 쓰기 후에 여분의 간격이 삽입 될 수있는 버그가 수정되었습니다.
진행 방식이 오류로 덮어 쓰여지기가 거의 불가능하도록 이전 진행 상황을 덮어 쓰게되었습니다.
비정상 종료 오류 메시지 전파가 개선되었습니다. 이것은 클라이언트 측이 비정상적으로 종료 할 때 서버로부터 에러를 수신하는 것을 도울 것이고, 또한 "예기치 않게 닫힌 접속"으로 죽지 않도록해야한다. 닫힌 연결이 실제로 예상되면 종료하십시오.
보낸 사람은 제거 할 각 파일을 검사하여 첫 번째 stat의 정보에서 변경되지 않았는지 확인합니다. 이렇게하면 사용자가 안전하게 옵션을 사용하지 않을 때 파일 데이터가 손실되는 것을 방지 할 수 있습니다.
압축 옵션에서 데이터 중복 버그로 인해 압축 효율이 떨어지는 문제를 수정했습니다. 이렇게하면 이전 rsync 프로토콜과 호환되는 (버그가있는) 방식으로 작동하면서 프로토콜 31을 향상시킵니다.임시 파일을 만들 때, rsync는 dot-char 선택 사항에 대해 조금 더 똑똑해졌습니다. OS X에서 & quot; .. & quot;로 시작하는 이름으로 문제를 해결할 수 있습니다.
이제 Rsync는 --inplace 및 --append transfers에 대한 정리 플래그를 설정하여 전송이 중단되면 쓰기 버퍼를 플러시합니다. 이렇게하면 더 많은 수신 된 데이터가 중단 된 전송으로 디스크에 기록됩니다 (이는 느리고 단조로운 연결에서 매우 유용합니다).
이제 map_ptr ()이 수행하는 읽기는 1K 경계에서 정렬됩니다. 이것은 정렬되지 않은 읽기를 좋아하지 않는 파일 시스템이나 파일을 돕습니다.
시간이 거꾸로 점프하면 msleep () 함수의 문제를 수정하십시오.
--protect-args가 사용 된 경우에도 arg가 분할되는 데몬 - 서버 모듈 - 이름 분리 버그를 수정했습니다.
향상 :
원격 --log-file = FILE 또는 --fake-super 옵션을 보내는 것과 같은 것들에 유용한 --remote-option = OPT (-M OPT) 명령 행 옵션이 추가되었습니다.
--info = FLAGS 및 --debug = FLAGS 옵션을 추가하여 출력 내용을보다 세밀하게 제어 할 수있게했습니다. --info = progress2를 사용하여 추가 유형의 --progress 출력을 추가했습니다.--msgs2stderr 옵션은 디버그 메시지가 소켓 프로토콜을 통해 이동하는 것이 아니라 stderr로 출력되도록하여 rsync 디버깅을 도울 수 있습니다.
--delete-missing-args 및 --ignore-missing-args 옵션을 추가하여 수신자의 누락 된 사용자 지정 파일을 삭제하거나 무시합니다 (일반적으로 사용자 지정 파일이 없으면 오류가 발생 함).
& quot; T & quot; (테라 바이트) 범주를 - 인간이 읽을 수있는 크기 접미어로 변경합니다.
복사본 중에 파일 소유권을 조작하기위한 --usermap / --groupmap / - chown 옵션이 추가되었습니다.
& quot; % C & quot; --checksum이 지정된 경우 (프로토콜 30 이상이 적용될 때) 모든 전송 된 파일의 MD5 체크섬을 출력하는 로그 출력 처리로 이스케이프합니다.
& quot; 역방향 조회 & quot; 매개 변수를 rsync 데몬 구성 파일에 추가하여 DNS 역방향 조회를 비활성화 할 수 있습니다.
데몬의 호스트 허용 / 거부 구성에 대한 정방향 DNS 조회를 추가했습니다. & quot; 정방향 조회 & quot;를 통해 사용 중지 할 수 있습니다. 매개 변수 (기본값은 사용함).지정된 사용자 그룹에 이름을 지정하지 않고 모든 그룹을 지정하도록 지정하는 방법을 포함하여 데몬의 구성 파일에 둘 이상의 그룹을 지정하는 방법을 추가했습니다. 또한 수퍼 유저가 실행하지 않아도 명시 적으로 지정된 uid / gid 값을 설정할 수 없다는 불만을 표시하기 위해 데몬을 변경했습니다.
데몬은 이제 실패 할 때 pre-xfer exec 스크립트에서 사용자에게 오류 메시지를 보내려고합니다.
기존 파일 계층 구조에서 alt-dest 옵션 사용 향상 : alt 디렉토리에서 일치하는 항목이 발견되면 기존 파일보다 우선합니다. (기존 버전을 사용할 때 변경되지 않은 파일의 속성 변경이 안전하기 전에 이후 버전을 기다려야합니다.)
데몬의 "인증 사용자"에 대한 사용자 별 인증 옵션 및 그룹 인증 지원이 추가되었습니다. 매개 변수.
데몬의 구성 파일에서 환경 변수를 참조하는 방법을 추가했습니다 (% VAR % 참조 사용).
non-dir을 symlink / hard-link / device / special-file로 대체 할 때, 업데이트는 이제 원자적인 방식으로 수행되어야합니다.
같은 xattrs (프로토콜 31)로 하드 링크 된 파일에 대한 xattr 정보를 다시 보내지 마십시오.백업 코드 계층 구조를 유지하면서보다 나은 논리를 사용하도록 백업 코드가 향상되었습니다. 또한 파일을 백업 할 때 rsync는 대상 파일을 곧 교체 할 수 있도록 하드 링크를 시도합니다 (정상적인 비 내장 논리).
나노 초 수정 시간을 동기화하는 기능이 추가되었습니다.
& quot; 압축하지 않음 & quot;에 대한 몇 가지 기본 접미사를 추가했습니다. 설정.
--protect-args 명령 줄 옵션의 기본값을 무시할 수 있도록 RSYNC_PROTECT_ARGS 환경 변수 검사를 추가했습니다.
--preallocate 명령 행 옵션을 추가했습니다.
--password-file = - stdin (filename "-")에서 암호를 읽습니다.
이제 Rsync에는 piped-stunnel 명령을 사용하여 원격 rsync 데몬에 연결하는 데 사용할 수있는 rsync-ssl 도우미 스크립트가 함께 제공됩니다. 또한 ssl 디먼 연결을 지원하기 위해 서버 측을 실행하는 stunnel 구성 파일을 포함합니다. 결과 파일을 패키지화하는 한 가지 방법은 packaging / lsb / rsync.spec 파일을 참조하십시오. (이것을 설치하고 사용하기가 더 쉬운 방법에 대한 제안을 환영합니다.)사용할 수 없게되는 동일한 체크섬 블록이 많이있을 때 일부 업데이트 속도가 향상되었습니다.
출력 버퍼링을 선택하기 위해 --outbuf = N | L | B 옵션이 추가되었습니다.
--fuzzy 옵션을 반복하면 코드가 alt-dest 디렉토리 내의 퍼지 일치를 찾습니다.
--chmod 옵션은 이제 숫자 모드를 지원합니다. --chmod = 644, D755
Solaris xattr 코드가 추가되었습니다.
죽을 신호를 받았을 때 rsync 데몬 (수신 대기 프로세스)이 0 상태로 종료되었습니다. 이것은 launchd 도움이됩니다.
pre-xfer exec 스크립트의 RSYNC_ * 환경 변수가 개선되었습니다. 데몬이 여러 요청 arg를 보냈을 때 RSYNC_REQUEST 환경 변수가 어떤 "pre" -xfer exec ". RSYNC_ARG # 변수의 값은 더 이상 "." arg (요청 dirs / files 이전). 따라서 요청 된 모든 값이 RSYNC_ARG # 변수에 나열됩니다 (별도로).
외계인 :
"instant-rsyncd" 스크립트를 지원 디렉토리에 복사하면 현재 디렉토리에 간단한 rsync 데몬을 쉽게 구성 할 수 있습니다.& quot; mapfrom & quot; 및 "mapto" 스크립트를 지원 디렉토리에 추가하면 다른 컴퓨터의 passwd / group 파일을 기반으로 로컬 전송에서 사용자 / 그룹 매핑을 더 쉽게 수행 할 수 있습니다.
지원 디렉토리에는 lsh 스크립트의 새롭고 개선 된 버전이 있습니다. 그것은 sudo를 사용하지 않고 (root로 실행될 때) perl로 작성되었으며 -u를 지원합니다. 이전 쉘 버전의 이름은 이제 lsh.sh입니다.
rsync가 후행 슬래시로 args를 처리하는 방식을 변경하려는 사람을 위해 support 디렉토리에 rsync-slash-strip이라는 헬퍼 스크립트가 있습니다. (예 : arg /는 arg로 제거되고 arg /.는 arg /로 변합니다).
내부의:
I / O 코드가 다시 작성되어 소켓을 통해 더 큰 버퍼 읽기를 수행했습니다. 수신기와 생성기 사이의 I / O는 소켓을 통한 표준 다중화 -I / O로 변경되었습니다.
보낸 사람은 보낸 사람 쪽 디렉터리 검색을보다 병렬 방식으로 수행하기 위해 생성자가 전송할 파일을 찾는 동안 데드 타임을 사용하려고합니다.
이제 데몬은 클라이언트가 keep-alive 활동 (프로토콜 31)을 지원할 수 있도록 데몬이 구성한 시간 초과 값을 클라이언트에 알릴 수 있습니다.
필터 코드는 좀 더 확장 가능하고, 더 읽기 쉽고, 더 나은 정상 검사를 위해 약간의 리팩토링을 받았습니다.
실제로 큰 숫자는 double 형으로 캐스팅하고 % .0f 변환을 사용하는 대신 자체 big-num 루틴을 사용하여 출력됩니다.
pool_alloc 라이브러리는 정렬 처리에서 몇 가지 사소한 개선 사항을 받았습니다.
acl / xattr 초기화 코드의 중복을 피하기 위해 init_stat_x () 함수를 추가했습니다.
포함 된 zlib는 1.2.3에서 1.2.8로 업그레이드되었습니다.
이제 rsync를 rsync에 포함 된 수정되지 않은 zlib 라이브러리 대신 사용하도록 컴파일 할 수 있습니다. 이것은 결국 기본값이 될 것이며, 그 시점에서 우리는 카운트 다운을 시작하여 포함 된 zlib를 제거 할 것입니다. 그때까지 다음을 사용하여 구성하십시오.
./configure --with-included-zlib = no
개발자 :
더 많은 조건부 디버그 출력을 추가했습니다.
안드로이드 및 미닉스의 빌드 문제를 수정했습니다.
버전 3.0.9 Pre1의 새로운 기능 :
--inplace를 사용할 때 체크섬 검사에서 크래시 버그를 수정합니다.
리눅스에서 symlink의 시스템 xattrs (예 : selinux)의 보존을 수정했습니다.
쓰기 금지 된 디렉토리 수정으로 인한 버그 수정.
--fake-super와 --link-dest 같은 파일 비교를 수정했습니다.
중복 된 슬래시를 피하기 위해 curr_dir 버퍼의 갱신을 수정하십시오.
데몬 제외 파일 오류를 오류와 유사하게 만듭니다.
맨 페이지의 후 처리와 관련된 몇 가지 문제를 수정했습니다.
버전 3.0.8 Pre1의 새로운 기능 :
버그 수정 :
두 개의 버퍼 오버 플로우 문제가 수정되었습니다. 정확하게 MAXPATHLEN 인 디렉토리 경로가 올바르게 처리되지 않았고 추가 경로 인 --backup-dir이 처리되었습니다.
파일 소유권을 보존하지 않고 하드 링크를 보존하고 전송 전이나 전송 중에 삭제를 수행 할 때 데이터 손상 문제가 수정되었습니다. 이것은 하드 링크 코드에서 일부 어설 션 오류를 수정하고 일치해야하는 잠재적 인 체크섬 (-c를 통해)을 일부 수정합니다.
rsync 데몬에 필터 / 제외 목록이 있고 전송이 ACL 또는 xattrs를 사용하는 경우 발생 가능한 오류를 수정했습니다.
64 비트 숫자를 처리 할 수없는 rsync에서 실제로 큰 파일을 처리하는 경우 문제가 해결되었습니다. Rsync는 파일이 너무 크다는 것에 불평하고 건너 뜁니다.
장치 및 특수 파일의 경우 복사되지 않는 파일에 대해 쓸모없는 ACL 및 / 또는 xattr 정보를 수집하는 것을 방지합니다. (복사되지 않은 파일은 여전히 파일 목록에 저장되지만 사용되지 않을 데이터는 수집 할 필요가 없습니다.) 이렇게하면 사용자가 --no-D를 사용하면 rsync에서 불평 할 수 없습니다 파일 목록에있는 특수 파일에서 확장 정보를 수집 할 수 없다는 것입니다 (전송에는 포함되지 않습니다).
--skip-compress에 대한 파일 접미사의 대문자 비교 버그를 수정했습니다.
rsync 데몬에 경로 설정없이 모듈이 구성되어 있으면 rsync에서 해당 모듈에 대한 액세스를 허용하지 않습니다.
대상 인수가 빈 문자열이면 현재 디렉토리에 대한 참조로 간주됩니다 (2.x는 이전처럼 사용됩니다).
rsync가 새로운 시간 설정 기능 (예 : lutimes)으로 컴파일 된 경우 rsync는 새로운 기능이없는 시스템에서 이전 기능 (예 : utimes)으로 폴백합니다. 이렇게하면 rsync 바이너리가 혼합 OS 릴리스 상황에서 더 이식성있게 만드는 데 도움이됩니다.
전송이 사용하고 있던 모든 호환성 플래그를 작성하지 않는 배치 파일 쓰기 버그가 수정되었습니다. 이는 송신자 측 I / O 오류가 포함 된 배치 파일의 잠재적 인 프로토콜 문제를 수정합니다. 배치 판독기가 예상하지 못한 방식으로 전송되었을 것입니다.
하드 링크 코드가 개선되어 장치 번호 해싱이 제대로 작동하는지 확인하고 하드 링크 코드가 실패 할 경우 추가 정보를 제공합니다.불가능한 체크섬 위치를 검색하지 않기 위해 --inplace 코드가 향상되었습니다. 4 중 verbose chunk [N] 메시지는 이제 inplace chunk가 read + write가 아닌 seek에 의해 처리되었을 때 언급 할 것입니다.
rsync 데몬에 연결하지 못하면 마지막 연결뿐만 아니라 모든 연결 오류 (예 : IPv4 및 IPv6)를보고하십시오.
향상된 ACL 마스크 처리, 예 : Solaris 용.
alt-dest 옵션 (예 : --link-dest)을 사용하는 xattr 및 / 또는 ACL 전송이 alt-dest 디렉토리의 xattr / ACL 정보에 대한 변경 사항을 항목 화하려고 할 때 오류를 출력 할 수 있지만 대신 아직 존재하지 않는 새로운 대상 디렉토리에 액세스하십시오.
파일에 대한 전체 경로를 언급하는 향상된 xattr 시스템 오류 메시지.
동일한 심볼릭 링크에 대한 --link-dest 검사는 이제 수신기에서 변경할 수없는 속성 차이를 고려하지 않습니다.
특정 OS 유형의 특정 파일 형식에 대한 xattrs 읽기 / 쓰기를 피하십시오. config.h에서 NO_SYMLINK_XATTRS, NO_DEVICE_XATTRS 및 / 또는 NO_SPECIAL_XATTRS를 설정하도록 구성이 개선되었습니다.
unsafe-symlink 오류 메시지가 개선되었습니다.
사용자가 쓸 수없는 새 파일에 xattrs를 설정하는 버그가 수정되었습니다.사용자가 쓸 수없는 파일 및 디렉토리를 복사 할 때 --fake-super 버그가 수정되었습니다.
rsync가 파일 크기를 설정할 때 스파 스 파일의 마지막 스파 스 블록을 실제 블록으로 바꿀 수있는 버그가 수정되었습니다 (ftruncate가 필요함).
임시 파일 이름이 너무 길면 rsync는 인접한 상위 비트 문자의 중간에서 이름을 자르지 않습니다. 이것은 파일 시스템이 이름에 유효하지 않은 멀티 바이트 시퀀스를 포함 할 수 없으면 잠재적 인 파일 이름 오류를 방지합니다.
멀 티 프로토콜 소켓 연결이 실패하면 (즉, 데몬과 접촉 할 때) 마지막 장애가 아닌 모든 장애를보고합니다. 이렇게하면 최종 오류 (예 : IPv6 프로토콜 지원되지 않음 오류) 이전에 발생한 관련 오류 (예 : IPv4 연결 거부 오류)가 손실되는 것을 방지 할 수 있습니다.
uid 또는 gid (설정 가능하지 않음)에 -1을 사용하여 chown을 호출하려고하면 전송 오류가 발생합니다.
--one-file-system을 사용하여 파일을 강제로 삭제하는 문제를 수정했습니다.
popt arg 파싱을 수정하여 arg를 취하지 않는 옵션이 그것을 제공하려는 시도를 거부하도록 수정하십시오.
/ rrsync 스크립트를 지원하기위한 몇 가지 사소한 옵션을 조정할 수도 있고, vim을보다 효과적으로 강조 할 수있는 몇 가지 정규식 변경을 할 수도 있습니다.
support / mnt-excl 스크립트의 일부 문제가 수정되었습니다.
몇 가지 맨 페이지 개선.
향상 :
& quot; .hg / & quot; 기본 cvs excludes (-C & --cvs-exclude 참조)로 변경하십시오.
개발자 :
사용 가능한 경우 lchmod ()를 사용하십시오 (단순한 기호 링크가 아님).
socketpair_tcp () 루틴에 대한 몇 가지 수정 사항.
패키징 하위 디렉토리의 도우미 스크립트를 업데이트했습니다.
configure.in의 이름을 configure.ac로 변경했습니다.
버전 3.0.6의 새로운 기능 :
rsync가 증분 - 재귀 전송에서 생성 된 배치 파일을 읽을 때 - read-batch hang이 수정되었습니다.
데몬의 소켓 코드가 여러 연결의 동시 도착을 처리하는 문제를 수정했습니다.
--safe-links / - copy-unsafe-link를 수정하여 값에 연속적인 슬래시가있는 심볼릭 링크를 올바르게 처리합니다.
USER @ 앞에 접두어가 붙을 때 [IPv6_LITERAL_ADDR] 구문 분석이 수정되었습니다.
보낸 사람은 0 길이의 값을 가진 (가짜) 심볼릭 링크를 건너 뛰어 수신기의 전송 오류를 방지합니다.
파일 목록을 보내는 동안 I / O가있는 경우 발신자가 태그 0 오류로 사망 할 수있는 경우가 수정되었습니다.
-e가 짧은 옵션의 시작 부분에있을 때 rrsync 스크립트가 서버 측 문제점을 피하도록 수정했습니다.
사라진 디렉토리가 적절한 종료 코드 24 대신 종료 코드 23으로 바뀔 수있는 문제가 해결되었습니다.
로컬 복사를 할 때 symlink의 --iconv 변환을 수정했습니다.
-one-file-system이 마운트 지점 디렉토리가 전송 디렉토리와 일치하지 않을 때 수신 측에서 삭제를 중지하지 않는 문제를 수정했습니다.
명명 된 ACL 값이 없을 때 ACL 마스크가 삭제되는 문제를 수정했습니다.
--backup 옵션으로 인해 rsync가 잘못된 ACL / xattr 정보를 수신 된 파일과 연관시킬 수있는 ACL / xattr 손상 문제점이 수정되었습니다.
--xlyrs를 --only-write-batch와 함께 사용하는 것을 수정했습니다.
--read-batch와 함께 --dry-run 사용을 수정했습니다.
고정 구성의 잘못된 대상 사용.
configure의 --disable-debug 옵션을 수정했습니다.
--disable-iconv-open configure 옵션을 추가하여 iconv_open ()을 찾을 수없는 시스템의 런타임 문제를 수정했습니다.
사용자가 --remove-source-files (또는 사용되지 않는 --remove-sent-files)를 --read-batch와 결합하려고하면 불평하고 죽습니다.
Solaris에서 Linux로 특수 파일을 전송하지 못했습니다.
댓글을 찾을 수 없습니다