環境:
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 は nasne のIPアドレスです。適宜変更して下さい。
[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 を監視する方法でもアップします。