Edited at

各ユーザのcrontabファイルの場所について

More than 3 years have passed since last update.


経緯

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の際に発動)


参考

crontab -eと/etc/crontabでcronを設定する方法