Redmine4.2(5.x)のリマインダーを利用する。

概要

Redmineにはデフォルトでチケットの期日まで何日かメールで通知する機能が備わっています。

これにより、

ことが可能になります。

本記事では、この機能を有効化するシェルスクリプトを記します。

環境

以下の環境で動いていることを確認しています。

前提

この作業の前に、以下が必須です。

さっくりとした手順

  1. リマインダースクリプトを作成して実行権限を付与します。
  2. cronで定期実行されるようにします。

リマインダースクリプトの作成

mkdir /home/hoge/scripts

任意のディレクトリを指定します。

cd /home/hoge/scripts && pwd

リマインダースクリプトを作成します。

【】内は自分の環境に合わせ、書き換えてからコマンドを実行します。(詳細をコメントで書いています)

cat <<- __EOF__ |  tee -a redmine_reminder.sh
#!/bin/bash

# 引数でルートディレクトリを指定(デフォルトは/home/www-data/redmine)
REDMINE_ROOT=${1:-"/home/www-data/redmine"}

# 引数で日数を指定(デフォルトは3日)
DAYS=${2:-3}

# Redmineのルートディレクトリに移動
cd $REDMINE_ROOT

# リマインダーを送信
bundle exec rake redmine:send_reminders days=$DAYS RAILS_ENV=production
__EOF__

スクリプトに実行権限を付与し、動作を確認します。

chmod +x redmine_reminder.sh && ls -l redmine_reminder.sh

実行権がついていることを確認します

sudo -u www-data bash /home/hoge/scripts/redmine_reminder.sh

warningは無視して大丈夫です

締め切りが3日に到来するチケット一覧のメールが受信されれば成功です。

crontab追記

sudo crontab -e -u www-data

初めてこのコマンドを実行した場合、「crontabで用いるエディタは何か」を確認されます。自分の信仰や教義に合わせたエディタを選択してください。

# リマインドしたい日数を引数で指定できます
20 8 * * * /home/hoge/scripts/redmine_reminder.sh 31
30 8 * * * /home/hoge/scripts/redmine_reminder.sh 1

30 16 * * * /home/hoge/scripts/redmine_reminder.sh 7
40 16 * * * /home/hoge/scripts/redmine_reminder.sh 1

20 20 * * * /home/hoge/scripts/redmine_reminder.sh 3
30 20 * * * /home/hoge/scripts/redmine_reminder.sh 1

この例では、

をそれぞれ通知します。

また、このスクリプトでは、

20 8 * * * /home/hoge/scripts/redmine_reminder.sh /home/www-data/redmine2 31

のように、 同一サーバ上に複数のRedmineが動いている場合でも、他のディレクトリを指定可能です。

追記確認

sudo crontab -l -u www-data

追記した内容があることを確認します。

cat /var/log/cron.log

が、crontabに追記した時間帯にあれば設定完了です。

後は、指定した時間にメールが通知されることを待ちましょう。(キチッと確認したい場合は、cronの実行時刻を調整してください)


Revision #6
Created 1 April 2024 11:48:02 by manualmaton
Updated 7 November 2024 02:40:06 by manualmaton