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
参考: