Cron によるプログラムの自動実行
VPS v2 では、決められた時間にコマンドを自動実行する cron デーモンが使えます。cron として登録されたコマンドは cron table あるいは crontab として保存されます。VPS v2 では、Shell へのアクセス権を持つユーザーは、固有の crontab を使って、あらかじめ決められた日時にコマンドを自動実行させることができます。
crontab の作成
crontab は任意の名称で、ユーザー権限内の任意のディレクトリーに保存できます。例えば、ファイル名 cronjobs の名称でユーザーのホームディレクトリーに作成あるいはアップロードできます。ユーザーは一つの crontab だけを持つことができます。crontab の各行は、環境変数設定行、cron table 登録行、 # で始まるコメント行のいずれかとなります。crontab には複数の指定を行うことができます。
crontab の環境変数設定は以下のようになります。
NAME = VALUE
cron の環境変数には SHELL、LOGNAME、USER、HOME が含まれます。それらに加えて、MAILTO 環境変数があります。cron によって生成された全ての出力が MAILTO で指定されたアドレスに送付されます。(指定されていない場合は、crontab の所有者ユーザーに送られます)以下のように、MAILTO が空文字として指定された場合はメールは送られません。
MAILTO = ""
cron table 登録は 5 個の時間欄とそれに続くコマンド欄となります。コマンドは時間欄で指定された時間に実行されます。5 個の時間欄の意味は以下です。
欄 可能な値
----- --------------
分 0-59
時 0-23
日付 1-31
月 1-12, jan, feb, mar, apr, may, jun, jul, aug, sep, oct,
nov, dec
曜日 0-7, sun, mon, tue, wed, thu, fri, sat (0 = "sun", 7 = "sun")
各欄にはアスタリスク (*) が使えます。アスタリスクは欄が受取れる全ての時間を意味します。
また、範囲指定も可能です。例。2-5、8-11
リスト指定、範囲指定を含むリスト指定、も可能です。例。1,3,5、1,3,8-11
/ で一定間隔ごとの時間指定ができます。例。0-59/15、1-31/3、*/2
パラメータを含むことのできるコマンド指定が cron table の 6 番目で最後の欄になります。
注意: cron table の各行は改行マークで区切られている必要があります。改行マークが確実に含まれていることを確認下さい。自信がない場合は、空行を入れるのも良いかもしれません。 |
以下は、vnukelog コマンド実行の事例です。
# cron によって生成された全ての出力が MAILTO で指定された
# アドレス "webmaster@mycompany.com" に送付されます
MAILTO="webmaster@mycompany.com"
# "vnukelog" コマンドを毎日午前 1:15 (15 1) に実行します
15 1 * * * /usr/local/bin/vnukelog
# "vnukelog" コマンドを毎月一日 (1) 午後 11:40 (40 23) に実行します
40 23 1 * * /usr/local/bin/vnukelog
# "vnukelog" コマンドを月曜日から金曜日まで (1-5)
# 午前 9 時と午後 5時 (9,17) 台の
# 前半 30 分間に 10 分おきに (0-30/10) に実行します
0-30/10 9,17 * * 1-5 /usr/local/bin/vnukelog
# "vnukelog" コマンドを毎年一月 (jan) の日曜日毎 (sun)
# 午前四時、午前八時、正午、午後四時、午後八時、(0 */4) に実行します
# 00:00 と 24:00 のどちらにも実行されません
0 */4 * jan sun /usr/local/bin/vnukelog
# "vnukelog" コマンドを毎月 (*) 毎週金曜日 (fri) かつ一日と十五日 (1,15)
# 午前 4:30 (30 4) に実行します
30 4 1,15 * fri /usr/local/bin/vnukelog
# "vnukelog" コマンドを毎年八月十九日 (19) (8)、(19) (aug)
# 零時 (0 0) に実行します
0 0 19 8 * /usr/local/bin/vnukelog
0 0 19 aug * /usr/local/bin/vnukelog
crontab の登録
crontab を設定するユーザー権限で、以下のように crontab -e コマンドを実行します。
# crontab -e
vi の編集画面が表示されますので、設定を記述・保存してください。
crontab を設定していない状態で、この作業を実行した場合の、保存ファイルは /var/cron/tabs/user_name になります。
既に登録した crontab がある場合はそのファイルが開きます。
ユーザーのホームディレクトリーに cronjobs の名前で設定を保存した場合、以下の例のように crontab コマンドを実行してシステムに登録する必要があります。
# crontab ~/cronjobs
上記によって、~/cronjobs が cron システムデーモンに登録されます。cron システムデーモンに登録済みの内容の表示は以下のコマンドで行います。
# crontab -l
root ユーザーによる、他のユーザーの登録済み内容の表示は以下コマンドで行います。
# crontab -u USER -l
詳細説明
以下のコマンドで cron と crontab のマニュアルが読めます。
# man cron
# man crontab
# man 5 crontab
SPEEDEX サポートポリシー
Copyright @ Cyber Vision Hosting Co., Ltd. All rights reserved.
Email: support@speedex.ne.jp
株式会社サイバービジョンホスティング提供サービス一覧
再販売用レンタルサーバーのSPEEDEX | VPS(仮想専用サーバー) | 共用サーバー | 独自ドメイン取得・運用 | SSLサーバー証明書 | ワイルドカードサーバー証明書 | SEO | Google Apps(TM) | クリエイティブワークの検索エンジン
|