쉘 스크립트를 사용하여 rsync가 변경했는지 확인


10

rsync의 두 디렉토리에 bash 스크립트가 있습니다. 때때로 변화가 있고, 가능성은 아무것도 없습니다.

rsync가 실제로 변경 (파일 추가 / 업데이트) 한 경우에만 명령을 실행하고 싶습니다. 그렇지 않으면 그냥 건너 뛰고 싶습니다. 보고 싶은 반품 응답이 있습니까?

답변:


11

-i 옵션을 사용하고 -v 옵션을 사용하지 않으면 rsync는 변경된 내용에 대해서만 STDOUT에 행만 인쇄합니다. 스크립트에 따라 다음과 같이 보일 수 있습니다.

if [ -n "$(rsync -i /dir1 /dir2)" ]; then
  run_command;
fi

그것은 내가 원하는 것을 정확하게하는 것 같습니다 ... 고마워. -i 플래그를 그렇게 생각하지 않았습니다.
raccettura

명확히하기 위해 변경 사항이있는 경우 에만 스크립트를 실행하려면 ==이어야합니다 !=.
hamx0r

물론이 코드는 내가 본 것에서 잘못되었습니다. 그 코드에 관해서는 Rsync가 FINE을 실행했거나 오류가 발생했지만이 코드는 변경 사항이 있는지 확인하지 않습니다. 다른 버전의 Rsync가 그럴 수 있는지는 모르겠지만 Raspbmc (구식 구현)와 OSMC에서 RSYNC를 사용하고 있습니다. RSYNC가 훌륭한 도구 인 것 같습니다.

2
-i플래그를 사용하면 변경 사항이 없으면 rsync 버전이 3.1.1출력 sending incremental file list됩니다.
Dor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.