2013-01-02 2 views
0

자동 백업 시스템을 만들고 있습니다. 나는 일주일에 한 번 자동으로 백업을 만들고 안전한 전자 메일로 전자 메일을 보내는 Cron Job을 실행할 계획입니다. (이 방법으로 서버가 백만 개의 조각으로 폭발하더라도 파일의 최신 백업을 갖게됩니다. 그것은 내가 필요로하는 무엇을 거의 완벽하게 작동 system('tar -cvzpf backup.tar.gz /path/to/folder');폴더 자동 압축

: 모든 관리자는

나는이 간단한 방법을 발견)에 액세스 할 수 있습니다. 유일한 문제는 내가 백업에 포함하고 싶지 않은 디렉토리가 있다는 것입니다. 이 웹 사이트에서 사용자는 자신의 아바타를 업로드하고 이미지가 보관되는 디렉토리는 백업 할 디렉토리 내에 있습니다. 이메일을 통해이를 전송하기 때문에 폴더를 비교적 작게 유지해야하며 수천 개의 이미지가 합쳐집니다. 이 디렉토리를 무시하고 다른 모든 것을 압축하도록 함수에 지시 할 수있는 방법이 있습니까?

답변

1

:

tar --exclude='/path/to/folder/bad' 

그래서 당신이 얻을 것이다 : 당신은 당신의 코드가 실행되는보고되지 않기 때문에 당신은 밖으로 (상세)는 V를 남길 수 있습니다

system('tar -czpf --exclude='/path/to/folder/bad' backup.tar.gz /path/to/folder'); 

.

+0

완벽합니다. 고마워요! – SLEDGE

2

find /path/to/folder -not -ipath '*baddirectory*' -print | xargs tar -cvzpf backup.tar.gz 위의 명령에서 찾을 수있는 모든 바이너리 (예 : find, xargs 및 tar)에 대한 전체 경로를 PHP로 전달할 수 있습니다.

+0

아직 내가 말하지 않는 폴더가 포함되어 있습니다. 지금 테스트중인 정확한 코드는 다음과 같습니다.'system ("find compress/compress -not -ipath 'donot'-print | xargs tar -cvzpf compression/TESTING.tar.gz");' 뭔가 잘못? – SLEDGE

+0

'donot'은 압축/압축 내부의 폴더입니다. – SLEDGE

+0

Nevermind. 존스가 내 문제를 해결했다. 감사! – SLEDGE

0

수동으로 --exclude-tag-all PATTERN long 옵션에 포함 된 것을 제외 할 수 있습니다. 불행히도 나는 패턴에 대한 좋은 모범을 발견하지 못했습니다.

나는 추측 작동 제외 다음

--exclude-tag-all=/path/foldernotinclude/. 

는 "디렉토리"파일 태그와 일치해야하기 때문에.

운 좋게도 다른 사용자가 사용하려는 patern에 대해 의견을 말합니다. 타르 남자에서