2019年 12月 05日
ディスク占有犯は誰!SUSE Linux でディレクトリの占有量を調査 ncdu
先日どうも samba の調子が悪いなぁと思って、いろいろ調べているうちに、こりゃお馴染みのHDDの故障かな、随分古いディスクだし。という事でリブートしてみたら、なんと今度はXENが起動しない。原因分からないなぁ、という事でデーモンだけ再起動して、ログを見たら容量不足でログが書けないというエラーが見つかった。慌てて
# df -h
してみたら、/var の下が満杯なんですね。でまぁことは仮想マシンの置き場です。随分と残骸が溜まっているじゃないか、という事で古いバックアップなんかを削除してみました。この手のコマンドで他に良く使うコマンドが du です。du は、そのまま使うと、ディレクトリを舐めまくだらだらって表示されるので、次のオプションを使うと良いでしょう。
-s はディレクトリの合計を表示する-c は全てのディレクトリの合計も表示する
オプションです。ただしバイト表示なので、 -h (human) を付けて見やすく表示しました。
sles11:~ # df -hFilesystem Size Used Avail Use% Mounted on/dev/sda8 50G 30G 20G 60% /udev 3.8G 300K 3.8G 1% /devtmpfs 3.8G 6.4M 3.8G 1%/ /dev/shm/dev/sda6 164M 24M 140M 15% /boot/efi/dev/sda9 493G 384G 84G 83% /var <-- お前が犯人か/dev/sda3 48G 19G 30G 39% /windows/C/dev/sda4 98G 107M 98G 1% /windows/D/dev/sda11 148G 94G 48G 67% /share/dev/sdb2 1.8T 1.7T 4.2G 100% /hdd/sdbsles11:~ # du -s -h /var/lib/xen378G /var/lib/xen <--ここにファイルがごっちょりあるsles11:~ # du -s -c -h /var/lib/xen378G /var/lib/xen378G total
sles11:~ #
ただし、ここまで面倒だと使い辛いな、もっと便利で一発でパーティションを占有しているディレクトリを探せないかと探したらありました。 ncdu ツールです。
NcduNCurses Disk Usage
SUSE Linux (openSUSE/SLE) への ncdu のインストールは、openSUSE のソフトウェアページから、1 Click インストールできます。
YaST (yast2) による SUSE Linux のパッケージ管理, インストールと削除
まず、インストールされているブラウザから openSUSE のソフトウェアページを開きます。
# firefox https://software.opensuse.org/ &
検索ボックスから "ncdu" を検索し、使っているディストリビューションの "1 click Install" ボタンを押します。あとは、YaST の 1 Click インストールのウィザードに従ってインストールします。
SUSE で 1 Click インストールができない
# ncdu [option] [Directory]でディレクトリを指定してディレクトリ配下の、肥え太ったディレクトリを探します。 [Directory] を省略すると、カレントディレクトリ以下を探します。ファイルシステムの、ルート(/) から探したい場合は
# ncdu /
を実行します。/ から指定すると、時間がかかります。今回は /var を調べたいので
# ncdu /var
を実行しました。指定したディレクトリ以下は自由に動き回って犯人捜しをします。 "i" コマンドでディレクトリの Information をウィンドウ表示します。こんな感じ。カーソルキー<>で移動しながら、犯人捜しをします。コンソールとのインターフェース、オプションはマニュアルをご参考下さい。
Ncdu Manual
終了する時は "q" で終了します。