25
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

クラウドワークスAdvent Calendar 2016

Day 11

nasneの容量をシェルスクリプトでSlackに通知する

Last updated at Posted at 2016-12-11

日常生活でつかえるコマンド例を探していたのですが、「自分の日常=アニメを見る生活」なのでnasneの容量を確認するシェルスクリプトの作り方をさらします。意識低くて申し訳ない。

SlackのWebhookのURLを取得

まずは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

実行するとこんな感じで出力されます。

image

もっと工夫できると思いますが、これで十分といえば十分でしょう。あとはこれをcronで叩くようにすればいつ何時容量が少なくなったとしても気づくというものです。

25
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?