rsync와 함께 재시도 명령 사용

rsync와 함께 재시도 명령 사용

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. 아직 본 적이 없습니다.)

  1. 대상 명령은 명령과 각 인수 사이에 공백을 두고 "평소대로" 구문 분석됩니다. 전체 명령을 인용한다는 것은 retry인수 없이 명령으로 실행을 시도한다는 의미입니다.

    retry 'rsync -av src dst'
    retry: Could not execute 'rsync -av src dst', giving up: No such file or directory
    

    여기서 해결 방법은 전체 명령과 해당 인수를 인용하지 않는 것입니다.

  2. 따옴표를 제거하면 여전히 오류가 발생하지만 이번에는 `rsync::에 사용되는 매개변수를 retry처리하려고 시도하는 중입니다.-av

    retry rsync -av src dst
    retry: invalid option -- 'a'
    

    --여기서 해결 방법은 특정 섹션 뒤에 이중 대시( )를 사용하여 retry더 많은 인수를 처리하려는 시도를 중지하는 것입니다.

    retry -- rsync -av src dst
    
  3. src이 명령을 완료할 때까지 실행하면 다음과 같은 결과가 나타납니다 dst.

    ls dst
    src
    

    dstthen 의 내용을 보려면 src뒤에 슬래시를 추가하세요 src/.

    retry -- rsync -av src/ dst
    

관련 정보