2017-04-04 31 views
0

많은 로그 파일이있는 디렉토리 구조가 있습니다.파이썬을 사용하여 특정 디렉토리 구조로 tar 파일을 만드는 방법

예 :

내가 파일을 2 개월 이상입니다 로그인 상태와 로그 파일의 몇 보관할
root/feature1/pre/a.log<br> 
root/feature1/pre/b.log<br> 
root/feature1/post/c.log<br> 
root/feature1/post/d.og<br> 
root/feature2/pre/e.log<br> 
root/feature2/pre/f.log<br> 
root/feature2/post/g.log<br> 
root/feature2/post/h.log 

. 주어진 조건으로 로그 파일을 보관할 수 있지만 tar 파일 내에 디렉토리를 유지 관리 할 수 ​​없습니다.

내가 필요
루트/archive.tar.gz

archive.tar.gz 여기

feature1/pre/a.log 
feature1/post/d.log 
feature2/pre/e.log 
feature2/post/g.log 
feature2/post/h.log 

을 포함하는 경우, a.log, d.log, e.log, g .log, h.log 파일은 2 개월 이상 된 파일입니다.

답변

0

이것은 파이썬보다 Linux의 문제입니다. 명령에 파일 이름 및 파일 시간 옵션을 사용하는 것이 좋습니다. 당신이 사용하고있는 타르 명령에

tar -czf archive `find /root -name feature*.log -ctime +60` 

테스트 같은 것을 그 이름 전달이 명령 줄에; 원하는대로 작동하면 Python의 os 패키지를 사용하여 Python 스크립트에서 실행하십시오.

움직일 수 있습니까?

+0

나는 당신을 더 잘 설명해야한다고 생각합니다. 각 아카이브에 일주일의 로그가 포함되도록 여러 아카이브를 만들고 싶습니다. 네가 설명해 준 논리 때문에 나에게 하나의 아카이브가 생겼다. 파이썬에서 모든 폴더를 읽고 매주 보관하는 코드를 작성하려고합니다. 내가 직면하고있는 문제는 각 아카이브 안에 디렉토리 구조를 유지할 수 없다는 것입니다. –

+0

아직도 이해가 안되네요. 그렇다면 별도의 아카이브를 보관하는 것은 타임 스탬프를 아카이브 이름에 연결하는 문제입니다. 타르 공은 여전히 ​​각 아카이브 파일의 전체 경로를 포함한다는 점에서 디렉토리 구조를 포함합니다. – Prune