[ Solaris ] cron 設定の確認と編集 ( crontab )

Pocket

定期的に実行したい処理(スクリプトなど)を cron に登録して毎時、毎日のように実行させることができます。Windows のタスクスケジューラーのようなものでしょうか。ここでは、cron の設定の確認および編集方法について掲載しています。

スポンサーリンク

cron の設定内容を確認する

cron の現在の設定を確認するにはコマンド 『 crontab -l 』 を実行します。

bash-3.00$ crontab -l   # cron の設定内容を参照する

#ident  "@(#)root       1.11    03/03/13 SMI"
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#
# The rtc command is run to adjust the real time clock if and when
# daylight savings time changes.
#
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___
bash-3.00$

cron の設定を編集する

cron の設定内容を編集するにはコマンド 『 crontab -e 』 を実行します。なお、vi モードで編集したい場合は、事前に環境変数 EDITOR=vi のように登録しておかないと編集することはできません。

bash-3.00$ EDITOR=vi      # 編集するエディタを設定
bash-3.00$ export EDITOR  # 環境変数のエクスポート
bash-3.00$ crontab -e     # cron の設定内容を vi で編集する

#ident  "@(#)root       1.11    03/03/13 SMI"
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#
# The rtc command is run to adjust the real time clock if and when
# daylight savings time changes.
#
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___

設定方法の説明

デフォルトで登録されているログローテーションを行う logadm を例に設定方法を説明します。下記の例では、毎日 3時 10分にログのローテーションが実行されます。(アスタリスクは有効な値の全てを有効にする記述方法)

分 時 日 月 曜日  実行コマンド
-------------------------------------------
10  3  *  *    *  /usr/sbin/logadm

設定の詳細は以下の通りです。

分   -   0~ 59 
時   -   0~ 23
日   -   1~ 31
月   -   1~ 12
曜日 -   0~  6 (日曜日(0) 月曜日(1) ・・・)

その他、詳細を確認するには 『 man crontab 』 コマンドで確認することができます。以下に man ファイルの内容から使用頻度の高そうなものを一部抜粋して掲載します。

連続した範囲を指定する設定

平日 (月 – 金) の午前 3 時 15 分に core ファイルを削除する設定例です。ハイフンで連続した範囲の設定を行っています。

15 3 * * 1-5 find $HOME-namecore 2>/dev/null | xargs rm-f

日付と曜日を同時に指定する

この例では、毎月 1 日と 15 日、さらに毎週月曜日にコマンドが実行されます。カンマで区切ることで複数の値を設定できます。

0 0 1,15 * 1
スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>