実務で頻出する「タスク自動化」関連の用語を、一言定義+最小実例でサッと確認。
定期実行やジョブスケジューリングの仕組みを整理し、cron を中心に systemd timer との違いも押さえます。
このページで達成できること
- cron の基本構文を理解
- crontab によるユーザー単位の定期実行を習得
- anacron / systemd timer との違いを整理
- 実務での落とし穴(環境変数の違い・PATH不足)を回避
すぐ引けるミニ索引
| 用語 | 一言で | 代表コマンド/例 |
|---|---|---|
| cron | UNIX 標準のジョブスケジューラ | crontab -e |
| crontab | ユーザーごとのcron設定 | crontab -l |
| フィールド書式 | 分 時 日 月 曜日 コマンド | 0 2 * * * |
| @マクロ | 簡易指定形式 | @daily, @reboot |
| anacron | 実行漏れを後追いする cron | /etc/anacrontab |
| systemd timer | systemd に統合されたスケジューラ | systemctl list-timers |
| /etc/cron.* | cron.daily / hourly 等 | /etc/cron.daily/* |
| logrotate | ログローテーション自動化 | /etc/logrotate.conf |
用語解説(繰り返しブロック)
cron
とは:指定した日時にコマンドやスクリプトを自動実行する仕組み。
最小実例
crontab -e
# 毎日2時にバックアップ実行
0 2 * * * /usr/local/bin/backup.sh
関連:crontab / anacron / systemd timer
落とし穴:シェル環境が限定される → PATH を明示的に設定。
crontab
とは:ユーザーごとの cron 設定ファイル。crontab -e で編集。
最小実例
crontab -l
関連:cron / フィールド書式
落とし穴:root の crontab と /etc/crontab は別管理。
フィールド書式
とは:cron で実行時間を指定する書式。分 時 日 月 曜日 の5フィールド。
最小実例
# 毎週日曜の3時半に実行
30 3 * * 0 /path/to/script.sh
関連:@マクロ / anacron
落とし穴:曜日は環境により 0=日曜 or 7=日曜 の両方が使える。
@マクロ
とは:cron の特別なショートカット指定。
最小実例
@daily /usr/local/bin/backup.sh
関連:cron / フィールド書式
落とし穴:@reboot は起動後の一度きり。
anacron
とは:PCが停止中で実行できなかったcronジョブを、次回起動時に補填実行する仕組み。
最小実例
cat /etc/anacrontab
関連:cron / systemd timer
落とし穴:時間単位の柔軟な制御は不得意。
systemd timer
とは:systemd が提供するジョブスケジューラ。cron の代替として利用可能。
最小実例
systemctl list-timers
関連:systemd service / cron
落とし穴:ユニットファイル作成が必要 → cron より設定は複雑。
/etc/cron.*
とは:システム全体での定期処理用ディレクトリ。
最小実例
ls /etc/cron.daily
関連:cron / logrotate
落とし穴:時間の精密制御はできない。
logrotate
とは:ログファイルを定期的に分割・圧縮・削除する自動化ツール。
最小実例
logrotate -d /etc/logrotate.conf
関連:cron / /etc/cron.daily
落とし穴:rotate 設定を誤るとログが消失する。
運用の現場Tips
- PATH問題に注意:cron は最小環境 →
/usr/bin:/bin程度しかない - 出力の扱い:標準出力・標準エラーはメール送信される →
> /dev/null 2>&1推奨 - anacron でノートPCでも安全:実行漏れ補填に有効
- systemd timer へ移行:依存関係やユニット連携が必要な場合に便利

