普段パソコンを使用していてディスク容量を気にする事は少ないでしょう。しかしディスクが一杯になるとシステムのあらゆる部分で不具合がでて、操作不能の状態に陥ってしまう恐れがあります。ディスク使用量の詳細を知りたい時は、「ディスク使用量アナライザー」を参照するのがお勧めです。ディレクトリ毎に、どこのディレクトリ配下のファイル使用量が多いのかがグラフィカルに確認できます。
コマンドで確認する場合は、df コマンドを使用します。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 402044 1504 400540 1% /run
/dev/sda3 19946096 16533872 2373684 88% /
tmpfs 2010220 4 2010216 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 2010220 0 2010220 0% /run/qemu
/dev/sda2 524252 4 524248 1% /boot/efi
tmpfs 402044 96 401948 1% /run/user/1000
/dev/sdb1 3020584 3004200 0 100% /data
notify-send コマンドは、ディスクトップにポップアップ通知を送るコマンドです。ターミナル上で以下のように実行して確認することができます。
$ notify-send "概要" "情報"
-u で緊急度(low, normal, critical low と normal は同じ) -i アイコンを指定でき、アイコン名または画像ファイルを指定します。
$ notify-send -u critical "緊急" "ディスクが一杯です"
$ notify-send -i system-run "通知" "サービスが起動しました"
アイコン名は、/usr/share/icons/ 配下のファイル名を指定します。配下をファイルマネージャで参照するとディスクの画像 disk-utility-app.png があったのでスクリプト内で -i disk-utility-app と指定することにします。
以下のスクリプトを root のクーロンに登録しておけば、画像のようなアラートが通知されます。
check_disk.sh
#!/bin/bash
# 表示するディスプレイを設定
export DISPLAY=:0
# 表示するディスクトップのユーザ名
USERNAME="taro"
# ディスク容量(%)のリミットを設定
LIMIT=70
# チェックするデバイスを設定
CHECK_DEV=("/dev/sda3" "/dev/sdb1");
for check_dev in ${CHECK_DEV[@]}
do
# 対象デバイスの使用率を取得
DISK_USE=`df |grep ${check_dev}|awk '{print $5}'|sed 's/%//'`
# 使用率がリミットを超えているかチェック
if [ ${LIMIT} -le ${DISK_USE} ]; then
# ディスクトップに警告メッセージを表示
su ${USERNAME} -c "notify-send -i disk-utility-app -u critical '緊急' 'ディスク ${check_dev} が一杯です。'"
fi
done