シェルスクリプトでslackにメッセージ送信してみた
まえがき
今日はシェルスクリプトを使ってslackメッセージを送信できるようにしてみました。
これを使うとどうなるのか?
例えば、かなり長い処理をさせた時にPCの前でずっと完了を待ってるのって辛いですよね?
処理が終わった時にこのスクリプトを叩けばslackに通知が来たらPCの前に戻って作業の再開ってことをしたくて作りましたので具体的な方法を紹介したいと思います。
内容としてはslackのAPIを叩いてるだけなんですけどねw
curlコマンドが入っているか確認
$curl -v
上記のコマンドを叩いて、command not found
とでなければcurlは入っています。
もし、command not found:
と出た場合は、curlをインストールしてください。
$sudo apt install -y curl
実際に投稿できるか実験してみる
端末からこのコマンドを叩けばslackのジェネラルにメッセージが飛びます。<>の中は適時修正してください。
channelの中を修正するとチャンネルを指定することもできます。
curl -X POST "https://slack.com/api/chat.postMessage?token=<token>&channel=general&text=<message>&username=<botName>"
スクリプトにしてみる
このコマンドを毎回打つのはめんどくさいのでスクリプトにして、ついでにどこからでも呼び出せるようにしたいと思います。
$cd <作業ディレクトリ> $vim slackPost
上記のコマンドで、作業ディレクトリに移動し、スクリプトファイルを作ります。
拡張子をつけていないのは、わざとで、コマンドになった時に打つのがめんどくさいからです。
slackPostの内容は下記のとおりになります。
#!/bin/sh curl -X POST "https://slack.com/api/chat.postMessage?token=<token>&channel=general&text=$1&username=<botName>"
スクリプトを書き終わったら、実行権を与えて実行してみます。
$chmod 755 slackPost $./slackPost "postText"
実行時の第一引数にpostしたいメッセージを記入します。
引数を追加してチャンネル名やbot名を毎回決めてもいいかもしれません。
このpostTextの中ではスペースや改行は使えないのでご注意ください。
どこからでも使えるようにpathを通しておく
ubuntuの場合、~/.profileに通したいpathを記述するとログイン時に自動でpathを通してくれます。
私の場合、/home/you/path に今回作ったスクリプトをおいているので、下のようになります。
ファイルを開く $vim ~/.profile パスを追加する PATH="$PATH:/hoge/you/path"
これであとは一度ログアウトしてログインすると使えるようになっています。
おまけ
実際に使う時の文章はこうなります。
今回は長い処理を思いつかなかったので適当なパッケージをインストールするという想定でやります。
sudo apt install tree -y; slackPost "treeのインストールが完了しました。"
ubuntu 16.04をインストールしてから、最低限の開発環境構築
みなさんこんにちわ。
ubuntu16.04をインストールして最低限の環境構築ができたので記事にしたいと思います。
- ホーム以下のディレクトリ名を英語にする
- パッケージリストの更新
- vimのインストール
- open ssh serverのインストール
- gitのインストール
- google chromeのインストール
- slackとvscodeのインストール
- あとがき
- 今回参考にさせてもらったサイト様
ホーム以下のディレクトリ名を英語にする
なにはともあれ端末からホーム以下のディレクトリにアクセスしやすくするために英語にします。
LANG=C xdg-user-dirs-gtk-update
このコマンドを実行すると下の画像のような画面が出てきますので、"Don't ask me this again"にチェックを入れて"Update Names"をクリックします。
この段階で端末でホームのファイルを見ると英語になっているのが解ると思います。
一部日本語のままなのは、設定をする前にディレクトリの中にファイルを入れてしまったからです。
open ssh serverのインストール
web開発をしてると他のマシンからアクセスしてそのついでにサクッと編集をしたりしたいですよね?
ついでにIPを固定しておくことをおすすめします。
sudo apt install openssh-server -y
google chromeのインストール
実はこれが一番詰まるポイントなんですよね。
chromeをインストールする前に依存関係をインストールしないとインストールできないんですよね・・・
sudo apt install libappindicator1
これで依存関係をインストール出来たので、公式からクロームの.debファイルをダウンロードしてきます。
google chrome パソコン版 Chrome
端末でダウンロードしてきたディレクトリに移動し、下記のコマンドを実行します。
cd インストーラをダウンロードしたディレクトリ sudo dpkg -i クロームのインストーラ.deb
slackとvscodeのインストール
slackの公式とvscodeの公式に行き、debファイルをダウンロードしてください。
この時、同じディレクトリにダウンロードしてくることをおすすめします。
slack Download Slack for Linux | Slack
vscode Visual Studio Code - Code Editing. Redefined
2つともダウンロードできたら、下記のコマンドを実行してインストールします。
cd インストーラをダウンロードしたディレクトリ sudo dpkg -i slackのインストーラ.deb sudo dpkg -i vscodeのインストーラ.deb
あとがき
とりあえず最低限のubuntuをインストールしてすぐに整えたい環境ってこんなものかな?
これより先は必要なサーバなどをインストールすれば開発をすぐに始めれると思います。
ほかにもこれがあれば便利みたいな環境があれば教えていただければ幸いです。
slackってaptからインストールできないんですね。
はじめ間違えてaptでインストールしようとして全く関係ないソフトをインストールしてしまいましたw