Debianstretch로 업그레이드한 후 Tar 제외 목록이 더 이상 작동하지 않습니다.

Debianstretch로 업그레이드한 후 Tar 제외 목록이 더 이상 작동하지 않습니다.

나는 오래 전에 백업 스크립트를 작성했습니다.tar 매뉴얼의 이 부분:

여러 "--exclude" 옵션을 제공할 수 있습니다.

--exclude-from=file

-X file

tar가 file에 나열된 패턴과 일치하는 파일을 무시하도록 합니다.

내 tar 명령은 다음과 같습니다.

includesFile=include.txt
excludesFile=exclude.txt
tar zcpf - . -T ${includesFile} -X ${excludesFile} | openssl des3 -salt | dd of=out.bak

이것은 include.txt:

/etc/
/var/
/usr/
/data/
/opt/
/root

이것은exclude.txt

/data/webapp/webapp-data/*
/var/cache/*
/var/lib/dpkg/*
/usr/bin/*
/usr/share/locale/*

예전에는 잘 작동했어요. 최근에 나는 아카이브의 크기가 눈에 띄게 증가했다는 것을 알았고, verbose로 전환하면 거대한 디렉토리가 tar포함되어 있음을 알 수 있습니다 . webapp-data어떤 이유로 더 이상 제외되지 않습니다.

마지막으로 한 일은 업그레이드였습니다.데비안 제시도착하다데비안 스트레치. 버전 변경이 매우 적기 때문에 이것이 이유인지는 모르겠습니다.

/data/webapp/webapp-data/*변경해 보았지만 /data/webapp/webapp-data/**도움이 되지 않았습니다.

제외 목록이 더 이상 작동하지 않는 이유는 무엇입니까?

답변1



Debian Jessie에서 Stretch로 업그레이드한 후 tar 제외와 동일한 문제가 발생하여 명령줄 인수 순서를 다음에서 변경하여 문제를 해결했습니다 . 내 backup_exclude.txt는 다음과 같습니다
tar cvzpf backup.tar.gz /DirToBackup1 /DirToBackup2 --exclude-from=/path/to/backup_exclude.txt

.
tar cvzpf backup.tar.gz --exclude-from=/path/to/backup_exclude.txt /DirToBackup1 /DirToBackup2

/var/log/* /cache/* /.cache/*

(페이지 끝부분 참조 https://www.gnu.org/software/tar/manual/html_section/tar_49.html)

답변2

(드디어) 문제를 발견하고 해결할 수 있었습니다. 와일드카드로 제공된 항목을 포함하여 여러 항목의 조합입니다 excludes(질문하기 전에는 이 작업을 수행하지 않았습니다... 이제는 더 이상 작동하지 않습니다). 이것은 유효한 명령입니다:

includesFile=include.txt
excludesFile=exclude.txt
tar -zcpf - --absolute-names -X ${excludesFile} -T ${includesFile} | openssl des3 -salt | dd of=out.bak

물론 예외는 다음과 같은 형식으로 제공됩니다.

/var/cache/*
/var/lib/dpkg/*
/usr/bin/*
/usr/share/locale/*
/proc/*
/sys/*

다음을 포함합니다:

/etc/
/var/
/usr/

관련 정보