TAR 오류 — `wp-content: 파일을 읽는 동안 변경됨`

TAR 오류 — `wp-content: 파일을 읽는 동안 변경됨`

배경

Wordpress 홈 폴더를 백업하는 데 사용하는 bash 별칭이 있습니다. 명령은 다음에서 실행됩니다./home/waiheke26/sites/www.DOMAIN.co.nz/public

명령은 다음과 같습니다:

tar --exclude='./wp-content/uploads' \
    --exclude='./wp-content/cache' \
    --exclude ='./cache' \
    --exclude='./wp-content/backups' \
    --exclude='./wp-snapshots' \
    --exclude='./wp-content/envato-backups' \
    -zcf \
    /home/waiheke26/sites/www.DOMAIN.co.nz/backups/wp-files-$(date +%Y-%m-%d-%H.%M.%S).tar.gz \
    . \ 
    && echo "File backup OK" || echo "File backup failed"';

문제

최근에 명령을 실행하면 오류가 발생합니다.

tar: ./wp-content: file changed as we read it
File backup failed

이 오류와 관련하여 온라인에서 본 대부분의 내용은 file changed as we read it사용자가 보관 중인 디렉터리 내에 tar 파일을 생성하기 때문이라는 것을 암시합니다. 제 경우에는 tar 파일이 다른 곳에서 생성되기 때문에 적용되지 않습니다.

질문

이 오류의 원인을 어떻게 확인할 수 있습니까?

답변1

따라서 귀하의 환경에 명시된 민감도 때문에 tar가 잠시 동안 작업하는 동안 wp-content를 변경하는 내용을 파헤치는 것을 회피합니다. 추측상으로는 lsof작업 중에 시청하는 데 방해가 될 수 있습니다.

환경에 공간을 확보할 수 있는 경우 다음과 같은 방법을 사용하여 공개의 "오프라인" 복사본을 최신 상태로 유지할 수 있습니다.

rsync -va /home/asdf/public/ /home/asdf/backups/public/ --delete

diff만 복사하므로 초기 복사 후 빠르게 실행됩니다. --exclude어쨌든 아카이브에서 제외할 파일 복사 작업을 저장하기 위해 여기에 옵션을 추가하는 것을 고려할 수 있습니다 .

그런 다음 이전과 같이 tar 아카이브를 만들고 백업/공개를 소스로 만듭니다.

tar --exclude='./whatever' \
    -zcf \
    /home/asdf/backups/wp-files-$(date +%Y-%m-%d-%H.%M.%S).tar.gz \
    /home/asdf/backups/public \ 
    && echo "File backup OK" || echo "File backup failed"';

이는 tar다른 사람들이 제안한 것처럼 실행되는 동안 아무것도 변경되지 않는 환경을 효과적으로 제공합니다.

관련 정보