cronについて
Last-modified: 2013-08-24 (土) 02:14:21 (3897d)
Top / cronについて
cronについて †
wikiサイトのバックアップシェルを作ったんだけど、これを毎日定時刻に実行したい。
そんなわけで、cronの設定をしてみました。ここのサイトを参考にして笑
へー、簡単!
cronの仕組み †
なにやら、「/etc/crontab」ってやつに、以下のような内容が定義されている。
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
これがcronの定義で、crondがこれをみて実行するらしい。
見方は先のサイトを参照のこと。そのうち転記するかも笑
して、定義の最後の4行でそれぞれ、1時間に1回実行するもの〜1月に1回実行するもの、まで定義されている。
Linuxっておもしろいね〜
だって、標準で、
- 毎時実行するのは毎時1分
- 毎日実行するのは毎日4時2分
- 毎週実行するのは毎週日曜日の4時22分
- 毎月実行するのは毎月1日の4時42分
ってデフォルトで決めちゃってるんだからね〜
しかし、
- 毎時実行したいコマンドは「/etc/cron.hourly」に、
- 毎日実行したいコマンドは「/etc/cron.daily」に、
- 毎週実行したいコマンドは「/etc/cron.weekly」に、
- 毎月実行したいコマンドは「/etc/cron.monthly」に、
実行したいコマンドを入れとけばいい、って仕組みは、なかなか賢い!
cronに登録 †
さてさて、やりたいことは、wikiのデータの日次バックアップだから、「/etc/cron.daily」ディレクトリに、バックアップシェルのシンボリックリンクをつっこみます。
したらこんな感じになります。
# ll /etc/cron.daily/ 合計 68 -rwxr-xr-x 1 root root 379 3月 28 2007 0anacron lrwxrwxrwx 1 root root 39 9月 19 2007 0logwatch -> /usr/share/logwatch/scripts/logwatch.pl -rwxr-xr-x 1 root root 118 7月 31 2007 cups -rwxr-xr-x 1 root root 180 1月 7 2007 logrotate -rwxr-xr-x 1 root root 418 1月 6 2007 makewhatis.cron -rwxr-xr-x 1 root root 137 3月 15 2007 mlocate.cron -rwxr-xr-x 1 root root 2181 11月 22 2006 prelink -rwxr-xr-x 1 root root 114 3月 15 2007 rpm -rwxr-xr-x 1 root root 290 3月 15 2007 tmpwatch lrwxrwxrwx 1 root root 20 9月 19 01:29 wiki_backup -> /root/wiki_backup.sh
さてさて、ちゃんとうごくかな〜