Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

日常生活でつかえるコマンド例を探していたのですが、「自分の日常=アニメを見る生活」なので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で叩くようにすればいつ何時容量が少なくなったとしても気づくというものです。

nasum
djangoとVueでお仕事をしているWebエンジニア。 terraformとかdockerも触れます。 いろいろ作りたい。
https://nasum.dev
scouty
「あらゆる事象を必然化し、 世の中のミスマッチをなくす」ことをミッションとし、AIヘッドハンティングサービスを開発・運営するスタートアップ
https://lapras.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした