phpとか

自分用備忘録なので、自分が分かる程度にしか書いてません。

ディスク容量がやばくなったらslackで通知する

スクリプト

#!/bin/sh
CHANNEL="#チャンネル名"
USER="存在しないユーザ名もOK"
BODY="容量やばいよ"
URL="自分のwebfook url"
ICON=":warning:"

DVAL=`/bin/df / | /usr/bin/tail -1 | /bin/sed 's/^.* \([0-9]*\)%.*$/\1/'`
if [ $DVAL -gt 80 ]; then
  curl -X POST --data-urlencode "payload={\"channel\": \"${CHANNEL}\", \"username\": \"${USER}\", \"text\": \"${BODY}\", \"icon_emoji\": \"${ICON}\"}" ${URL}
fi

1.使用容量取得(Use%)

コマンドに関しては以下のブログ様が参考になります
www.ideaxidea.com

【解説】

dfコマンドで容量を知りたいですが、「Use%」だけを受け取って、数値比較したい

1.普通にdfしてみる。
/bin/df /

これが普通のdfコマンド。これだけ実行すると↓
※「/」をつけているので、「/」の容量だけ取得できます。

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/xvda1       8123812 3421460   4602104  43% /
2.最後の1行だけ取得
/bin/df / | /usr/bin/tail -1

「Filesystem」とかの行はいらないので、「tail」コマンドで行を指定します。
※この場合は、最後の1行だけ取得です。
※「|」(パイプ)で繋げられます。

/dev/xvda1       8123812 3421460   4602104  43% /
3.「Use%」だけ取得
/bin/df / | /usr/bin/tail -1 | /bin/sed 's/^.* \([0-9]*\)%.*$/\1/'

最後に「sed」コマンドで正規表現を使用して{数字%}だけを取得します。

43

slackへ通知

以下の公式からwebhook URLを取得します。
Sign in | Slack

スクリプトの説明は特にいいですかね。このまま変数の中身だけ変えてもらえれば動くと思います。

icon_emoji」の一覧下記に載せときます。好きなアイコンをどうぞ
www.webpagefx.com


あとはcronとかで。
上記ソースだと80%以上使わないとslack飛ばないので、ご自分の環境に合わせて変更してください。


デバイスジャパン Apple iPad専用レザーケース スタンド型

デバイスジャパン Apple iPad専用レザーケース スタンド型

アップル iPad 2 Wi-Fiモデル 16GB MC769J/A (ブラック)

アップル iPad 2 Wi-Fiモデル 16GB MC769J/A (ブラック)

iPad mini 16GB Wi-Fiモデル ホワイト&シルバー MD531J/A

iPad mini 16GB Wi-Fiモデル ホワイト&シルバー MD531J/A

[rakuten:ec-current:12189686:detail]