日常生活でつかえるコマンド例を探していたのですが、「自分の日常=アニメを見る生活」なのでnasneの容量を確認するシェルスクリプトの作り方をさらします。意識低くて申し訳ない。
SlackのWebhookのURLを取得
まずはSlackのWebhookのURLを取得します。取得の仕方はどこにでも書いてあるのですが、自分はついつい忘れてしまいます。なのでこういう記事に残しておくと後で便利です。
上のリンクはいつもお世話になっています。
コマンドでnasneから容量を取得出来るかチェック
同じネットワーク内にあればnasneのAPIを叩いて容量を取得することが出来ます。nasneのAPIについては以下のページに詳しく書かれています。
【nasne】APIを調べてみた。ディスク容量が知りたい、他
ほかにもいろいろなことが出来そうな感じです。とりあえず今回必要なのは容量を得ることなので以下のようなコマンドで取得できそうです。
curl -s "http://IPアドレス:64210/status/HDDInfoGet?id=0" | jq -M '.HDD.freeVolumeSize / 1000 / 1000 / 1000'
JSONが返ってくるのでjqで操作しています。jqって本当に便利ですね。単位はバイトで返ってくるのでギガバイトに直しています。頭の悪いスクリプトで本当に申し訳ない。
出来たシェルスクリプト
出来たシェルスクリプトは以下のような感じ
#!/bin/sh
WEBHOOKURL="webhookのURL"
MESSAGE=`curl -s "http://IPアドレス:64210/status/HDDInfoGet?id=0" | jq -M '.HDD.freeVolumeSize / 1000 / 1000 / 1000'`
curl -s -S -X POST --data-urlencode "payload={\"channel\": \"general\", \"username\": \"Nasne\", \"icon_emoji\": \":eggplant:\", \"text\": \"残り容量:${MESSAGE}\" }" ${WEBHOOKURL} >/dev/null
実行するとこんな感じで出力されます。
もっと工夫できると思いますが、これで十分といえば十分でしょう。あとはこれをcronで叩くようにすればいつ何時容量が少なくなったとしても気づくというものです。