そして戻って再びログインすると、ログインメッセージに、
「dfコマンドとduコマンドでディスクの様子が分かりますよ」
と書かれています。
ああ、そうだった、dfとduコマンドを使えばいいんだ。これで何とかディスクを圧迫するふらちなファイルは見つけられそうで、首もつながったようで、ちょっと安心です。
ほっとした律子さんは早速dfコマンドとduコマンドを駆使して、どこに無駄なファイルが置かれているのか探してみることにします。
[ritsuko /]$ df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hdv1 6063688 4703612 861060 85% /
どうやら85%で警告が来るようになっていたようです。まだ、取りあえずはサービスがいきなりストップするということはなさそうです。
ちょっとこの表示だと、具体的な使用量が分かりづらいので、-hオプションを付けて実行してみることにします。
[ritsuko /]$ df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/hdv1 5.8G 4.7G 861M 85% /
確か契約は5Gだったから、ギリギリですね。そりゃ警告も来るはずです。次にduコマンドを使ってファイルがたくさん使われているところを探すことにします。
[ritsuko /]$ du / 16/lost+found 56/etc/profile.d 4/etc/X11/applnk 4/etc/X11/serverconfig 20/etc/X11/starthere 4/etc/X11/sysconfig 8/etc/X11/fs (以下延々とスクロール)
これでは何が何だかちっとも分かりません。そうか、オプションをちゃんと付けないと。
(-sはディレクトリの総容量を表示する、-hは単位を付けて読みやすくするオプションです。また/*/とすることで、サブディレクトリの合計を出力することができます。)
[ritsuko ~]$ su [root /]# du -sh /*/ 5.1M/bin/ 17M/boot/ 4.0K/dev/ 30M/etc/ 90M/home/ 4.0K/initrd/ 481M/lib/ 16K/lost+found/ 4.0K/media/ 4.0K/misc/ 8.0K/mnt/ 12K/opt/ 388K/patch/ du: `/proc/1/fd': 01M/proc/ 1.8M/root/ 14M/sbin/ 4.0K/selinux/ 4.0K/srv/ 4.0K/sys/ 3.8M/tmp/ 1.3G/usr/ 2.8G/var/
やはり、/varに何かたくさんファイルが入っているようです。
[root /]# du -sh /var/*/ 4.0K/var/account/ 1.8M/var/analog-6.0/ 7.9M/var/cache/ 8.0K/var/crash/ 16K/var/db/ 8.0K/var/empty/ 8.0K/var/ftp/ 2.3G/var/lib/ 4.0K/var/local/ 20K/var/lock/ (以下略) [root /]# du -sh /var/lib/*/ 12K/var/lib/alternatives/ 15M/var/lib/canna/ 4.0K/var/lib/dav/ 4.0K/var/lib/dhcp/ 4.0K/var/lib/dhcpv6/ 4.0K/var/lib/games/ 13M/var/lib/imap/ 2.2G/var/lib/mailman/ (以下略)
どうやらメーリングリスト関係のフォルダが怪しいようです。ここに当たりを付けて調べてみることにします(ここではsortコマンドで並べ替えるために-hオプションは外しています)。
[root /]# du -s /var/lib/mailman/archives/*/ | sort -rn| more 3844122/var/lib/mailman/archives/eigyo/ 2540928/var/lib/mailman/archives/jinji/ 2280281/var/lib/mailman/archives/seisaku/ 2147243/var/lib/mailman/archives/kensyu/ 1457602/var/lib/mailman/archives/system/ (以下略)
ああ、すごい。ここがディスクを圧迫する原因だったのか。律子さんの会社では、各部門にメーリングリストがあるのですが、メーリングリストの過去ログが添付ファイルを含めて全部保存されてしまっていたようです。
原因は突き止めたので、それぞれのメーリングリストの管理者のところにお伺いを立てにいくことにします。
律子 「あの、すみませんけど、サーバにメーリングリストのアーカイブがたまっちゃってるので削除しちゃっていいですか?」
メーリングリストの管理者 「やだ」
律子 「えっ」
メーリングリストの管理者 「どれも大事なファイルなんだよね」
律子 「ローカルにあるんじゃないですか?」
メーリングリストの管理者 「バックアップがないと不安じゃない?」
律子 「それはご自分で……」
メーリングリストの管理者 「じゃあ、その作業も律子さんがやってよね」
律子 「えっ……」
サーバはコマンドで管理できるけど、人は管理できないんだよなあ、とため息をつきながらファイルのバックアップと削除に励む律子さんでした。
ネットワーク管理者といえども、ネットワークだけでなくメールやWebサーバの管理もやらされている、という方も多いと思います。今回は、サーバのディスク管理ツールの1つとして、便利なコマンドを紹介しています。
UNIX系OSでディスクの管理系のコマンドとして、ディスクのパーティション別に使用状況を表示するdf、指定したディレクトリ内の容量を表示するduコマンドがあります。
どちらも-hオプションを付けることで、分かりやすい形式で表示されるようになるなど、細かいオプションまで覚えておくことで、トラブルの解決がより早く導き出せるようになるでしょう。
また、lsコマンドでも-Rオプションを使うことで、フォルダの総容量が表示されるなど(ファイルもすべて再帰して表示するので分かりづらいかもしれませんが)、細かいオプションを覚えておくと非常に便利でしょう。 普段はUNIXでの作業がほとんどない管理者でも、サーバにはUNIX系OSを使用していることも多いかと思われます。とはいえ普段は正常に稼働していることがほとんどなのでコマンドを忘れてしまうことも何かと多いかもしれません。ただ、ディスク管理やバックアップなどのコマンドは何かあると使うことも多いので忘れないようにしたいものです。
ご参考
ディスクの使用率が高いディレクトリを探すには(Linux Square>Linux Tips)
コマンドオペレーションの魅力を再確認(Linux Square>Linux Tips)
サーバのディスク管理ってどうしてます?(System Insider 会議室)
Copyright © ITmedia, Inc. All Rights Reserved.