このスクリプトを改良しました。
スクリプト内容
- redmine_reminder.sh
#!/bin/bash
# Redmineのルートディレクトリを変数化
REDMINE_ROOT="/var/lib/redmine"
# 引数で日数を指定(デフォルトは3日)
DAYS=${1:-3}
# Redmineのルートディレクトリに移動
cd $REDMINE_ROOT
# リマインダーを送信
bundle exec rake redmine:send_reminders days=$DAYS RAILS_ENV=production
改良内容として
ルートディレクトリを変数化することで、サーバを変えても動かしやすくしています。
一番の改良点は引数を指定できること。
redmine_reminder.sh 7
を実行すれば7日以内に到来するチケット、
redmine_reminder.sh 31
で同様に31日前のチケットをメール送信させることができます。
あとはcrontabに
# 8:20に31日前のリマインダーを送信
20 8 * * * /home/hoge/scripts/redmine_reminder.sh 31
# 8:30に1日前のリマインダーを送信
30 8 * * * /home/hoge/scripts/redmine_reminder.sh 1
# 16:30に7日前のリマインダーを送信
30 16 * * * /home/hoge/scripts/redmine_reminder.sh 7
# 16:40に1日前のリマインダーを送信
40 16 * * * /home/hoge/scripts/redmine_reminder.sh 1
# 20:20に3日前のリマインダーを送信
20 20 * * * /home/hoge/scripts/redmine_reminder.sh 3
# 20:30に1日前のリマインダーを送信
30 20 * * * /home/hoge/scripts/redmine_reminder.sh 1
などと実行しておけば、柔軟な設定が可能になります。
コメントを残す