ディスクにデータを100MBチャンクで書き込み、ファイル名に+1を付けてインクリメントするアプリケーションのため、n1, n2 ... n1000
です。これにより、最終的にパーティション上の空き領域(Linuxホスト)がすべて使用されます。私は、ドライブスペースが特定の利用率に達するまで、シリーズで最初に書き込まれたファイルを削除する方法を探しています。フルディスクで最も古いファイルを削除する
後者の場合、https://stackoverflow.com/a/5912404/666891は良い解決策になりますか?
以下の解決策が提案され、https://stackoverflow.com/a/837840/666891ごとに実行可能な解決策に見えます。これは、現在のところ、スクリプトが実行されたときにインクリメンタルなファイル拡張子を処理するために変更することができます。ファイル名filename *、アスタリスクはインクリメントする番号、最も古いものから開始しますか?
import os
def free_space_up_to(free_bytes_required="161061273600", rootfolder="/data/", ex
tension="filename-*"):
file_list= files_to_delete(rootfolder, extension)
while file_list:
statv= os.statvfs(rootfolder)
if statv.f_bfree*statv.f_bsize >= free_bytes_required:
break
os.remove(file_list.pop())
私はあなたがリンクされbashスクリプトは良い解決策であると考えています。 – vascop
リンク先のスクリプトは、最も番号の小さいファイルではなくディレクトリ全体を削除するように表示されます。 –
心配するファイル名は1つだけですか?例えば 'n'や他のプレフィックスも考慮する必要がありますか? –