恐怖のcrontab -r. 設定ファイルはレポジトリ管理せよ

crontabファイル含め、設定ファイルはレポジトリで管理しましょうという話です。

恐怖のcrontab -r

間違えて crontab -r してしまい、crontab をふっとばしてしまったので、以下のような zsh 関数を書いて、確認を出すようにした。つか、隣同士にある -e と -r で編集と削除とか、酷いよ><。。。


cronのにジョブを登録する際に、crontabファイルを開きますが、「crontab -e」と間違って「crontab -r」をやると、crontabが消えてしまう。しかも、記事の内容にある通り、「e」と「r」というタイポしてもおかしくない位置にあるというので、これは怖い。
crontabの内容なんてほとんど覚えてない割にはちょくちょく更新するファイル。バックアップとかとってないと大変なことになる。

  • ytoy 2006/10/31 10:08

昔から設定は全部 ~/.crontab というファイルで管理して、編集はそこだけに対してやっています。
で、
crontab ~/.crontab
ってやれば登録されます。crontab -e は一切使いません。
バックアップなしは危険ですよー


コメントにある通り、まずはバックアップということで、会社の先輩がやっていた方法を拝借。以下をcronのジョブに登録するというもの。単純だけど、見落としていました。

crontab -l > ~/var/crontab.back


さらに、cron のタスク内容は他のファイルに書いて、

$ crontab ~/.crontab

のようにして反映させるべし。

設定ファイルはレポジトリ管理せよ

また、先ほどの記事のブクマコメントにこう書いてあった。

otsune: 設定ファイルをリポジトリに入れないで許されるのは中学生まで


気がつかなかった。これは絶対やった方がいい。会社のレポジトリみると、レポジトリにサーバーの名前でディレクトリがあって、そこにはconfファイルが色々あったのはこのためか。
ということで、今は以下の方針をとっている。

  • ~/etc/crontab にcron の設定を書いてこれをバージョン管理
  • cron ジョブとして登録する場合は「$ crontab ~/etc/crontab」で行う

いい勉強になった。