rsync 경고 억제 : 일부 파일은 전송되기 전에 사라짐 다음과 같은 많은 경고가 표시됩니다. file has

실행중인 Postfix 및 Courier 서버 파일을 백업 할 때 다음과 같은 많은 경고가 표시됩니다.

file has vanished: /var/kunden/mail/username/name@mymail.de/tmp/courier.lock

rsyncCron에서 실행할 때 이러한 경고를 어떻게 억제 /usr/bin/rsnapshot hourly합니까?

어떻게 든 그 먼지를 제외시킬 수 있습니까?

/var/kunden/mail/*/*/tmp/

tmp폴더 예를 들어, 깊은뿐만 아니라 수 있습니다 :

file has vanished: /var/kunden/mail/username/name@mymail.de/.Presse/tmp/1353871473.M716135P32214_imapuid_36.test.de
file has vanished: /var/kunden/mail/username/name@mymail.de/.Presse/tmp/courier.lock



답변

rsync의 제외 스위치 ( --exclude)를 사용할 수 있습니다 .

$ rsync -avz --exclude '**/tmp/' source/ destination/

이 방법으로 지정 --exclude '**/tmp/'하면 문자열을 포함하는 모든 경로가 무시됩니다 /tmp/. 이 인수에 패턴을 제공 할 수도 있습니다.

$ rsync -avz --exclude '/path/to/*/tmp/' source/ destination/

다음 형식의 경로를 제외합니다 /path/to/*/tmp/..


답변

불행히도 SWdream 솔루션에서 설명한 것과 달리 --ignore-missing-args사라진 파일에는 영향을 미치지 않습니다. 존재하지 않는 소스 인수를 무시합니다.

참조 man rsync:

  --ignore-missing-args
          When rsync is first processing the explicitly  requested  source
          files  (e.g. command-line arguments or --files-from entries), it
          is normally an error if the file cannot be found.   This  option
          suppresses  that  error,  and does not try to transfer the file.
          This does not affect subsequent vanished-file errors if  a  file
          was initially found to be present and later is no longer there.

사라진 파일을 무시하는 “공식적인”방법은 공식 rsync 소스 저장소에서이 스크립트를 사용하는 것입니다 :
https://git.samba.org/?p=rsync.git;a=blob_plain;f=support/rsync-no- 사라짐; hb = HEAD

@kenorb 및 @ gilles-quenot이 말한 것과 매우 유사합니다.


답변

그 이유는 rsync가 전송할 파일 목록을 작성하는 동안 이러한 파일이 존재하지만 전송하기 전에 제거 된 것입니다.

오류가 아닌 경고 마사지입니다. 그러나 이러한 파일이 삭제 된 이유를 찾아보아야합니다. 중요 할 수 있습니다.

이 경고를 무시하려면 위의 질문과 같이 –exclude 옵션을 사용하거나 -ignore-missing-argsrsync 옵션을 사용 하면 rsync가 사라진 파일을 무시합니다.

--ignore-missing-args ignore missing source args without error

아마 도움이 될 수 있습니다.


답변

오류는 rsync전송할 목록을 작성하는 동안 기존 파일을 더 이상 찾을 수 없음을 의미합니다 . 이러한 사라진 파일 오류는 파일이 처음에 발견되어 나중에 더 이상 존재하지 않을 때 발생합니다. 어떤 경우에는 소스 파일이 손상되었거나 이름에 유효하지 않은 문자가있는 경우에도 발생합니다 ( fsck권장).

기본적으로 이것은 오류가 아니라 경고이므로 각 대상 파일의 상태는 실행 중에 해당 소스 파일의 상태를 반영하므로 걱정할 필요가 없습니다.

종료 값으로 인해 문제점이 발생하는 경우 0이 아닌 경우 다음 랩퍼 스크립트 ( source ) 로 해결할 수 있습니다 .

#!/bin/bash
(rsync "$@"; if [ $? == 24 ]; then exit 0; else exit $?; fi) 2>&1 | grep -v 'vanished'

또는 다음 해결 방법 스크립트 ( source )를 사용하십시오.

#!/bin/sh
OUT=`/usr/bin/snapback2 2>&1`
RET=$?
if [ "$RET" != "23" -a "$RET" != "0" -a "$RET" != 24 ]; then
    echo "$OUT"
    exit $RET
fi

rsync가 실패하면 기본적으로 rsync와 동일한 오류 코드로 존재합니다.

이 더 설명되어 있습니다 : 버그 3653 -은 “사라진 파일”경고에 대한 필요성을 절감


답변

또는 단순히 (현대 ) :

#!/bin/bash

/usr/bin/rsync "$@" 2> >(grep -Ev '(file has |rsync warning: some files )vanished')
ret=$?
((ret==24)) && exit 0 || exit $ret


답변

내 대답은 특별한 유스 케이스 일 수 있지만 주목할 가치가 있다고 생각하여 사람들 이이 사건에 해당하더라도 데이터를 잃지 않습니다.

rsync를 통해 드라이브를 정기적으로 백업하는 동안 여러 파일에 대한 메시지가 나타납니다.

디스크에서 시스템 검사를 수행했는데 드라이브에 문제 (할당 / 파일 손상 등)가 있으며 백업 + 복원 + 재 포맷을 권장했습니다.

따라서 메시지를 표시하지 않거나 무시하기 전에 안전을 위해 드라이브에서 상태 점검을 실행하는 것이 좋습니다.


답변

nosuid,nodev,nofail,x-gvfs-show옵션으로 백업 디스크를 마운트하십시오 .

어떤 시스템을 사용하고 있는지 확실하지 않지만 디스크의 마운트 옵션과 관련이 있다고 생각합니다. Linux에서 마운트 옵션을로 설정하면 이런 일이 발생합니다 User Session Default. 비활성화하면 rsync가 오류없이 완료됩니다.

여기에 이미지 설명을 입력하십시오