通常、サイズは約1 TB(その中にサブフォルダを含む)のフォルダを処理する必要があり、保存容量の制限のために割り当てられた容量を維持するためにフォルダを頻繁に削除する必要があります。
私は通常30〜40のフォルダを持ち、各フォルダには最大13のサブフォルダが含まれています。
フォルダサイズをすばやく知る方法はありますか?
du -s .
上位フォルダでやってみましたが…あまり速くないですね。
助けてくれてありがとう!
答え1
ディレクトリのサイズは通常、1 日間安定しており、1 日の特定の時点でサイズ情報をすばやく取得することが重要であるため、最良の方法は次のとおりです。自動化ミッションは、事前に情報を収集することです。ユーザーに必要な読み取り権限がある場合は、crontab -e
毎晩午前2時30分に実行するように次の行をcrontab()に入力します。
30 2 * * * ( date ; du --summarize path1 path2 ; date ) >> $HOME/du_out.txt
結果についてより自信があれば、それをスクリプトに拡張し、他の管理者がそれを維持できるようにシステム全体のcron容量で実行し、作成日またはアクセス日に関する情報を追加できます。自動的に削除空き容量が少なすぎる場合は、最も古くて最大のファイルを使用してください(おそらく、より長く保存する必要がある重要なディレクトリを別の場所に「昇格させる」ようにするメカニズムがすでに存在する可能性があります)。
もちろん、すでにjenkinsのような本格的なビルドシステムを持っている場合は、cronについて私が言ったことをすべて忘れて、そこで作業として作成してください。
答え2
次のコマンドを使用して、どの親フォルダがほとんどのスペースを占有しているかを確認できます。
for i in parentfolder1 parentfolder2 parentfolder3
do
find $i -printf "%s %p\n"|awk 'BEGIN{sum=0}{sum=sum+$1}END{print sum}';echo $i; done| sed "N;s/\n/ /g"| sort -k1 -nr| sed -n '1p'