ユーザ別の設定
Makefile
TARGET_FILES = *.cron
CRON_FILE = crontab
all: file
.PHONY: file
file: ${TARGET_FILES}
echo "PATH=/usr/local/bin:/usr/bin:/bin" > ${CRON_FILE}
echo "CONTENT_TYPE=text/plain; charset=UTF-8" >> ${CRON_FILE}
echo "" >> ${CRON_FILE}
cat ${TARGET_FILES} >> ${CRON_FILE}
echo "" >> ${CRON_FILE}
crontab ${CRON_FILE}
01_config.cron
####################
# config
####################
HOGE_DIR=/home/vagrant/project/hoge
HOGE_ENV=dev
FUGA_DIR=/home/vagrant/project/fuga
FUGA_ENV=dev
プロジェクト別のcron設定ファイル
git によりバージョン管理されている前提です。
hoge.cron
####################
# hoge
####################
31 * * * * [ "$HOGE_ENV" = "prod" ] && php $HOGE_DIR/symfony hoge:task1 --env="$HOGE_ENV"
10 4 * * * php $HOGE_DIR/symfony hoge:task2 --env="$HOGE_ENV"
fuga.cron
####################
# fuga
####################
22 10,22 * * * [ "$FUGA_ENV" = "prod" ] && php $FUGA_DIR/symfony hoge:task1 --env="$FUGA_ENV"
10,50 * * * * php $FUGA_DIR/symfony hoge:task2 --env="$FUGA_ENV"
使い方
$ pwd
/home/vagrant/.crontab.d
$ ls -l
合計 12
-rw-rw-r-- 1 vagrant vagrant 152 5月 22 22:50 2013 01_config.cron
lrwxrwxrwx 1 vagrant vagrant 43 5月 22 22:58 2013 10_hoge.cron -> /home/vagrant/project/hoge/config/hoge.cron
lrwxrwxrwx 1 vagrant vagrant 43 5月 22 22:59 2013 20_fuga.cron -> /home/vagrant/project/fuga/config/fuga.cron
-rw-r--r-- 1 vagrant vagrant 318 5月 22 23:02 2013 Makefile
$ make
echo "PATH=/usr/local/bin:/usr/bin:/bin" > crontab
echo "CONTENT_TYPE=text/plain; charset=UTF-8" >> crontab
echo "" >> crontab
cat *.cron >> crontab
echo "" >> crontab
crontab crontab
$ crontab -l
PATH=/usr/local/bin:/usr/bin:/bin
CONTENT_TYPE=text/plain; charset=UTF-8
####################
# config
####################
HOGE_DIR=/home/vagrant/project/hoge
HOGE_ENV=dev
FUGA_DIR=/home/vagrant/project/fuga
FUGA_ENV=dev
####################
# hoge
####################
31 * * * * [ "$HOGE_ENV" = "prod" ] && php $HOGE_DIR/symfony hoge:task1 --env="$HOGE_ENV"
10 4 * * * php $HOGE_DIR/symfony hoge:task2 --env="$HOGE_ENV"
####################
# fuga
####################
22 10,22 * * * [ "$FUGA_ENV" = "prod" ] && php $FUGA_DIR/symfony hoge:task1 --env="$FUGA_ENV"
10,50 * * * * php $FUGA_DIR/symfony hoge:task2 --env="$FUGA_ENV"