導入
読めるようになったら、次は自分で登録します。crontab の編集は「エディタで開いて書く」のが本来の形ですが、ファイルから読み込ませるやり方を覚えておくと、設定をGitで管理できて実務で強いです。
説明
crontab の操作は3つだけ覚えれば足ります。
| コマンド | 意味 |
|---|---|
crontab -l | 一覧を表示(list) |
crontab -e | エディタで編集(edit) |
crontab ファイル | ファイルの内容でまるごと入れ替える |
crontab -r | 全部削除(remove。取り消せない) |
上のエディタで予定表そのものを書き、crontab コマンドで登録してみましょう。
#!/bin/bash
# ↓ これは crontab に登録する予定表を作るスクリプト
cat <<'EOF' > my.cron
# 毎日3時にバックアップ
0 3 * * * /home/user/scripts/backup.sh
# 5分おきに監視
*/5 * * * * echo "監視しています"
EOF
crontab my.cron
crontab -l
# から始まる行はコメントとして無視されます。何のための予定かを書き添えるのは、cron では特に大切です。半年後に「この行は何だっけ」となりがちだからです。
flowchart LR
A["my.cron<br/>(ファイルで管理)"] -->|"crontab my.cron"| B["ユーザーの予定表"]
B -->|"crontab -l"| C["確認"]
A -.->|"Gitで履歴管理"| D["いつ誰が変えたか残る"]
crontab -r は予定表を全消しします。-l の隣のキーなので、押し間違いで全部消した——という事故が実在します。本番サーバーでは、消す前に crontab -l > backup.cron でバックアップを取るのが鉄則です。
crontab -eで開くエディタは、環境変数EDITORで決まります(既定は vi のことが多い)。このシミュレータではエディタを開けないので、上のエディタ+crontab ファイルの形で体験します。ファイル管理のほうが実務でも推奨される方法です。
やってみよう
スクリプトを実行して、crontab -l に自分で書いた2行が入ることを確かめましょう。次に cronsim 03:00 と cronsim 09:05 を実行して、それぞれ別の予定が動くことを見てください。最後に端末で crontab -r → crontab -l として、予定が空になることも確認しましょう(このシミュレータは「最初からやり直す」で元に戻せます)。
演習
*/5 * * * * に登録した監視の予定を、cronsim 09:05 で動かして 監視しています と表示させてください。
ヒント1を見る
まずスクリプトを実行して crontab my.cron を済ませておきます。
ヒント2を見る
そのあと端末で cronsim 09:05