ホーム > パッケージ・システム管理 > cron

cron: 定期的なタスクスケジューリングデーモン

cronは、指定された時間にコマンドやスクリプトを自動的に実行するLinux/Unixシステムのデーモン(バックグラウンドサービス)です。主にcrontabコマンドを通じて、ユーザーまたはシステム管理者がタスク(cron job)を登録・管理します。このデーモンはシステム起動時に自動的に開始され、バックグラウンドで実行され、登録されたタスクを定期的に確認・実行します。

概要

cronデーモンはシステムのコアサービスの一つであり、繰り返しタスクの自動化に使用されます。ユーザーはcrontabファイルを通じて、実行するコマンド、実行時刻、周期などを設定できます。システム全体に適用されるcrontabファイル(/etc/crontab)と、個々のユーザーごとのcrontabファイルが存在します。

主な特徴

  • 時間ベースのタスクスケジューリング
  • ユーザー別/システム全体タスク管理
  • バックグラウンドでの自動実行
  • 定期的なシステムメンテナンスおよび自動化に活用

主なオプション

cronデーモンは通常、システム起動時に自動的に開始され、直接コマンドラインで実行することは稀です。以下のオプションは、主にcronデーモンを手動で開始したり、デバッグしたりする際に使用されます。ユーザーは主にcrontabコマンドを通じてcronタスクを管理します。

デーモン制御とデバッグ

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`cron` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

cronデーモン自体を直接実行する機会は少なく、主にsystemctlで状態を確認したり、crontabでタスクを管理したりします。

cronサービスの状態確認

systemctl status cron

cronデーモンが現在実行中か確認します。

現在のユーザーのcrontabファイル編集

crontab -e

現在のユーザーのcronタスクを追加、修正、または削除します。

現在のユーザーのcrontabタスク一覧表示

crontab -l

現在のユーザーに登録されているすべてのcronタスクを出力します。

システムcrontabファイルの内容表示

cat /etc/crontab

システム全体に適用されるcronタスクを確認します。(修正時は注意が必要)

cronサービス再起動

sudo systemctl restart cron

cron設定変更後、デーモンに適用するためにサービスを再起動します。

ヒントと注意点

cronタスクを効率的かつ安全に管理するためのヒントと注意点です。

主なヒント

  • **環境変数**: crontab環境ではシェル環境変数が制限されることがあるため、スクリプト内で必要な環境変数を明示的に設定するか、絶対パスを使用することをお勧めします。
  • **ログ確認**: cronタスクが予期した通りに実行されない場合、syslogまたはjournalctl -u cronコマンドでログを確認し、問題の原因を特定できます。
  • **出力リダイレクション**: cronタスクの標準出力(stdout)と標準エラー(stderr)は、デフォルトでタスク実行ユーザーにメールで送信されます。不要なメール送信を防ぐには、出力を /dev/null にリダイレクトするか、ログファイルに保存する必要があります(例: `command > /path/to/log.log 2>&1`)。
  • **@reboot 使用**: システム再起動時に一度だけ実行する必要があるタスクには、`@reboot` キーワードを使用できます。
  • **crontab構文**: `分 時 日 月 曜日` の形式のスケジュール構文を正確に理解して使用する必要があります。

同じカテゴリのコマンド