技術資料

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 に適切な設定を追加し、ホスト名と対応するディレクトリを指定する方法を紹介します。

UNIX/Linux

定期的なFTPバックアップ転送を自動化する方法

2009.09.14

FTPを使用して、定期的にサーバー間でバックアップデータを転送する方法を解説します。シェルスクリプトとcronを使って、毎日自動的にバックアップを転送する仕組みを作る手順を紹介します。

FTP UNIX/Linux

さくらのレンタルサーバーでメール受信時にスクリプトを起動する設定方法

2009.04.05

さくらのレンタルサーバーで、メール受信時に特定のスクリプトを自動で実行するための設定方法を詳しく解説します。必要なアカウント設定から、メール転送設定、スクリプトの実行権限設定までを一通り紹介します。

UNIX/Linux

パーミッション初心者ガイド:755 と 666 の違いを理解する

2009.03.17

755 や 666 の数字が指し示すファイル権限とは?初心者向けに、ファイルのパーミッション設定を理解するための基本的な知識を紹介します。

UNIX/Linux

阿部辰也へのお仕事の依頼・お問い合わせ

お名前 *必須
会社名
メールアドレス *必須
電話番号
URL
お問い合わせのきっかけ
お問い合わせの内容 *必須
個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP