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

cronの出力をメールでなくSlackに送る方法

More than 3 years have passed since last update.

概要:crondのオプションでsendmailの代わりに独自スクリプトのパスを指定する

crondにはcronie, fcron, vixie-cronと色々種類があり、対応オプションも違うと思う。ここではcronieを使っているものとする。

sendmailの代替スクリプトを作成(urlを自分のIncoming WebhookのURLで置き換えること)

/usr/bin/sendmail.slack
#!/usr/bin/env ruby

require "json"
require "faraday"

url = "***** SlackのIncoming WebhookのURL *****"

message = $stdin.read

payload =
{
    "channel": "#general",
    "username": "sendmail.slack",
    "text": message,
}

res = Faraday.post url, JSON.generate(payload), content_type: "application/json"
puts res.status
puts res.body

faradayを使っているので

gem install faraday

としておいてください。

systemctl edit cronie
/etc/systemd/system/cronie.service.d/override.conf
[Service]
# ↓既存のExecStart=を上書きするには、これでクリアする必要がある。
ExecStart=
ExecStart=/usr/bin/crond -n -m /usr/bin/sendmail.slack
systemctl daemon-reload
systemctl reload cronie

ps aux | grep crond

### crond が /usr/bin/crond -n -m /usr/bin/sendmail.slack で起動していることを確認

以上。

journalctl -u cronie -fしつつ適用にcronジョブを設定して動作確認。

追記

よく考えたら、ジョブの指定で末尾に

2>&1 | /usr/bin/sendmail.slack

とする方法でもよかったかもしれない。

aosho235
1981年生まれ。駅すぱあとの会社で新規サービスを開発しています。好きなものはOS~ミドルウェアのレイヤー、開発を楽にするためのツールやフレームワークの整備、自分自身が便利だと思うものを作ること。最新技術を追うことより、自分が自信を持って使える技術で効率的に開発することを好みます。
https://aosho235.com/
val
経路検索システム「駅すぱあと」をはじめ、全国のデータと高い信頼性をベースにさまざまなサービスを展開。
https://www.val.co.jp/
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
ユーザーは見つかりませんでした