태그 보관물: tar

tar

tar : 이전 오류로 인해 실패 상태로 종료 .tar.gz 파일이 생성되므로 스크립트가 성공적으로

디렉토리 + 파일 목록을 압축하고 압축하는 작은 스크립트를 작성했습니다.

스크립트가 실행 된 후 사용 가능한 .tar.gz 파일이 생성되므로 스크립트가 성공적으로 실행되는 것 같습니다.

그러나 스크립트가 끝나면이 성가신 메시지가 나타납니다.

tar : 이전 오류로 인해 실패 상태로 종료

스크립트가 작동하는 동안 오류 메시지가 표시되지 않으며 앞서 말한 것처럼 생성 된 파일은 경고 / 오류없이 압축 해제 될 수 있습니다. 백업의 일부로 이것을 사용하고 있기 때문에 심각한 것을 무시하지 않기를 원합니다.

이 오류 / 경고 메시지가 생성되는 가능한 이유는 무엇이며 안전하게 무시할 수 있습니까? 무시할 수 없으면 오류를 진단하고 해결하는 단계는 무엇입니까?

우분투 10.0.4에서 실행 중입니다.



답변

어떤 이유로 든 tar가 지정된 파일을 모두 tar에 추가 할 수없는 경우 해당 메시지가 표시됩니다. 가장 일반적인 파일 중 하나에 대한 읽기 권한이없는 경우입니다. 백업용으로 사용하기 때문에 큰 문제가 될 수 있습니다. -v플래그를 사용하는 경우 플래그를 그대로 두십시오. 그러면 출력이 줄어들고 무슨 일이 일어나고 있는지 알 수 있습니다.


답변

문제는 인수이며,
f인수는 파일 이름으로 다음을 취하므로 인수의 마지막이어야합니다.

tar cvzf output.tgz folder

또는

tar -cvzf output.tgz folder

동일하며 오류가 없습니다.


답변

로그 파일과 같이 백업 중에 변경 될 수있는 파일을 백업하는 경우 tar 옵션 ‘–ignore-failed-read’가 유용 할 수 있습니다 (Debian Linux에서는 gnu tar가 아닌지 확실하지 않음).

표준 출력 및 오류는 다음과 같은 두 가지 파일로 리디렉션 될 수 있습니다.

LOGDIR='/var/log/mylogdir' 
LOG=${LOGDIR}/backup.log 
ERRLOG=${LOGDIR}/backup.error.log 
DATE=$(date +%Y-%m-%d)
HOSTNAME=$(hostname)
DATA_DIRS='/etc /home /root'

tar --ignore-failed-read -f ${BACKUP_DIR}/${HOSTNAME}-${DATE}.tgz -cvz ${DATA_DIRS} > $LOG 2> $ERRLOG

나는 이것이 일반적으로 안전하다는 것을 알지만 tar가 멈추지 않기 때문에 조심하십시오 …


답변

나는 같은 문제가 있었고 위의 답변 중 어느 것도 나를 위해 일하지 않았다. 그러나 다음 명령을 실행하면 효과가 있음을 알았습니다.

tar -cpzf /backups/fullbackup.tar.gz --exclude=backups --exclude=proc --exclude=tmp --exclude=mnt --exclude=sys --exclude=dev --exclude=run /

tar: Exiting with failure status due to previous errors-v 옵션을 해제하여 참조 된 오류를 식별 할 수 있습니다. 검토 결과 오류는 /runand와 같은 디렉토리에서 발생했습니다 /sys.

이 디렉토리를 제외하면 정상적으로 작동합니다. 이것이 비슷한 문제를 가진 사람에게 도움이되기를 바랍니다.


답변

나는 같은 문제가 있었다. 내가 한 모든 명령에서 대시 ( “-“)를 제거하는 것입니다.

다음과 같이 입력하는 대신

tar -cvfz output.tar.gz 폴더 /

다음과 같이 입력하십시오

tar cvfz output.tar.gz 폴더 /

대시가 내 경우에 문제를 일으키는 이유를 알지 못했지만 적어도 효과가있었습니다.


답변

이전 답변을 오해했습니다. 문제는가 아닙니다 . 인수 목록에서 -가있는 곳 f입니다.

tar cvfz target.tgz <files>

뒤에 나오는 텍스트 인 “z”라는 아카이브를 작성하려고합니다 f. tar는 “z”아카이브에 추가 할 “target.gz”를 찾을 수 없기 때문에 오류 메시지가 표시됩니다.

tar cvzf target.tgz <files>

target.tgz를 올바르게 작성하고 파일을 추가합니다. target.tgz가 f인수 다음의 첫 번째 텍스트이기 때문 입니다.


답변

일반적으로 해당 메시지를 무시할 수 있습니다. tar 작성 중에 기본 디렉토리 트리에 파일 삭제 / 작성 / 수정과 같은 변경 사항이 있으면 해당 메시지가 표시됩니다. 또한 장치 노드, fifo 등과 같은 특수 파일이 있으면 경고가 발생합니다.

범인 파일이 보이지 않습니까? 함께 시도tar cvfz yourtarball.tgz /your/path