백업 파일 제외 및 캐시 및 httpdocs 하위 디렉터리만 포함을 위한 Tar 백업 명령

백업 파일 제외 및 캐시 및 httpdocs 하위 디렉터리만 포함을 위한 Tar 백업 명령

다음 요구 사항을 충족하는 tar 명령을 찾고 있습니다.

다음으로 끝나는 모든 파일을 제외하고 싶습니다: backwpup & .zip(사이와 그 앞에는 임의의 예: uploads/123backwpup-123.zip이 가능함) /media/backup/ & /application/cache/ 영역의 모든 폴더를 제외하고 싶습니다.

나는 다음과 같은 수준에서 시작합니다.

  • example.com
  • example.de
  • example.org

각각에 대한 하위 디렉터리:

  1. /등/
  2. /httpdocs/
  3. /lib/
  4. ...

/httpdocs/의 내용만 저장하면 됩니다.

나는 명령으로 그것을 시도했다 :

tar --exclude={"*backwpup*.zip", "*/media/backup/*", "*/application/cache/*"} -czvf backup.tar.gz **/httpdocs

하지만 불행하게도 경로가 있는 백업wp-content/uploads/backwpup-4578-backups/2022-10-31_12-22-31_IKXUCSLD01.zip여전히 포함되어 있습니다.

답변1

다음 tar 명령을 사용해 볼 수 있습니다.

tar --exclude='backwpup.zip' --exclude='/media/backup/' --exclude='/application/cache/' -czvf backup.tar.gz example.com/httpdocs example.de/httpdocs example.org/httpdocs

이 명령은 "backwpup" 또는 ".zip"으로 끝나는 모든 파일과 지정된 위치에 있는 폴더를 제외합니다. 또한 각 도메인 디렉터리의 "httpdocs" 하위 디렉터리만 포함됩니다.

답변2

아마 이쪽으로?

find * -type d \( -path '*/media/backup/*' -o -path '*/application/cache/*' \) -prune -o -path '*/httpdocs/*' -type f ! -name '*backwpup*.zip' -print0 | tar -czvf backup.tar.gz --null -T -

답변3

GNU tar를 사용한다고 가정하고 파일을 제외하는 방법에 대한 설명서를 참조하세요.https://www.gnu.org/software/tar/manual/html_node/exclude.html 패턴 일치에 대해 자세히 설명합니다.https://man7.org/linux/man-pages/man7/glob.7.html

GNU BASH를 사용한다고 가정하면 for 루프를 사용하여 디렉터리를 반복할 수 있습니다.https://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.html파일 이름 확장 사용(https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html)

이 페이지 끝에는 좋은 예가 나와 있습니다. https://linuxize.com/post/bash-for-loop/

관련 정보