サーバの容量が大きくなってしまったときの
コマンド(duとfind)の使い方を備忘録も兼ね。
例えばファイルサーバで、利用者は特に残り容量など気に
しないので放っておくと容量は単調増加で増えていきます。
規模にもよりますが、500G~1TBぐらいで必要十分であり
それ以上多くても「臭いものに蓋」で使わないファイルが
増えていくだけです。
500人程度の社員数で利用頻度の多いネット系企業で構築
運用の実績がありますが6~700Gで利用者満足度の高いサー
ビスを提供できました。
ファイルが多いとディレクトリのアクセスも遅くなり、また
負荷もかかるので、容量を増やすよりは、現実的なラインで
調整して減らすのがベターです。
減らす方法としては2つのアプローチがあります。
1. du を使って消してインパクトのあるファイルサイズの
大きい順に検討する。
コマンド例:
$ du /file/to/path |sort -n > /tmp/du.20090520
2. find を使って一定期間アクセスもないファイルを削除
コマンド例:
$ find /file/to/path -type f -daystart -atime +182 -printf "%TD %p\n" > /tmp/atime.182
-print でなく -printf にすることでフォーマット付きprint
になり指定できます。
参考ページ
http://www26.atwiki.jp/ochamemo/pages/17.html#id_aa70448d
http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html
以前ヘルプを求められた時にはこんなこともありました。
ファイルサーバのハードウェア障害が起きた。
ハードディスクが壊れてしまい、ファイル/データにアクセスできなかった。
http://www.linux.or.jp/JF/JFdocs/Ext2fs-Undeletion/sec-modify.html
を参考にdebugfsなどで復旧を試みながらデータを復活。
ただし、私のところに依頼をいただくまで数日経ってしまい、
利用者はもう新しく環境を作り出していたので今更古いデータ
が復旧されても...という状態でした。
一応データを見える箇所に置いておきましたが、その後それらの
データがアクセスされることはなく放置され、ディスク容量を
使ってしまっていた、ということがありました。