Linuxで定期実行を自動化!cronとcrontabの使い方をわかりやすく解説




はじめに

Linuxサーバーを使っていると、
「毎日夜にバックアップを自動で取りたい」
「一定期間ごとにログを削除したい」
といった 定期的な自動処理 が必要になる場面が多くあります。

そんなときに活躍するのが cron(クロン)crontab(クローンタブ) です。

このテーマは LinuC102試験の重要度★★★(最高ランク) にも設定されており、
出題頻度が非常に高い分野です。
さらに、実務の中でもほぼ必ず使う機能 なので、知っておくと即戦力になります。

この記事では、cronとcrontabの違い、設定方法、そして試験にも出る「エントリの書き方」まで、初心者でも理解できるように整理して紹介します。


cronとは

cron は Linuxで定期的にジョブ(処理)を自動実行するための 常駐プログラム(デーモン) です。

常にバックグラウンドで動作しており、設定されたスケジュールに従ってコマンドやスクリプトを実行します。

  • プログラム名:crond(実行中のプロセス名)

  • 設定ファイル:/etc/crontab/etc/cron.* 系ディレクトリ

たとえば、ログを毎日削除したり、スクリプトで自動バックアップを行うといった処理を行うときに使われます。


crontabとは

crontab(cron table) は、cronが参照する「ジョブのスケジュール表」です。
ユーザーごとに設定でき、実際の設定内容は /var/spool/cron/ユーザー名 に保存されます。

主な操作コマンド:

コマンド 説明
crontab -e ジョブを編集
crontab -l 現在のジョブ一覧を表示
crontab -r すべてのジョブを削除
crontab -u ユーザー名 他のユーザーのcrontabを操作(rootのみ可)

crontabのエントリ構造(書式)

crontabファイルに記載する1行が「1ジョブ」に相当します。
書式は以下の通りです。

分 時 日 月 曜日 コマンド
フィールド 範囲 説明
分(minute) 0–59 何分に実行するか
時(hour) 0–23 何時に実行するか
日(day) 1–31 何日に実行するか
月(month) 1–12 何月に実行するか
曜日(weekday) 0–7 0または7は日曜日
コマンド 実行したいコマンドやスクリプト

🎯 例1:毎日午前3時にバックアップスクリプトを実行

0 3 * * * /home/user/backup.sh

→ 毎日3:00に /home/user/backup.sh を実行


🎯 例2:毎週月曜日の9:30にログを削除

30 9 * * 1 rm -f /var/log/app.log

→ 月曜の9時30分にログファイルを削除


特殊な指定記号

crontabでは、特定の時間パターンを簡単に指定するための記号が使えます。

記号 意味
* 任意の値(全て) * * * * * → 毎分
, 複数指定 0,30 * * * * → 毎時0分と30分
- 範囲指定 1-5 → 月曜〜金曜
/ 間隔指定 */10 * * * * → 10分ごと

また、特殊な表記として以下も利用できます👇

キーワード 意味 実際の指定に相当
@reboot 起動時に実行 システム起動直後
@daily 毎日0:00 0 0 * * *
@weekly 毎週日曜0:00 0 0 * * 0
@monthly 毎月1日0:00 0 0 1 * *
@yearly 毎年1月1日0:00 0 0 1 1 *

crondの動作確認とログ

cronが動作しているかは、次のコマンドで確認できます。

systemctl status crond

また、実際にジョブが実行されたかどうかは以下のログで確認可能です。

/var/log/cron

注意点

  • PATH が通っていないため、コマンドは 絶対パス で指定するのが安全

  • crontab で環境変数を設定したい場合は、ファイルの冒頭で PATHSHELL を定義できる

  • 権限の問題で失敗する場合があるので、対象スクリプトに実行権限(chmod +x)を付けておく


業務でもよく使われる理由

cronは「業務システムの自動化」に欠かせません。
たとえばこんな使い方があります👇

  • 毎日夜間にデータベースのバックアップを取得

  • ログファイルの自動整理

  • 定期的なバッチ処理(請求書作成・データ集計など)

  • シェルスクリプトを使った監視やメンテナンスタスクの自動実行

つまり、cronを理解しておくことは運用エンジニアやインフラエンジニアにとって必須スキル
LinuCの試験対策だけでなく、現場でも確実に役立ちます。


まとめ

cronはLinuxにおける「自動実行の仕組み」の中心的存在です。
特に試験(LinuC102)では以下の点がよく問われます。

  • cronとcrontabの違い

  • crontab -e などの基本操作

  • スケジュール指定の5フィールド構成

  • 特殊キーワード(@dailyなど)

日々のバックアップやログ整理など、実務でも頻繁に使うので、実際に自分で設定して動作確認してみるのがおすすめです!

コメント

タイトルとURLをコピーしました