2017-04-04 14 views
0

多くのログファイルを持つディレクトリ構造があります。Pythonを使って特定のディレクトリ構造を持つtarファイルを実現するには

例:

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 

私は、ファイルが2ヶ月よりも古いログ・条件付きログファイルの数をアーカイブします。指定した条件でログファイルをアーカイブすることはできましたが、tarファイル内にディレクトリを保持できませんでした。

私が必要: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、グラムが含まれてい

archive.tar.gz
ルートを/ .log、h.logファイルは2か月以上経過しています。

答えて

0

これはPythonよりもLinuxの問題です。 コマンドにファイル名とファイル時間オプションがあります。 、あなたが使用しているタールコマンドに

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

テストのようなものを、それらの名前を渡し、このコマンド・ラインで、あなたが望むように動作するときは、Pythonのosパッケージを使用してPythonスクリプトから実行します。

あなたは動いていますか?

+0

私はあなたをよりよく説明していたはずだと思います。私は各アーカイブに1週間のログが含まれるように複数のアーカイブを達成したいと思います。あなたが私に説明した論理は私に単一のアーカイブを与えます。私は、すべてのフォルダを読み取り、毎週アーカイブするコードをPythonで記述しようとしています。私が直面している問題は、各アーカイブ内にディレクトリ構造を保持できないことです。 –

+0

私はまだ理解していない、別のアーカイブを保持することは、タイムスタンプをアーカイブ名に連結することです。タールボールには、各アーカイブファイルのフルパスが含まれるという点で、ディレクトリ構造がまだ含まれています。 – Prune

関連する問題