スキップしてメイン コンテンツに移動

crontabで抜かりなく実行する

crontabは、サーバーサイドプログラミングには付いて回るものなので、備忘録も兼ねてまとめます。




まずは書式

とりあえずはどうやってスケジュールを組むかという事で、crontabを起動させます。とりあえずは、今ログインしているユーザーのスケジュールを確認してみます。
crontab -l

現在設定されているスケジュールが出てきます。もしかするとスケジュールが設定されていなくて表示されない可能性もありますが。

次は実際にcrontabを書いてみます。書く時は
crontab -e

で編集モードへ。だいたいは「vi」や「vim」で起動すると思いますが、一度「pico」というエディタが立ち上がってテンパった事がありますのでbashrcあたりの設定を確認してください。

crontabは指定した時間に指定したプログラムを実行させるものなので、時間とプログラムを1行で書きます。
*    *    *    *    *    echo "test" >> /home/ystream/test.txt

簡単な例ですが、上の例の意味は、「1年365日1分も休むこと無く毎分"test"って吐き続けやがれ」ということです。その結果が「/home/ystream/test.txt」に蓄積されていきます。

時間の指定は5つある「*」で表します。だいたいタブを区切り文字として利用しますがスペースでも構わないようです。
5つの「*」はそれぞれ、「分」「時」「日」「月」「曜日」を示します。

毎時5分に実行 5       *       *       *       *       echo "test"
5分毎に実行 */5     *       *       *       *       echo "test"
日曜の夜中3時5分に実行 5       3       *       *       0       echo "test"
月末の夜中4時0分に実行 0       4       1       *       *       echo "test"
毎日10時から22時の間で
2時間に1回実行
0       10-22/2 *       *       *       echo "test"
毎月5日、10日、15日の
昼12時5分に実行
5       12      5,10,15 *       *       echo "test"

エディタを保存すると、crontabの内容が保存され、スケジュールが開始されます。

また、crontabでプログラムを実行させる時に、日付を引数として取りたい時があります。
5    4    *    *    *    /home/ystream/test.sh `date +'%m%d'`

これはエラーです。dateの使い方は正しいですが、「%」はcronにとって特別な記号のようです。
5    4    *    *    *    /home/ystream/test.sh `date +'\%m\%d'`

と「¥」でエスケープします。bashなどの実際に実行されるプログラムの中で日付を取得する方がスマートかなと思います。

crontabで手抜きでも抜かりはないシステムライフを!


コメント

このブログの人気の投稿

[VB.NET]オレオレ証明書でSSL通信するための短絡的な解決法

VB.NETソフトウェアでサーバーと通信することはよくある事だと思いますが、最近はHTTPを使って明けっ広げに刺しに行くよりHTTPSを使って暗号化してこそこそやった方が時代の流れに即した感じですよね(違うか)。 いちいちテスト環境でSSL証明書を用意するのも面倒だということで、セキュリティ的には全くよろしくない方法で迂回できるので紹介します。

[JS]Canvasでよく使う描画テクまとめ

HTMLで画像をいじくりたい時は、canvasを利用して編集するのは一般的ですが、WindowsストアアプリではHTML+CSS+JSでのアプリ開発ができる事もあって、簡単な画像編集であれば、C#やVBを使うより分かりやすいし資料が多く、C++でDirectXをガリガリ書くよりお手軽。入出力もファイルピッカーを使えば簡単に実装できます。今回は、Windowsのコードではなく、Canvasを利用する時のJavaScriptを使いどきに合わせてまとめていきます。

curl の基本的な使い方 -設定編-

今回のcurl TIPSは、curlをより日常的に使っていくためのHow toです。curlには、数多くのオプションが用意されていて、それらを組み合わせる事で様々な事が楽になるでしょう。サービス監視の自動化などにはまさにcurlの得意分野です。 今回は、curlを更に自分のものにしていくために大事なカスタマイズの部分を解説します。