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

# cron

## 設定ファイル
| ディレクトリ/ファイル          | 由来                    | システム | 説明     |
| :------------------- | :-------------------- | :--- | :---- |
| `/etc/crontab`       | cron table            | cron | - システム全体の cron ジョブを定義する設定ファイル<br>- ユーザー指定フィールドを含む                                   |
| `/etc/cron.allow`    | allow list for cron   | cron | - `crontab` コマンドを使ったジョブ登録を**許可するユーザー**を列挙するファイル<br>- 存在する場合、`/etc/cron.deny` は無視される |
| `/etc/cron.deny`     | deny list for cron    | cron | - `crontab` コマンドを**禁止するユーザー**を列挙するファイル<br>- `/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 設定ファイルを配置するディレクトリ<br>- `/etc/crontab` と同様の形式（ユーザーフィールドあり）                |


# atコマンド

```bash
$ at [時刻]
$ at 15:00
```

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


## 設定ファイル
1. 「/etc/at.allow」ファイルがあれば、記述のあるユーザのみが利用可能
1. 「/etc/at.allow」ファイルがなければ、「/etc/at.deny」を参照し、そこに記述のないユーザが利用可能
1. 両方のファイルがなければ、rootユーザのみが利用可能

| ディレクトリ/ファイル       | 由来                  | システム | 説明  |
| :--- | :--- | :--- | :---|
| `/etc/at.allow`   | allow list for at   | at   | - `at`コマンドによるジョブ登録を**許可するユーザー**を列挙するファイル<br>- 存在する場合、`/etc/at.deny`は無視される         |
| `/etc/at.deny`    | deny list for at    | at   | - `at`コマンドを**禁止するユーザー**を列挙するファイル<br>- `/etc/at.allow`が存在しないときのみ有効                                |



# systemdのTimerUnit
|ディレクトリ/ファイル|由来|システム|説明|
|:--|:--|:--|:--|
| `/etc/systemd/system`    |  system daemon system-specific configuration  |systemd|<INS>**編集可**</INS><br><br>- システムのユニット設定ファイル<br>- `/lib/systemd/system`を上書き |
|`/etc/systemd/system/default.target`|default target|systemd|システム起動時に読み込まれるデフォルトターゲットを指すシンボリックリンク<br><br>- 変更: `ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target`<br>- 変更: `systemctl set-default`|
|`/etc/systemd/system/*.timer`|timer unit|systemd|Timer Unitの定義ファイル<br><br>- `.service`ファイルと対になる<br>- `cron`の代替として使える<br>- 設定例: `OnCalendar=daily`<br>- 実行例: `systemctl enable backup.timer`|

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

# Ping-t

cron
- [4873_/etc/cron.monthly/](https://mondai.ping-t.com/question_subjects/32/question_sessions/33698403/progressing_questions/515999733)
- [4874_/etc/cron.d/](https://mondai.ping-t.com/question_subjects/32/question_sessions/33698403/progressing_questions/515999732)
- [4876_/etc/cron.deny](https://mondai.ping-t.com/question_subjects/32/question_sessions/33698403/progressing_questions/515999730)

at
- [4598_at](https://mondai.ping-t.com/question_subjects/32/question_sessions/33767513/progressing_questions/517007553)
- [4877_/etc/at.allow](https://mondai.ping-t.com/question_subjects/32/question_sessions/33698403/progressing_questions/515999729)
- [4904_/etc/at.allow, /etc/at.deny](https://mondai.ping-t.com/question_subjects/32/question_sessions/33767513/progressing_questions/517007539)
- [5058_/etc/at.allow, /etc/at.deny](https://mondai.ping-t.com/question_subjects/32/question_sessions/33767513/progressing_questions/517007538)

systemd
- [5098_/etc/systemd/system/*.timer](https://mondai.ping-t.com/question_subjects/32/question_sessions/33767513/progressing_questions/517007544)
- [5137_systemd-run](https://mondai.ping-t.com/question_subjects/32/question_sessions/33767513/progressing_questions/517007543)
- [36664_/etc/systemd/system/*.timer](https://mondai.ping-t.com/question_subjects/32/question_sessions/33698403/progressing_questions/515999726)