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 コマンドと同様に操作可 |
設定ファイル
- 「/etc/at.allow」ファイルがあれば、記述のあるユーザのみが利用可能
- 「/etc/at.allow」ファイルがなければ、「/etc/at.deny」を参照し、そこに記述のないユーザが利用可能
- 両方のファイルがなければ、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
- 4597_/etc/cron.allow, /etc/cron.deny
- 4751_/var/spool/cron/
- 4873_/etc/cron.monthly/
- 4874_/etc/cron.d/
- 4876_/etc/cron.deny
at
- 4598_at
- 4638_at -l, atq
- 4639_at -d, atrm
- 4877_/etc/at.allow
- 4904_/etc/at.allow, /etc/at.deny
- 5058_/etc/at.allow, /etc/at.deny
batch
systemd