読者です 読者をやめる 読者になる 読者になる

#chiroito ’s blog

Java を中心とした趣味の技術について

nasneの容量を取得する

環境:
Oracle Linux 6 update 4

curl と jq が必要です。
下記の通りインストールと jq のページからダウンロードして下さい。

yum install curl

nasne HOME のハードディスク管理で情報を取得している URL を利用します。nasne はいろいろな情報を JSON 形式で取得できるようになっています。

下記の URL にアクセスすると nasne のHDD情報を JSON 形式で取得できます。
id=0 が内蔵の HDD、id=1 が外付けの HDD です。
192.168.0.12 は nasneIPアドレスです。適宜変更して下さい。

[root@zabbix ~]# curl -s 192.168.0.12:64210/status/HDDInfoGet?id=0
{ "errorcode": 0, "HDD": { "id": 0, "internalFlag": 0, "mountStatus": 1, "registerFlag": 1, "format": "xfs", "name": "hdd0", "vendorID": "ATA", "productID": "Hitachi HTS54505", "serialNumber": "120710TA85113VJSLJEN", "usedVolumeSize": 137600507904, "freeVolumeSize": 360920592384, "totalVolumeSize": 498521100288 } }

[root@zabbix ~]# curl -s 192.168.0.12:64210/status/HDDInfoGet?id=1
{ "errorcode": 0, "HDD": { "id": 1, "internalFlag": 1, "mountStatus": 0, "registerFlag": 0 } }

 jq を使って出力してみると構造が分かりやすくなります。
[root@zabbix ~]# curl -s 192.168.0.12:64210/status/HDDInfoGet?id=0 | jq "."
{
  "HDD": {
    "totalVolumeSize": 498521100288,
    "freeVolumeSize": 360920592384,
    "usedVolumeSize": 137600507904,
    "serialNumber": "120710TA85113VJSLJEN",
    "id": 0,
    "internalFlag": 0,
    "mountStatus": 1,
    "registerFlag": 1,
    "format": "xfs",
    "name": "hdd0",
    "vendorID": "ATA",
    "productID": "Hitachi HTS54505"
  },
  "errorcode": 0
}

[root@zabbix ~]# curl -s 192.168.0.12:64210/status/HDDInfoGet?id=1 | jq "."
{
  "HDD": {
    "registerFlag": 0,
    "mountStatus": 0,
    "internalFlag": 1,
    "id": 1
  },
  "errorcode": 0
}
JSONのパス(?)を指定して、HDD の容量と空き容量を取得するには下記の通りに指定します。値は Byte です。
[root@zabbix ~]# curl -s 192.168.0.12:64210/status/HDDInfoGet?id=0 | jq ".HDD.totalVolumeSize"
498521100288

[root@zabbix ~]# curl -s 192.168.0.12:64210/status/HDDInfoGet?id=0 | jq ".HDD.freeVolumeSize"
360920592384

 外付けHDDが無いと null が返されます。
[root@zabbix ~]# curl -s 192.168.0.12:64210/status/HDDInfoGet?id=1 | jq ".HDD.freeVolumeSize"
null
近々、これを利用して zabbix から nasne を監視する方法でもアップします。