아무도 이것이 무엇을 말해 줄 수 있습니까?
rsync -uva --delete /srv/bkp01 /srv/offbk2/ > ~/offbkp01.log
삭제 bkp01
하고 offbk2
로그를 보냅니 offbkp01.log
까?
아무도 이것이 무엇을 말해 줄 수 있습니까?
rsync -uva --delete /srv/bkp01 /srv/offbk2/ > ~/offbkp01.log
삭제 bkp01
하고 offbk2
로그를 보냅니 offbkp01.log
까?
답변:
이것을 부분으로 나누기 위해 두 가지 주요 섹션과 요약 및 메모가 있습니다.
rsync
명령rsync -uva --delete /srv/bkp01 /srv/offbk2/
rsync-command > ~/offbkp01.log
rsync
명령:rsync
-나는 이것이 설명이 필요 없다고 가정합니다 (그러나 요청하면 제공 할 것입니다).-uva
-단일 문자 옵션 세트로, 짧고 긴 형식이 표시됩니다.
-u
--update
-rsync는 모든 수정 사항이 원본의 파일과 나이가 같거나 크기가 다른 대상 파일에만 적용해야한다고 알려줍니다. 즉, rsync는 대상을 업데이트 할 소스의 변경 사항 만 전달해야 하지만 대상 파일이 이전 버전이되도록 변경해서는 안됩니다.
몇 가지 예외가 있습니다. 유형의 차이 (예 : 하나는 파일이고 다른 하나는 디렉토리)는 날짜와 상관없이 업데이트를 유발합니다. 심볼릭 링크 및 기타 특수 파일은이 옵션을 무시합니다. 그리고 중요한 것은 삭제되는 파일에 영향을 미치지 않습니다.
-v
--verbose
-rsync가 실행하는 동안 인쇄하는 정보의 양을 증가시킵니다. 이것이 없으면 rsync는 (거의?) 아무것도 인쇄하지 않습니다. 이 옵션을 그대로 사용하면 rsync는 전송중인 파일을 알려주고 마지막에 요약을 넣습니다. v
매뉴얼 페이지에서 v
디버깅 할 때만 두 개 이상을 사용해야 한다고하더라도 더 많은 정보가 인쇄되는 정보를 증가시킵니다 . -a
--archive
-이것은 다른 여러 옵션 ( -rlptgD
)과 함께 패키지로 제공됩니다. 긴 이름에서 알 수 있듯이 파일과 디렉토리를 보관하기위한 많은 공통 옵션을 설정하는 빠른 방법입니다. 그것은 :-r
--recursive
-rsync에게 디렉토리를 재귀 적으로 복사하도록 지시합니다. 이 -d
--dirs
옵션 이나 더 구체적인 옵션 이 없으면 rsync는 발생한 디렉토리를 건너 뛰기 만합니다 (그리고 출력에서 알려줍니다). -l
--links
-소스가 심볼릭 링크 인 경우 대상에서 심볼릭 링크를 만듭니다. 다른 옵션에 따라 심볼릭 링크를 건너 뛰거나 완전히 별도의 사본 (즉, 심볼릭 링크 대신 내용 (또는 파일의 다른 사본)이있는 실제 디렉토리)으로 만들 수 있습니다. -p
--perms
-대상 파일의 권한을 소스 파일과 동일하게 설정합니다. -t
--times
-대상 파일의 수정 시간을 소스 파일과 동일하게 설정합니다. 이 시간을 동기화 상태로 유지하면 rsync 알고리즘의 효율성이 높아 지므로 일반적으로 명시 적 또는 암시 적으로 항상 사용하기를 원합니다. -g
--group
-대상의 그룹 속성을 소스와 동일하게 설정합니다. 기본적으로 이름으로 연결되지만 경우에 따라 그룹 ID 번호로 대체됩니다. 수신 rsync가 수퍼 유저로 실행되지 않는 경우 (또는로 가짜 --fake-super
) 수신 측 에서 rsync를 호출 한 사용자 가 구성원 인 그룹 만 설정할 수 있습니다. 그렇지 않으면 그룹은 앞서 언급 한 동일한 사용자의 기본 그룹으로 설정됩니다. -D
-옵션 --devices
과 동일 --specials
합니다. 그들은 의미한다 :--devices
-캐릭터 및 블록 장치 파일이 전송됩니다. 수신 rsync가 수퍼 유저로 실행되지 않거나으로 가짜 인 경우에는 효과 가 없습니다 --fake-super
. --specials
-소켓과 같은 특수 파일이 전송됩니다 (그렇지 않은 경우). --delete
-rsync에게 대상에 있지만 소스에는없는 파일을 삭제하도록 지시합니다. 이것은 위에서 설정된 업데이트 옵션의 영향을받지 않습니다 (실제로 대부분의 파일 시스템은 어떤 조치가 최신 조치인지 확인하기 위해 필요한 데이터를 보유하지 않기 때문에 어떻게 될 수 있습니까?). 이 옵션은 와일드 카드 / 글로브 확장 후 소스에서 작동 하므로 dir / *는 dir /와 다릅니다. 몇 가지 중요한 참고 사항 :--dry-run
의도하지 않은 변경 사항이 없는지 확인하는 전송을 수행하는 옵션을 먼저 사용하여 시도해야합니다 . --ignore-errors
옵션을 사용하여 재정의 할 수는 있지만 그렇게하고 싶지는 않을 것입니다.--delete-during
알고리즘이 사용됩니다. 수신기가 오래된 경우 --delete-before
사용됩니다. 오류가 발생할 경우 파일이 특정 종류의 일관성을 유지하는 것이 중요한 경우 (예 : 다른 모든 변경이 이루어질 때까지 아무것도 삭제하지 않는 경우) 기본 옵션보다 더 구체적인 옵션을 사용해야합니다./srv/bkp01
-소스 파일 또는 디렉토리. 디렉토리 끝에 슬래시가 있거나없는 경우 및 다른 디렉토리가 존재하는 경우의 의미에 대한 자세한 규칙이 있습니다. 자세한 내용은 맨 페이지 의 USAGE 섹션을 볼 수 있지만 슬래시가 없으면 이 디렉토리의 내용 이 대상으로 복사되는 것이 아니라이 디렉토리 가 대상 으로 복사됩니다. 이것이 디렉토리가 아닌 파일 인 경우에도 동일합니다./srv/offbk2/
-대상 디렉토리. 일반적으로이 옵션은 옵션을 사용하여 명령의 다른 곳에 지정하지 않는 한 항상 rsync 명령 섹션에 나열된 마지막 항목입니다.>
-이는 왼쪽에있는 파일에서 stdout (표준 출력)을 오른쪽에있는 파일로 리디렉션하여 내용이되고 파일이없는 경우 파일을 작성합니다 (가능한 경우). 몇 가지 참고 사항 :2>&1
. 순서는 중요하므로 어디에 두어야하는지 일반화해야합니다. 매직 넘버 1
는 stdout, 2
stderr, &
(본질적으로) "주소", 전체 명령 스 니펫은 "stderr의 출력을 stdout 스트림으로 리디렉션"을 의미합니다. >>
. stderr을 동일한 위치로 리디렉션하는 방법은 동일하게 유지됩니다. 1> stdout_file 2> stderr_file
. 교체 대신 추가하여 해당 명령 >>
대신 대신 사용할 수도 있습니다 >
.~
-이것은 현재 사용자의 홈 디렉토리의 약자이며 다음 비트의 일부를 구성합니다.~/offbkp01.log
-현재 사용자의 홈 디렉토리에있는 파일 offbkp01.log. 로 리디렉션으로 인해 rsync 명령의 출력이 배치되는 위치입니다 >
.요약하면이 명령은 다음과 같습니다.
/srv/bkp01
, /srv/offbk2/bkp01
, 그것은 것 아무것도 삭제 /srv/offbk2/
하는이 아닌/srv/bkp01
다음과 같은 조건 :
/srv/offbk2/
그 최신 버전 인 에 수정 시간 이상 /srv/bkp01
, 이 업데이트되지 않습니다 , 경우 두 항목이 여전히 동일한 유형 ((일반 파일, 디렉토리 또는 심볼릭 링크? )). 또한 rsync는 셸이 파일에 쓸 작업 (특히 전송중인 파일 및 최종 요약 ) 에 대한 정보 를 인쇄 합니다 . 해당 로그 파일은 아직 존재하지 않으면 새로 작성되며 이미 존재하는 경우 겹쳐 씁니다. ~/offbkp01.log
NB : --fake-super
rsync가 수퍼 유저 활동을 시뮬레이션하도록하는 옵션입니다. 파일의 확장 된 속성을 사용하여 더 큰 권한 없이는 설정할 수없는 속성을 저장하여이를 수행합니다. 각 속성의 실제 버전은 옵션과 사용 가능한 권한이 주어지면 의미가 있습니다. 이렇게하면 수퍼 유저 권한이없는 경우에도 일부 백업을 수행하는 것이 편리하지만 실제 보안 속성이 설정되지 않을 수 있기 때문에 일반적으로 rsync를 사용하는 것보다 보안 위험이 더 클 수 있습니다. 그들에 관한 정보가 백업 되었음에도 불구하고
출처 : rsync로 작업하고 맨 페이지를 읽는 데 많은 시간이 걸립니다 .
매뉴얼에서 :
--지우다
이것은 rsync에게 수신 측 (송신 측에없는 파일)에서 외부 파일을 삭제하되 동기화되는 디렉토리에 대해서만 삭제하도록 지시합니다. 와일드 카드가 쉘에 의해 확장되고 rsync가 요청을 가져 오기 때문에 디렉토리의 내용에 와일드 카드를 사용하지 않고 전체 디렉토리 (예 : "dir"또는 "dir /")를 보내려면 rsync에 요청해야합니다. 파일의 상위 디렉토리가 아닌 개별 파일을 전송합니다. 전송에서 제외 된 파일도 --delete-excluded 옵션을 사용하거나 전송 측에서만 일치하는 것으로 규칙을 표시하지 않는 한 삭제되지 않습니다 (필터 규칙 섹션의 포함 / 제외 수정 자 참조).
따라서 와일드 카드를 사용하지 않은 경우 원래 디렉토리의 일부가 아닌 대상에서 파일을 삭제합니다.
소스 디렉토리 :
1.txt
2.txt
3.txt
대상 디렉토리 :
4.txt
rsync 다음에 4.txt가 사라지고 대상에 1.txt, 2.txt 및 3.txt가 있습니다.
다른 것들에 관해서 :
uva
아니요, bkp01
디렉토리 에서 외부 파일 만 삭제합니다 .
또한:
-u
, --update
-수신자에서 최신 파일을 건너 뜁니다.-v
, --verbose
-자세한 정보 표시-a
, --archive
-보관 모드; -rlptgoD와 같음 (아니오 -H, -A, -X)rsync -uva --delete /srv/bkp01 /srv/offbk2/
명령 의 출력은 리디렉션 연산자 ( ) 를 ~/offbkp01.log
사용하여 파일 로 전송되어 터미널에 인쇄됩니다. 파일이 존재하지 않으면 파일이 생성됩니다. 파일이 존재하면 이전 내용이 지워집니다.>
자세한 내용 man rsync
은 참조하십시오 .
bkp01
. 대상에서 외부 파일, 즉 소스에 존재하지 않는 파일을 삭제합니다.