cron がどのようにスケジュールされたジョブを実行するか、crontab の5つの時間フィールド、システム cron ファイルの場所、および systemd タイマーとの比較について解説します。
cron は、スケジュールに従ってコマンドを実行する古典的な Unix デーモンです。各ユーザーは crontab -e で編集する crontab を持ち、各行には5つの時間フィールド(分、時、日、月、曜日)とそれに続くコマンドが記述されます。システムジョブは /etc/crontab および /etc/cron.d/ に配置されます。
'30 2 * * *' は毎日 02:30 を意味し、'*/10 * * * *' は10分ごと、'0 9 * * 1' は毎週月曜日の 09:00 を意味します。曜日の 0 と 7 は日曜日です。
/etc/cron.d/ および /etc/crontab 内のファイルには、時間とコマンドの間にユーザー名という追加のフィールドがあります。/etc/cron.daily のようなディレクトリには、1日1回実行されるスクリプトが格納されています。
cron は最小限の環境で実行されます。フルパスを使用するか、crontab 内で PATH を設定してください。出力は所有者にメール送信されるか破棄されるため、ログファイルにリダイレクトしてください。% 文字は crontab 行内で特別な意味を持つため、\% としてエスケープする必要があります。
systemd を採用しているディストリビューションでは、.timer ユニットが代替手段となります。これにはジャーナルへのログ記録、ランダムな遅延、および実行されなかったジョブの補完(Persistent=true)といった機能があります。
crontab -e/usr/local/bin/backup.sh >> /var/log/backup.log 2>&1crontab -lcrontab -r' は確認なしで crontab 全体を削除します。最終更新: 2026-10-08
systemd ユニットの概要、一般的なユニットタイプ、および systemctl を使用してサービスを開始、停止、有効化、確認する方法について解説します。
logrotateの機能、/etc/logrotate.confおよび/etc/logrotate.dでの設定方法、ルールを安全にテストする方法について解説します。
journalctl を使用したログの読み取り方法、ジャーナルが使用している容量の確認方法、および --vacuum オプションを使用して安全に縮小する方法について解説します。