cron
参考:
Man page of CRONTAB (1) | JM Project
Man page of CRONTAB (5) | JM Project
使い方
現在の設定を確認する。
$ crontab -l
設定を編集する。
$ crontab -e
設定項目は次のような書式になっている。
m h D M wday command
何分おき、何時間おきなどは */n
で設定する。複数の時間を設定する場合は、0,12
のようにコンマで区切って並べる。範囲を指定する場合は 8-18
のようにハイフンで繋げて記述する。*
は各項目内で first-last
の意味となる。スラッシュとハイフンは併用できる。曜日は 0
〜 7
で設定し、0
及び 7
は日曜日を表す。
参考:
crontab コマンドについてまとめました | エンジニアの入り口
まとめ
参考:
いまさら crontab のメリットと書き方を見直す | それマグで!
crontab コマンドの使い方 | UNIX/Linux の部屋
運用
crontab -e
はcrontab -r
と打ち間違える危険がある。- エイリアスで
-i
オプションを強制する。(BSD 版には-i
オプションはない。) - 別の設定ファイルを作成し、常にその設定ファイルから設定を読み込む。
参考:
crontab -e は「絶対に」使ってはいけない | ろば電子が詰まつてゐる
Bash の profile を読み込む
bash
コマンドに -l
オプションを付けてログインシェルとして起動し、-c
オプションにシェルコマンドを渡して実行する。
* * * * * /usr/local/bin/bash -l -c "env > /tmp/cron_env"
参考:
cron ジョブを作るのにいつものやり方でいいんですか? – Qiita
Crontab で source ~/.bashrc や bash -l を使うと死を招く – Qiita
ログインシェル
参考:
ログインシェルとインタラクティブシェルと ~/.bashrc 達の関係 – Qiita
shebang
参考:
Bash shebang option -l – Stack Overflow
環境変数
参考:
crontab の環境変数 PATH について調べてみた | DQNEO 起業日記
cron から pyenv の Python を使う
参考:
python スクリプトを cron で自動実行したいときに気をつけること | きゃべログ
Whenever
参考: