2015-01-12 1 views
4

나는 답을 찾을 수없는 질문이 있습니다.특정 루트 폴더를 제외한 Linux의 전체 tar 백업

타르를 사용하여 전체 시스템 백업을 수행하기 위해 쉘 스크립트를 작성하려고합니다. 분명히 백업하지 않으려는 폴더가 여러 개 있습니다 (/ dev,/mnt,/proc,/tmp 등). 꽤 많은 수의 폴더가 백업되고 있으므로 'exclude-from'플래그를 사용하여 명령을 상대적으로 깨끗하게 유지합니다.

문제는 작동하지 않는다는 것입니다.

다음
--create 
--file $BACKUP_FILE 
--preserve-permissions 
--same-owner 
--numeric-owner 
--listed-incremental $INCREMENTAL_FILE 
--level=0 
--xz 
--directory/
--exclude-caches 
--exclude-from $EXCLUDE_FILE 
-v 

내 제외 파일 : 여기에

내가 사용하고 타르 플래그입니다

/dev 
/lost+found 
/media 
/mnt 
/proc 
/run 
/sys 
/tmp 
/var/spool 
/var/run 
/var/tmp 

나는 아직도 내가 원하지 않는 폴더를 백업 내 스크립트를 실행하는 경우 백업. 많은 '--exclude'플래그로 바꾸는 것은 효과가없는 것처럼 보입니다 (그리고 나는 그것을 사용하지 않을 것입니다). 나는 'expllude-from $ EXCLUDE_FILE '을 'expllude-from = $ EXCLUDE-FILE'로 바꾸려고 노력했다. 각 행 다음에 공백이 없는지 확인했다. , 일들이 함께 흐려지기 시작했습니다).

나는 타르 무늬를 읽었으므로 내가 놓친 것이 있는지 아직 알지 못했다. 나는 이것이 보안 목적을 위해 선도 슬래시를 제거하는 tar와 관련이 있는지 알아보기 위해 노력했지만 아직 아무것도 발견하지 못했습니다.

Google 검색에서 유일하게 도움을 얻은 것은 같은 일을 한 사람이었고 제외 파일 항목에서 '/'를 제거하여 해결했습니다. 나는 그것을 시도하고 그것을 작동하지만 루트가 아닌 모든 폴더를 제외합니다. 내 가정에 'media'폴더가있을 것이므로이 파일은/media 폴더가 아니기 때문에 백업하고 싶습니다. 따라서이 파일은 적절한 해결책이 아닙니다.

답변

2

그림을 보면, 게시 한 후 30 분이내 가능한 해결책을 발견했습니다. 제외 파일 항목을 '/'대신 './'로 시작하도록 변경하면 작동하는 것으로 보입니다. 디렉토리를 루트로 변경하기 때문에 이것은 의미가 있습니다. ./media ===/media.

그러나 아직 답변으로 표시하지 않을 것입니다. 나는 대단히 내 제외 파일 항목을 '/'대신 './'로 유지하여 루트 폴더를 제외시키는 것이 확실합니다. 예. 현재 디렉토리가 루트 디렉토리임을 나타내는 제외 파일에 주석을 달 수 있습니다. 그러나 가능하면이를 피하는 것이 좋습니다.

+1

아치를 사용하고 있으므로 [이 주제에 대한 ArchWiki 게시물] (https://wiki.archlinux.org/index.php/Backup)을 보았습니까? rsync 섹션에 관심이있을 것입니다. 대부분의 작업을 수행하고 변경된 백업 (변경된 사항 만 지원)을 지원하기 때문입니다. 나는 틀릴 수도 있지만, 타르가 매번 새로운 타르볼을 만들 것이라고 믿는다. –

+0

예. 다양한 이유로 tar를 선택합니다 (증분/차등 백업을 수행 할 수 있음). 나는 또한 내가 읽고있는 것을하고있는 https://wiki.archlinux.org/index.php/Full_System_Backup_with_tar를 읽었다. (절대 경로로 파일 제외). 그러나, 그 사이에 내가 볼 수있는 유일한 차이점은 플래그 뒤에 '='가 나오고, 제외 된 디렉토리에 대한 후행 '/'입니다. (이는 내가 이해하지 못하는 부분이 있기 때문에 원하지 않습니다. 내용이 아니라 폴더를 복사하고 폴더 기간을 복사하고 싶지 않습니다.) 그리고 다른 플래그 순서를 모두 시도했습니다. – MendAndDefend

+0

확인. 나는 너를 돕기에 타르에 대해 충분히 모른다. 이미 아치 포럼에 게시하거나 reddit.com/r/archlinus –

4

ArchWiki에는 full system backup with tar을 수행하는 방법에 대한 지침이 포함되어 있지만 대신 rsync을 사용하려고합니다. ArchWikifull system backup with rsync 수행 방법도 설명합니다. 루트로 실행 옵션의

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder 

-aAX 세트는 '아카이브 모드'사용되도록합니다. 이렇게하면 심볼릭 링크, 장치, 권한 및 소유권, 수정 시간, ACL 및 확장 된 속성이 보존됩니다.

rsync -aAXv --exclude-from=FILE /* /path/to/backup/folder 

당신이 어딘가에 다른 /mnt 또는 /media 이상의 시스템을 백업 계획이라면이하는 것을 잊지 마세요 : rsync를 또한 파일에서 패턴을 제외 읽을 수 있으므로 사용 사례가 같을 수 있음을

주 무한 루프를 피하려면 제외 패턴 목록에 추가하십시오.또한 시스템에 바인드 마운트가있는 경우 바인드 마운트가 한 번만 복사되도록 바인드 마운트가 제외되어야합니다.

+0

에 게시하는 것을 고려해 볼 수 있습니다. 그러나 rsync를 사용하여 tar를 선택하는 방법을 읽었습니다. – MendAndDefend

+0

@anEverydayGuy : 왜 그런지 물어봐도 될까요? – Steve

+0

결국 궁극적으로 그것은 그들이 설계된 것 (그리고 그러므로 둘 다 일을 할 수 있음에도 불구하고)에 가장 적합합니다. Tar는 rsync가 파일 미러링/전송을 위해 설계된 백업/장기 저장 용으로 설계되었습니다. tar에서 전체/차등/증분 백업을 쉽게 수행 할 수 있습니다. rsync가 차등 백업을 수행하는 것이 더 복잡합니다. 게다가 나는 타르가 먼저 일하고 (같은 시간에 시도했다) 타르와 더 많은 경험을했다. – MendAndDefend

관련 문제