cron(スケジューラ)

 「cron」とは特定の時間になったらコマンドを実行する為の「デーモン」(バックグラウンドで実行されるプログラム)で、「cron」というコマンドを使うのではなく、「vim」などを使って「crontab」と言うファイルを編集します。

 以下の方法で行います。

 # vim /etc/crontab

スケジュール設定としては以下のようにルールの記述となっています。

 * * * * * <ユーザー名> <コマンド>

「*」はそれぞれ左から以下の意味を持ちます。

分 (00-59)
時 (00-23)
日 (01-31)
月 (01-12 「jan」や「feb」でも可)
曜日(0-7 0と7は日曜日、「sun」や「mon」でも可)

 また複数の指定がある場合、例えば1と2と3と個別に指定する場合は「1,2,3」、範囲の指定をする場合は「1-3」と言う風に指定できます。

 等間隔で実行をしたい場合、例えば20分間隔での実行の場合は「*/20 * * * *」と言う風に指定できます。

 ユーザー名にはコマンドを実行するユーザー権限を指定します、例えばシステムのアップグレードをする場合は「root」の様に設定します。

 コマンドはそのディストリビューションにインストールされているコマンドを入力すれば良いです、オプションも使えます。


cronのユーザー別設定

 上記で書いた内容では、/etc/crontabの編集とりますので、「root」しか編集が出来ません。
個人的にスケジュールを設定する方法もあります。

 以下の方法で行います。

 $ crontab -e

 スケジュールの設定方法は上記と同じです。ただ「crontab」コマンドは決してオプション無しでは使用しないで下さい。

オプションは以下の物になります

 -e
  「vi」エディタが立ち上がり、スケジュールの設定が出来ます

 -l
  設定した「crontab」ファイルの閲覧

 -r
  設定した「crontab」ファイルの削除

 -u <ユーザー名>
  指定したユーザーの設定した「crontab」ファイルの閲覧
    ※このオプションは「root」のみ指定が出来ます。


cronの履歴(log)について

 実行履歴の確認をする方法として、実行者にメールを送る方法があります。
「crontab」ファイル内の上位部分に以下の設定を、入力または編集します。

 MAILTO=<メールアドレスorユーサー名>

 またこの部分を空にすればメールは送られません。
 一部分の結果を省きたい場合はスケジュールの設定部分に以下の設定をします。

 <コマンド> > /dev/null 2>&1

 最後に何らかのエラーで実行されなかった履歴については「/var/log/cron」内に出力されますので、最初はここをチェックすると良いでしょう。

コマンド

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください