cronデーモンはジョブ(スクリプト)を自動実行するためのデーモンプロセス。Windowsでいうところの「タスク」に相当するもの。
パッケージのインストール
インストール時にすべてを選択していれば、すでにインストールされているはず。もし、インストールされていない場合は「setup.exe」を実行し、カテゴリ「Admin」の中から「cron」をインストールする。
インストールされているかどうのチェックは「cygcheck」で行う。
サービスのインストール
サービスとしてインストールするためにconfigを設定する。質問には適当に答えていく。
$cron-config
Do you want to install the cron daemon as a service? (yes/no) yes ・・・ Enter the value of CYGWIN for the daemon: [ntsec smbntsec] ntsec smbntsec ・・・ Do you want to the cron daemon to run as yourself? (yes/no) no ・・・ Do you want to continue anyway? (yes/no) yes ・・・ Do you want to start the cron daemon as a service now? (yes/no) yes
サービスの確認
サービスとしてインストールされたかどうかを確認する。確認にはcygwin側からは「cygrunsrv」コマンドを使って確認することができる。
$cygrunsrv -Q cron Service : cron Display name : Cron daemon Current State : Running Controls Accepted : Stop Command : /usr/sbin/cron -n
「Current State」がRunningになっていればOK。
Windows側からは「管理ツール」→「サービス」で「Cron daemon」が登録されていて、状態「開始」スタートアップの種類:「自動」になっていればOK。
またcronのイベントログから動作を確認することもできる。
$cronevents 2008/06/26 20:07:44 [SYSTEM] /usr/sbin/cron: PID xxxx: (CRON) STARTUP (V5.0) 2008/06/26 20:07:45 [SYSTEM] cron: PID xxxx: `cron' service started
Cronの設定
ジョブの設定は「crontab」コマンドから行う。
$crontab [ -l | -r | -e ]
-l オプションは、現在の crontab を標準出力へ表示させる。
-r オプションは、現在の crontab を削除する。
-e オプションは、環境変数 VISUAL もしくは EDITOR で指定されているエディターを使って、現在の crontab を編集するのに使われる。 編集終了後、変更された crontab は自動的にインストールされる。
crontabでの書式
各フィールドで使用できる値の範囲
| フィールド |
値
|
| 分 |
0~59 |
| 時 |
0~23 |
| 日 |
1~31 |
| 月 |
1~12 |
| 曜日 |
0~7 [0,7は日曜日] |
| コマンド |
Bourne Shellの書式に従って記述 |
各フィールドでの値の範囲の指定方法
| 指定方法 |
サンプル
|
コメント |
| リスト |
0,1,5 |
カンマ区切りで複数を指定 |
| 範囲 |
1-5 |
ハイフンを使って範囲を指定 |
| 間隔値 |
1-5/2 |
範囲の中を指定した間隔で指定 |
| 共存 |
1-5/2.8 |
組み合わせて指定 |
| すべて |
* |
範囲すべてを指定 |
crontabの設定サンプル
# (/etc/passwd の指定に関らず) コマンド実行に /bin/sh を使用する。 SHELL=/bin/sh # (この crontab の所有者に関らず) あらゆる出力を `xxxx' にメールする。 MAILTO=xxxx # メールをしない MAILTO=""
# 毎日 0:05に実行する 5 0 * * * /bin/xxxxx # 5分おきに実行する */5 * * * * /bin/xxxxx # 1時、3時、9時から12時の05分に実行する 5 1,3,9-12 * * * /bin/xxxxx # 1時、3時、5時の0分に実行する 0 1-5/2 * * * /bin/xxxxx # 月曜日の3時に実行する 0 3 * * 1 /bin/xxxx
SSH
FTP
|