2013年8月14日水曜日

OpenMediaVaultでShared Foldersの使用容量を表示する一行野郎

OpenMediaVaultで、1パーティションに3つの共有フォルダを作ったんですが、WebGUI上でパーティション全体の使用容量は見れるものの、各共有フォルダの個別の使用容量はわかりません。
SSHでシェルに入ればduコマンドで確認できるけど、そんなのいちいち面倒くさい。
WebGUIにそういうページを作ってもいいけど、時間がかかることは必至。
ラクに済ませるにはどうしたら良いか。
WebGUIを見たところsyslogを表示するページがある。
じゃあここに出力すればラクじゃないか。

ということで、
duで共有フォルダの使用容量を計算し、loggerでsyslogに出力することにしました。
コマンドはこちら。
cd /media/hdd_guid/path/; du -hs * | sed "s/\t/ /" | logger
  • cdコマンドで共有フォルダの置いてある場所に移動
  • duで各フォルダの使用容量を計算
  • sedでタブ文字を空白に変換(そのままだと文字化けするので)
  • loggerでsyslogに書き込み
となっています。

これをWebGUIからcronに登録し、1時間毎に実行します。
(ちなみにEvery N hour にチェックを入れて1時間毎に実行しようとすると、なぜか1分毎に実行されてしまうので、毎時0分に実行する設定にしました)

毎時0分に実行されるのでsyslogで該当部分を見ると、下記のように3つの共有フォルダの使用容量が出力されていることがわかります。


これでめでたくsyslogページにShared Foldersの使用容量が表示されるようになりました。
メデタシメデタシ。


追記:

その後さらに、いちいちログインしてsyslogページを開くのも面倒なので、共有フォルダに使用容量をテキストで書き出すようにしました。
コマンドはこちら。
df -h > /export/share/diskusage.txt; du -hs /export/* >> /export/share/diskusage.txt
こちらのコマンドはNFSの使用が前提になっています。
OpenMediaVaultではNFSで共有をかけると、/exportという場所に自動的にリンクを張ってくれる親切設計なので、それを利用しています。
ついでにdfコマンドでディスク自体の使用容量も書き出しています。