![rsync와 함께 재시도 명령 사용](https://linux55.com/image/222554/rsync%EC%99%80%20%ED%95%A8%EA%BB%98%20%EC%9E%AC%EC%8B%9C%EB%8F%84%20%EB%AA%85%EB%A0%B9%20%EC%82%AC%EC%9A%A9.png)
retry
과(와) 페어링하는 동안 명령 문제가 발생했습니다 rsync
. retry
는데비안 패키지그리고 "기준이 충족될 때까지 일반적으로 성공적으로 명령을 반복할 수 있습니다"라고 명시합니다. rsync
가끔 실패하는 연결에서 사용하려고 합니다 . 하지만 항상 같은 오류가 발생합니다 giving up: No such file or directory
. ::
retry '/usr/bin/rsync -av source destination'
retry: Could not execute 'rsync -av source destination', giving up: No such file or directory
source
둘 다 destination
존재합니다. 절대 경로, 작은따옴표 및 큰따옴표, 경로 주변의 따옴표, 경로를 변수로 사용해 보았지만 그 중 아무 것도 작동하지 않습니다. 다음 방법을 사용할 수 있습니다이 솔루션하지만 디렉터리를 여러 개 만들면 더 번거롭습니다. 내가 놓친 것이 있나요?
답변1
문제는 이름이 지정된 파일(사이에 공백 포함)을 retry
실행하려고 하는 것 입니다.'/usr/bin/rsync -av source destination'
retry
이것이 rsync
명령이고 -av
, source
, 및 destination
가 해당 명령에 속하는 매개변수인지 확인하려면 rsync
다음과 같이 실행해야 합니다.
retry -- /usr/bin/rsync -av source destination
왜 필요한가요?--
(이중 대시)명령 옵션의 끝과 위치 매개변수의 시작을 나타냅니다. --
명령이 앞에 오지 않으면 명령 옵션 중 하나로 retry
간주되어 다음 오류가 발생합니다.-av
retry: invalid option -- 'a'
답변2
여기서 두세 가지 문제를 볼 수 있습니다. (링크를 주셔서 감사합니다 retry
. 아직 본 적이 없습니다.)
대상 명령은 명령과 각 인수 사이에 공백을 두고 "평소대로" 구문 분석됩니다. 전체 명령을 인용한다는 것은
retry
인수 없이 명령으로 실행을 시도한다는 의미입니다.retry 'rsync -av src dst' retry: Could not execute 'rsync -av src dst', giving up: No such file or directory
여기서 해결 방법은 전체 명령과 해당 인수를 인용하지 않는 것입니다.
따옴표를 제거하면 여전히 오류가 발생하지만 이번에는 `rsync::에 사용되는 매개변수를
retry
처리하려고 시도하는 중입니다.-av
retry rsync -av src dst retry: invalid option -- 'a' …
--
여기서 해결 방법은 특정 섹션 뒤에 이중 대시( )를 사용하여retry
더 많은 인수를 처리하려는 시도를 중지하는 것입니다.retry -- rsync -av src dst
src
이 명령을 완료할 때까지 실행하면 다음과 같은 결과가 나타납니다dst
.ls dst src
dst
then 의 내용을 보려면src
뒤에 슬래시를 추가하세요src/
.retry -- rsync -av src/ dst