「crontab -e」でのcrontabの修正は、「crontab -r(設定全消去)」の誤タイピングを招くので危ない!と半ば常識となっています。が、外部ファイルを編集してからcrontabで外部ファイルを読み込む、というのは二度手間だなぁ…。ということで、下記のようにaliasを使って手間を減らしましたという話。
##基本的な考え方
今回の安全な方法とは、「~/etc/crontab」という外部ファイルを経由して、その内容をcrontabに適用することで、「crontab -e」を使わないようにする!ということとします。
##.bash_profileにaliasを設定する
まずは、.bash_profileに下記aliasを追記します。
...
alias cronedit="vi ~/etc/crontab; crontab ~/etc/crontab; echo 'crontab edit complete.'"
...
こう書くことで、~/etc/crontabを編集したら自動でcrontabに適用されるようになり、「crontab -e」
と同じ使用感を得られるようになります。
.bash_profileを編集したら、当然ですがドット実行して設定を反映させてください。
. ./.bash_profile
##実際に使ってみる
こんな感じで外部ファイルの編集モードに入ります。
$ cronedit
viの画面が開くので、内容を適当に修正します。
0 * * * * echo 'test'
:wq
で保存&編集終了すると、下記の文字列が表示され、crontabにも設定が反映されます。
crontab edit complete.
##より安全性を高める
外部ファイルのバックアップを定期的に取るようにすると、より安全性が増すかと思います。他には、Git管理したりする方法もありますね。
以上で終了です。お疲れさまでした。