NaN NaN da

情報系のメモ書き。情報系以外も書く。

gitによるcron設定ファイルの管理と実行

crontabの管理と設定

cronとは

  • 定期的にプログラムを自動実行を行う機能
    • サーバなどで主に利用

      目的

環境

Debian squeeze

設定ファイルを書く前に

エディタの設定

"crontab -e"コマンドでcronの設定を行うためにエディタが開きます。普段使い慣れたエディタを使うためには以下のように.bashrcに記述します。

> vim ~/.bashrc
(以下を追加)
export EDITOR = vim
> source ~/.bashrc # bashrcの内容を反映

他にもnanoやemacsも設定できるはずです。

設定ファイルを書く

"crontab -e"でエディタが起動し、設定ファイルの記述を行えます。いくつかの設定例を示します。

> crontab -e # エディタが起動
* * * * * python hoge.py # 1分ごとに実行
6 * * * * python hoge.py # 毎時6分に実行
6 7 * * * python hoge.py # 毎日7時6分に実行
6 7 8 * * python hoge.py # 毎月8日7時6分に実行
6 7 8 9 * python hoge.py # 毎年9月8日7時6分に実行
6 7 * * 0 python hoge.py # 毎週日曜日7時6分に実行
6 7 * * 1-5 python hoge.py # 平日の7時6分に実行

設定は[秒、時、日、月、曜日]の順に設定します。ただし曜日は0, 7が日曜日で、1, ..., 6が月、...、土になります。

詳しくはこのあたりを参考にして下さい。

gitによる管理

cronの設定ファイルはcrontab -rで消すことができます。逆に言えばミスをしてこのコマンドを入力すると消えてしまいます。そこでgitで管理を行いましょう。

crontabコマンドで設定すると、"/var/spool/cron/crontab/[ユーザ名]"にファイルが作成されます。rootで設定ファイルを作成したとします。

> cd /var/spool/cron/crontab/
> git init
> git add root
> git commit -m "initial commit"

例えばファイルを消してしまったときは

> git reset --hard HEAD^

以上です。