FreeBSDでCronジョブを設定するための基本と応用
2007.10.16
error この記事は最終更新日から17年以上が経過しています。
予め定められたスケジュール通りに、定期的に処理を実行する cron 。
この名前はギリシャ神話の時の神クロノスから取ってるそうな。
以下、FreeBSDでのcron利用方法。
現在登録しているスケジュールの設定を表示するには、シェル上で、
% crontab -l
とする。
スケジュール設定を編集する時は、
% crontab -e
とすると、エディタが起動し、設定ファイル編集画面になる。
設定ファイルの記述方法は、一行につきひとつのスケジュールで、
分 時 日 月 曜日 コマンド
という形式。
「分 時 日 月 曜日」のそれぞれには * が使える。
例えば、サーバーのアクセスログを解析する /home/amethyst/src/analyze.pl というperlスクリプトを作った後、それを毎日朝の5時に実行したい、という時は、
0 5 * * * /usr/local/bin/perl /home/amethyst/src/analyze.pl
とすれば良い。
曜日は0が日曜で6が土曜となる。
毎週月曜と木曜の13時にcommandを実行したいなら、
0 13 * * 1,4 command
となる。
上記の例のように、コンマで区切ることで複数の条件を指定することができる。
標準出力に出力されるコマンドの実行結果は、設定したアカウントのメールアドレス宛に送信される。
結果をメールで受け取りたくない場合は、出力を /dev/null に渡せば良い。
0 13 * * 1,4 command 1> /dev/null
上記のように設定しても、標準エラー出力に対する出力(要するに何らかのエラーがあった際のメッセージ)はメールで送信される。
エラー出力もメールで受け取りたくい場合は、
0 13 * * 1,4 command /dev/null 2>&1
とすれば良い。
cronからのコマンド実行時は環境変数がほとんど設定されないことが多いので、cronから直接コマンドを実行するよりも、最初からシェルスクリプト内に環境変数設定とコマンドを書いて、cronからそのシェルスクリプトを実行した方が余計な手間が省けることが多い。
例えば、10分毎になんらかのプログラムを起動するするように設定したい場合、
0,10,20,30,40,50 * * * * command
と書けばいいわけですが、ちょっとめんどくさいですよね。
そういう場合は、
*/10 * * * * command
と書けば、10分毎にcommandが実行されます。
Apacheでホスト名を設定する方法—httpd.conf での設定手順
2010.04.03
Apacheで特定のホスト名でアクセスできるように設定する方法を解説します。httpd.conf に適切な設定を追加し、ホスト名と対応するディレクトリを指定する方法を紹介します。
定期的なFTPバックアップ転送を自動化する方法
2009.09.14
FTPを使用して、定期的にサーバー間でバックアップデータを転送する方法を解説します。シェルスクリプトとcronを使って、毎日自動的にバックアップを転送する仕組みを作る手順を紹介します。
さくらのレンタルサーバーでメール受信時にスクリプトを起動する設定方法
2009.04.05
さくらのレンタルサーバーで、メール受信時に特定のスクリプトを自動で実行するための設定方法を詳しく解説します。必要なアカウント設定から、メール転送設定、スクリプトの実行権限設定までを一通り紹介します。
パーミッション初心者ガイド:755 と 666 の違いを理解する
2009.03.17
755 や 666 の数字が指し示すファイル権限とは?初心者向けに、ファイルのパーミッション設定を理解するための基本的な知識を紹介します。