やりたいこと

Line Notifyを用いて定期的にリマインドしてくれるようにしたい

手順

Line Notifyのページ(こちら)からログインしてアクセストークンの発行(開発者向け)を行う。

Line notifyで通知してくれるシェルスクリプトを作成

自分は以下のように書きました。(リマインド:炊飯と通知してくれるコードです)

#!/bin/bash
LINE_ACCESS_TOKEN="jXN4lE38ve0ljxYRlF9jPBwytvcI48Xsad1iqRBKTeF"
function line_notify() {
  MESSAGE=$1
  curl -X POST -H "Authorization: Bearer ${LINE_ACCESS_TOKEN}" -F "message=$MESSAGE" https://notify-api.line.me/api/notify
}
line_notify "リマインド:炊飯"

これをcronに登録

$ echo "0 17 * * * . /home/itotaku/cron/notify_rice.sh" > cron.conf
$ crontab cron.conf

どこで詰まったか

直接

. /home/itotaku/cron/notify_rice.sh

とすれば通知できるのにcronを経由すると通知が来なかった。

Web検索しながら調べてみた

Webサイトで解決策を調べてみると、postfixのインストールが必要という記事をよく見ました。

それの通りにやってもうまくいかなかったです。

結局どう解決したか

根本的な問題の解決には至っていないかもしれませんが、シェルスクリプトに実行権限を与え、ドットコマンド(.)を使わずに登録すればうまくいきました。

$ chmod 775 notify_rice.sh
$ echo "0 17 * * * /home/itotaku/cron/notify_rice.sh" > cron.conf
$ crontab cron.conf

通知が来た!