経緯
gitで管理しているプロジェクトの中に定期バッチの編集も一緒に管理する必要があったので調べた。
定番
- cronといえば、だいたい以下のディレクトリを参照する。
/etc/crontab
/etc/cron.d
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.hourly/
/etc/cron.monthly/
- もしくはユーザ毎(iganari)のcrontabに加筆修正していく
cmd
# crontab -e
or
# crontab -uiganari -e
※ しかし上記は-rオプションで消してしまう事故等が多発することで有名。
crontabってどこにあるんだろ
いつもcrontabで編集しているファイルって、結局どこにあるのかなって思ったので調べてみた。
結果は以下
パス
/var/spool/cron
この下にユーザ毎の設定ファイルが置かれている
パス
# ll /var/spool/cron
-rw------- iganari iganari vagrant
ここの配下にあるファイルは600なので、ユーザ自身が加筆修正可能。
ここからはgitの話
root以外でも変更出来るようにパーミッションの変更
cmd
# chmod 777 /var/spool/cron
.git/hooksに設定を加筆
/プロジェクトのパス/.git/hooks
- .git/hooksの設定
- pull(fetch + merge)した時に発動(厳密的に言えばmergeの際に発動)