ふむ〜 ものすごい久しぶりに記事を書いてみたり^^;
(危なく一年ぶりとかになるところだtt)
さて、LinuxPCでFedorCore6を入れて遊んでいたいのですが・・・・
apache 2.2.4とかで使えるキャッシュ機能をONにして
CacheEnable disk /
CacheRoot “/var/cache/mod_disk_cache”
CacheDirLevels 5
CacheDirLength 3
とかやって「ずーっと」放置してたんです、ハイ。
で、ある日ふと・・ディスク使用量を見てみると・・・
??
20G!?
え〜っと・・・ どいうことでしょ?
と 調べると・・・
mod_disk_cacheで、ひたすらに ただひたすらに キャッシュがたまっていたという落ちが・・・orz
慌ててファイル削除をしてみたものの・・・
>rm -Rf /var/cache/mod_disk_cache
>引数リストが長すぎます
・・・・
さらに調べてみると、rmコマンドが一度リストを作ってから実行する処理のため、あまりのファイル数にどうやらOSの制限に引っかかってしまい
「そんなに一気に処理できんわ!」
と起こられている模様・・・
対策として調べてみると
パイプ処理で渡してやると巧く抜けられる様子
そこで、
ファイルの削除を
find /var/cache/mod_disk_cache -type f -print0 |xargs -0 rm -f
ディレクトリの削除を
find /var/cache/mod_disk_cache -type d -print0 |xargs -0 rmdir
としてみました。
ディレクトリの削除の方でで rm -rf とできればいいんですが・・同じ目にあってしまいます。
これにはさらに面倒な点がありまして。
ディレクトリの削除に関しては、一番奥の階層から削除されていくので階層分繰り返す必要がアリマス。
とりあえずは、これで削除できたらかヨシ・・・っと。
大量・複階層のディレクトリの削除方法でもっと良いものがあれば、どなたかご教授くださいマセ。
-depth オプションを付けて
find /var/cache/mod_disk_cache -type d -depth -print0 |xargs -0 rmdir
ではいかがでしょうか?