トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

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

さてさて、ちゃんとうごくかな〜