2010年10月22日

cronの設定

Linuxで定期的に実行した処理がある場合は、cronを使うと便利ですよね。という事でcrontabメモです。

最終的にはこんなcrontabになるよ


毎時の0-30分の間を5分間起きにhoge.jarを実行し、ログをhoge.log、エラーログをhoge_err.logに
出力する時のcrontabは下記のようになります

PATH=パス
HOME=カレントパス

# m h dom mon dow command
0-30/5 * * * * java -jar hoge.jar >> hoge.log 2>>hoge_err.log

↓で順々に解説します。

crontab確認



> crontab -l

で現在設定中のcrontabが表示されます。

crontab編集



> crontab -e

と入力するとエディタが立ち上がります。

crontab書式


基本の記述書式は
「m h dom mon dow command」で「分 時 月 日 曜日 コマンド >> hoge.log 2>>hoge_err.log」
です。「hoge.log」が通常ログの出力先で「hoge_err.log」がエラーログの出力先になります。

実行時間指定では下記の記述方法が使えます
・ワイルドカード(*)
*だと項目は条件なしで全部該当します。
・範囲指定
[数値-数値]で範囲指定になります。

・1分から5分まで毎分
1-5 * * * * java -jar hoge.jar
・9分から12分まで毎時
* 9-12 * * * java -jar hoge.jar

・複数値指定
[数値、数値、数値...]で複数数値指定になります。

・1分から5分まで毎分
1,2,3,4,5 * * * * java -jar hoge.jar
・9分から12分まで毎時
* 9,10,11,12 * * * java -jar hoge.jar

間隔指定
[数値/間隔]で指定する事ができます。数値の所には、「数値、ワイルドカード、範囲指定」が
使用できます。

・5分起きにhoge.jarを実行する
*/5 * * * * java -jar hoge.jar
・1-30分まで5分起きにhoge.jarを実行する
1-30/5 * * * * java -jar hoge.jar

pathを通す


cronから実行するとパスが通っていない状況で実行されるので実行するコマンドによっては実行できない事がありますので、crontabの最初に

PATH=パス

を記述する必要があります。「パス」の部分に記述するパスですが、

> env

で表示される

PATH=パス

を記述しておけば大丈夫だと思います。

cron実行時のカレントディレクトリを指定する


cron実行時にどのディレクトリで実行するかを指定する事ができます。コマンドで実行するプログラムが相対パスを使用している場合などは指定しておかないと正常に動かない場合があります。
crontabに

HOME=パス

を指定します。「パス」の部分は、実行するコマンドがある場所で良いと思います。


ラベル:Linux ubuntu
posted by purigen at 00:20| Comment(0) | TrackBack(0) | Ubuntu | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。