クーロン設定での小技集。設定の基本と、ちょっとしたテクニックを紹介

Linux

今回は、ちょっと特殊なクーロン設定を、まとめる形で紹介していきます
実際の業務でクーロンの設定をおこなう際、“あれ?あの設定でどうやるんだっけ?”というときに役立つTIPS集としてまとめます。


何か思いだしたら都度追記していきます。


クーロン設定の基本


まずは設定の基本を紹介します。
クーロン設定は以下の書式になります。

分  時  日  月  曜日 ユーザ名  コマンド

0分から59分までを定義
0時から23時までを定義
1日から31日までを定義
1月から12月までを定義。英字略形も可(jan,feb…dec)
曜日 0から7までを定義。0が日曜。英字略形も可(sun,mon…sat)

各定義について、リスト定義と範囲体後のどちらも可能です。

リスト 1,5,10 指定した値の場合のみ実行
範囲 1-5 指定した値の範囲内であれば実行
共存 1,5,10-15 リストと範囲の混在定義
間隔 1-5/2 「/」の後に間隔値を定義。左記の例だと「1,3,5」

月末に1回だけ動く


“月末に1回だけ動く”といったクーロン設定について紹介します。

結論を先に言いますと、以下の設定でOKです。


59 23 28-31 * * root   /usr/bin/test `date -d tomorrow +\%d` -eq 1 && sh /home/root/sample.sh

これで、”月末に1回だけ動く”というクーロン設定になります。

各設定の詳細について説明してきます。

前半部分が「月末」の定義です。

59 23 28-31 の部分ですね。


毎月、28日、29日、30日、31日の、23時59分にクーロンを動かせる設定になります。
でもこのままだと、月末に1回だけではなく、最大4回動いてしまいます。

なので、次の日が”1日”だったらという条件を追加します。
つまり、3月だと3月31日の次の日が1日(4月1日)だったら月末、
9月だと9月30日の次の日が1日(10月1日)だったら月末、という事ですね。


その計算が、/usr/bin/test `date -d tomorrow +\%d` -eq 1 &&  です。


testコマンドで条件を記述しています。
「date -d tomorrow +\%d」の返り値が1だったら月末と判定します。


この条件を28日から31日に動かすことによって、月末1回動作します。


標準出力をさせない


クーロンで実行したプログラムの実行結果が標準出力されることを防ぐためには、クーロン設定の末尾に標準出力を無しにする記述をおこないます。

55 23 28-31 * * root   /usr/bin/test `date -d tomorrow +\%d` -eq 1 && sh /home/root/sample.sh > /dev/null 2>&1

標準出力をなし(NULL)にします。
これで、標準出力はおこなわれません。



sakusaku

都内でSIerをやっています。 使用している技術は、Java、PHP、MySQL、PostgreSQL、Oracle、Apache、Tomcat、あたりです。 Pythonやってみたいです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


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