FreeBSDでCronジョブを設定するための基本と応用
作成日:2007.10.16
Cronを使って、定期的に処理を自動実行するための設定方法を紹介します。FreeBSD環境でCronを活用するための基本的なコマンドから、便利な応用設定、標準出力やエラー出力の制御方法まで、日常的な運用に役立つノウハウをまとめました。
error この記事は最終更新日から17年以上が経過しています。
FreeBSDでCronジョブを設定するための基本と応用
予め定められたスケジュール通りに、定期的に処理を実行する 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が実行されます。
cron による定期処理をより安心・効率的に運用したい方へ
この記事では FreeBSD/Linux における crontab の基本操作や、定期処理設定(時刻指定、リダイレクト、シェルラッパーの活用など)を丁寧に解説しています。
その上で、以下のような課題をお持ちの方を対象に、より実践的な支援を行っております:
- ジョブ漏れや複数サーバーへの cron 登録ミスを防ぎたい
- 出力制御(stdout/stderr)の設計と通知フローを整備したい
- 環境変数やPATH設定を含めてスクリプトの運用性を向上させたい
- 監視/再実行機能を含めた定期処理の安定運用を目指したい
cron 設定の自動化や運用設計など、技術的な相談から導入支援・実装支援まで、お気軽にお声がけください。

奈良市を拠点に、26年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。
これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。
【制作会社・企業様向けサポート】
Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。
ぜひ、プロフィールやWeb制作会社様向け業務案内、一般企業様向け業務案内もご覧くださいね。
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 の数字が指し示すファイル権限とは?初心者向けに、ファイルのパーミッション設定を理解するための基本的な知識を紹介します。