anacron

ファイルサーバのバックアップにanacronを使ってみました。anacronというのは、常時起動していないマシンなどでcronライクなことをやらせるためのソフトウェアです。

前回のタスクの実行からの時間をみて、規定の時間が過ぎていたら、タスクを実行する、というような動作をしてくれます。つまり、本来実行すべき時間にマシンが止まっていたら、次の起動時に実行してくれる、というわけです。また、設定によって、起動後すぐに実行ではなく、ある程度時間をおいてから実行、などということもできます。

使ってみる

インストールは、debainでは簡単にapt-getから手に入れられます。

$ sudo apt-get install anacron

anacronの設定は/etc/anacrontabです。crontabっぽい設定の仕方になってますが、若干違っているので注意が必要。

$ sudo vi /etc/anacrontab
#cycle delay file user program
1         5       cron.daily        nice    run-parts --report /etc/cron.daily
7        10      cron.weekly     nice    run-parts --report /etc/cron.weekly
30      15      cron.monthly   nice    run-parts --report /etc/cron.monthly

一番左は、実行間隔です。ここは日単位で書きます。次が、マシン起動からプログラム実行までのディレイです。マシンが起動してすぐに実行しないでほしい場合はここで指定します。

次は前回実行日時を保存するファイル名です。ここに指定したファイル名で、/var/spool/anacron/以下にファイルが作成されて、実行日時が保存されます。このファイルを見て、前回実行から何日経過しているか確認しているようです。

次は実行ユーザで、最後が実行コマンドになります。

結構便利なのですが、問題があるとすれば、1日単位より細かくタスクを制御できないことでしょうか。普通に5分ごと、とかのタスクはcronでやりましょう、ということですね。