0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Linux] ジョブスケジューリング_cron, crontab, at, batch, systemdのTimerUnit, systemd-run, systemctl list-timers

Last updated at Posted at 2025-06-11

crontabコマンド

$ crontab [オプション]
オプション 由来 説明
default user crontab 現在のユーザーのcronテーブルを操作
-e edit 現在のユーザーの cron ジョブをエディタで編集します
-l list 現在のユーザーのcron ジョブを一覧表示します
-r remove 現在のユーザーのすべての cron ジョブを削除します

crontabファイルの書式

分 時 日 月 曜日 コマンド
フィールド 意味 許容値
0〜59 毎時の何分 30(毎時30分)
0〜23 24時間表記の何時 14(14時)
1〜31 月の何日 1(毎月1日)
1〜12 月(1=Jan) 6(6月)
曜日 0〜7(0=日) 週の何曜日 1(月曜)
コマンド 実行内容 任意のコマンド /usr/bin/backup.sh

設定ファイル

ディレクトリ/ファイル 由来 システム 説明
/etc/crontab cron table cron - システム全体の cron ジョブを定義する設定ファイル
- ユーザー指定フィールドを含む
/etc/cron.allow allow list for cron cron - crontab コマンドを使ったジョブ登録を許可するユーザーを列挙するファイル
- 存在する場合、/etc/cron.deny は無視される
/etc/cron.deny deny list for cron cron - crontab コマンドを禁止するユーザーを列挙するファイル
- /etc/cron.allow が存在しないときのみ有効
/etc/cron.hourly/ hourly job directory cron - 毎時実行されるスクリプトを配置するディレクトリ
/etc/cron.daily/ daily job directory cron - 毎日実行されるスクリプトを配置するディレクトリ
/etc/cron.weekly/ weekly job directory cron - 毎週実行されるスクリプトを配置するディレクトリ
/etc/cron.monthly/ monthly job directory cron - 毎月実行されるスクリプトを配置するディレクトリ
/etc/cron.d/ cron directories cron - 個別の cron 設定ファイルを配置するディレクトリ
- /etc/crontab と同様の形式(ユーザーフィールドあり)
ディレクトリ 由来 説明
/var/spool/cron user cron spool directory - 各ユーザー専用の crontab ファイルが格納されるディレクト
- ユーザーごとにファイルが作成され、crontab -e で編集される内容が保存される
- 例:/var/spool/cron/root は root ユーザーの定期ジョブ設定ファイル

atコマンド

$ at [時刻]
$ at 15:00
オプション 由来 説明
default at (at job) 1回限りの時刻にコマンドを実行します(バッチジョブの一種)
-l
atq
list queue jobs 現在のatジョブの一覧を表示します(コマンド atq と同等)
-d
atrm
delete job 指定したatジョブを削除します(コマンド atrm と同等)

batch コマンド

$ batch
オプション 由来 説明
default batch (at batch) システムの負荷が低いときにジョブを実行(CPUアイドル時)
at と同様に一度だけ実行される
-l
atq
list queue jobs at と共通のジョブキューを一覧表示
batch ジョブも含まれる
-d
atrm
delete job 指定したジョブ(at / batch)を削除
at コマンドと同様に操作可

設定ファイル

  1. 「/etc/at.allow」ファイルがあれば、記述のあるユーザのみが利用可能
  2. 「/etc/at.allow」ファイルがなければ、「/etc/at.deny」を参照し、そこに記述のないユーザが利用可能
  3. 両方のファイルがなければ、rootユーザのみが利用可能
ディレクトリ/ファイル 由来 システム 説明
/etc/at.allow allow list for at at - atコマンドによるジョブ登録を許可するユーザーを列挙するファイル
- 存在する場合、/etc/at.denyは無視される
/etc/at.deny deny list for at at - atコマンドを禁止するユーザーを列挙するファイル
- /etc/at.allowが存在しないときのみ有効

systemdのTimerUnit

  • timerユニットの定義ファイルで指定したユニットのタイマーを制御する
  • systemdのtimerユニットには、以下の2種類の実行タイミングの指定方法がある
    • モノトニックタイマー:
      起動後の経過時間などシステム動作時間に基づいて実行タイミングを設定する
    • リアルタイムタイマー:
      日時や周期(毎時・毎週など)をカレンダー形式で指定して実行する
ディレクトリ / ファイル 由来 システム 説明
/etc/systemd/system system daemon system-specific configuration systemd 編集可

- システムのユニット設定ファイルを格納
- /lib/systemd/system 内のファイルを上書き可能
/etc/systemd/system/default.target default target systemd 起動時に使用されるデフォルトのターゲットを示すシンボリックリンク

- 変更例:
systemctl set-default graphical.target
/etc/systemd/system/*.service service unit systemd 実行するジョブの本体

- 実行するサービス(プロセス)の起動/停止/再起動などを管理
- 例:myapp.service, sshd.service
/etc/systemd/system/*.timer timer unit systemd 実行するタイミング、実行するジョブの定義

- .serviceと対になるスケジュール設定
- cronの代替
- 例:OnCalendar=daily

systemdのsystemd-run

systemdで一時的なユニットを作成してジョブを実行するコマンド

systemctl list-timers コマンド

$ systemctl list-timers [オプション]
オプション/使い方 由来 説明
default timer overview 現在有効なtimerユニットの一覧を表示
--all list all timers 無効なtimerユニットも含めてすべてのtimerユニットを表示

参考リンク

Ping-t

crond

crontab

cron

at

batch

systemd

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?