目次
目標
- ジョブスケジューリングについて理解する
ジョブスケジューリング
ジョブスケジューリング
ジョブスケジューリングとは、指定した時間やタイミングで自動的にコマンドやスクリプトを実行する仕組みのことです。ツール・仕組みについては以下の通りです。
ツール/仕組み | 用途 |
---|---|
cron / crond | 定期的な繰り返しタスク(毎日、毎週など) |
crontab | ユーザーがスケジュールを設定するコマンド・ファイル |
anacron | マシンが止まっていた間の定期タスクを後で実行 |
at | 一度だけ実行するタスクをスケジュール |
アクセス制御 | 実行を許可/拒否するための制御ファイル(cron.allow/cron.deny など) |
cron / crond の仕組み
● cronとは?
- 定期的に繰り返すタスクを実行するための仕組みです。
- 例えば「毎日3時にバックアップを実行する」といった処理に使います。
● crondとは?
- cronのデーモンプロセスです。常駐していて、各ユーザーのスケジュールを監視し、時間になると処理を実行します。
- システム起動時に自動起動します(systemd: crond.service)。
# 状態確認
systemctl status crond
# 起動・停止
sudo systemctl start crond
sudo systemctl enable crond
crontab(設定方法とファイル構成)
ジョブをスケジューリングするにはcrontabファイルに実行したい「処理内容(コマンドやスクリプトへのパス)」と「実行タイミング(分・時・日など)」を記述・保存します。
● crontabコマンド
- ユーザーが自分のスケジュール(ジョブ)を設定・編集するためのコマンド。
- ユーザーごとに1つのcrontabファイルが作られます。
crontab -e # 編集
crontab -l # 一覧表示
crontab -r # 削除
コマンド | 説明 |
---|---|
crontab -e | 現在のユーザーのcrontabファイルを編集(初回はエディタ選択が出ます。エディタを使って保存すると、自動的に反映されます。サービス再起動は不要です。) |
crontab -l | 登録済みのジョブを表示します。 |
crontab -r | 現在のユーザーのcrontabファイルを削除します。※確認なしで削除されるので注意 |
crontab -u ユーザー名 | (rootのみ)他ユーザーのcrontabを操作可能 |
● crontabファイルの書式(スケジュール定義の行:基本構文)
- 分 時 日 月 曜日 コマンド
30 2 * * * /usr/local/bin/backup.sh
フィールド | 意味 |
---|---|
分 | 0–59 |
時 | 0–23 |
日 | 1–31 |
月 | 1–12 |
曜日 | 0–7(0と7は日曜) |
● 特殊記号の使い方
記号 | 意味 | 使用例 |
---|---|---|
* | 毎回(ワイルドカード) | 毎日、毎時間など |
, | 複数指定 | 1,15(1日と15日) |
– | 範囲指定 | 1-5(月〜金) |
/ | 間引き指定 | */10(10分おき) |
● crontabファイルの場所
種類 | 場所 | 用途 |
---|---|---|
ユーザーのcrontab | /var/spool/cron/ユーザー名 | 個別設定 |
システム全体のcron設定 | /etc/crontab | rootが管理 |
cron.d用の設定 | /etc/cron.d/ | ファイル単位で定義可能 |
定期ディレクトリ | /etc/cron.hourly/ など | スクリプトを置くだけでOK |
anacron
anacronはcronの弱点を補った機能をもっています。
● cronの弱点:
PCが電源OFFになっていた時間帯のジョブは実行されない
● anacronの役割:
マシンが起動したときに、前回実行されなかった日次・週次のジョブを補完実行する。
● 主な使用場所:
デスクトップPC、ノートPCなど常時稼働しない環境
● 設定ファイル
/etc/anacrontab
● 設定の形式
周期(頻度) 遅延(分) ジョブID コマンド
次は設定例
# /etc/anacrontab - example configuration
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 日数 遅延 ID 実行コマンド
1 5 cron.daily nice run-parts /etc/cron.daily
7 10 cron.weekly nice run-parts /etc/cron.weekly
30 15 cron.monthly nice run-parts /etc/cron.monthly
# カスタム追加:毎日バックアップスクリプト実行(起動後2分後に)
1 2 backup /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
フィールド | 説明 |
---|---|
周期 | 単位は「日数」(例:1=毎日、7=毎週、30=毎月) |
遅延 | 起動からジョブを実行するまでの遅延時間(分) |
ジョブID | ログファイルで使われる識別子 |
コマンド | 実行したいシェルコマンドまたはスクリプトのパス |
at コマンド(単発ジョブ)
● 用途:
- 一度だけ実行するジョブを予約したい場合に使用。
- 例:明日午前3時にバッチ処理を1回だけ走らせたい
● 設定方法
at 03:00 tomorrow
at> /path/to/script.sh
Ctrl+D
コマンド | 説明 |
---|---|
atq | ジョブ一覧の表示 |
atrm | ジョブの削除 |
at -c <ジョブID> | ジョブ内容の確認 |
アクセス制御(cron / at)
● cronのアクセス制御
ファイル | 役割 |
---|---|
/etc/cron.allow | 記載されたユーザーのみが使用可能 |
/etc/cron.deny | 記載されたユーザーは使用不可 |
※ cron.allow がある場合はそちらが優先され、deny は無視されます。
● atのアクセス制御
ファイル | 役割 |
---|---|
/etc/at.allow | 記載されたユーザーのみが at 使用可 |
/etc/at.deny | 記載されたユーザーは at 使用不可 |
※ cronと同様、allow が優先されます。
どれを使うべきか
ツール | 向いている用途 |
---|---|
cron(+crontab) | 定期的なバックアップや監視処理など、繰り返し型の処理 |
anacron | cronと同じだが、マシンが停止中でもカバーしたい場合(ノートPCなど) |
at | 一度きりの処理(例:メンテナンス後に再起動をスケジュール) |
今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...

【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...