Be notified on Slack when a long process finishes
We run several processes that may take hours to complete and it is nice to be notified on a Slack channel when those processes finishes correctly. Using the Slack’s Incoming Webhooks API, a small bash script and a couple of tricks it is really simple!
#
Setup
Only few steps are necessary to install this small script:
- Download this bash script and place it at your home directory:
curl https://gist.githubusercontent.com/arjones/9750b39a26c63b9d3775b5334cadf11b/raw/1f0c1d2e5458f0727c0f8cc3c8b18f638f76bc7f/notify-slack.sh > ~/notify-slack
- Edit your
~/.bashrc
to source the new file:
# Add function to send bash notifications to a Slack Channel
[ -f ~/notify-slack ] && source ~/notify-slack
-
Create a file at
~/.notify-slack-cfg
containing the Slack’s webhook. This file MUST contains only the key, it looks likeT02TKKSAX/B246MJ6HX/WXt2BWPfNhSKxdoFNFblczW9
. You can create your webhook here -
All done! :D
#
Usage
Now you can test notifications, just source your .bashrc again: source ~/.bashrc
and let’s do a few tests:
notify-slack 'Hello World!'
You should receive inmediatlely a notification on Slack:
If you start your message with INFO
, WARN
or ERROR
a nice icon will be prepended.
notify-slack 'ERROR: Something went wrong :('
#
Chaining on your scripts
Chain notify-slack
on your own commands and scripts. I use it to be notify when a backup finished correctly:
(mysqldump test | gzip -9 > test.gz) && notify-slack 'INFO: Backup has finished'
Hope you find it useful! Enjoy!