Crontabの環境変数のポイントまとめ
- CRONの環境変数はCRON設定の先頭に記述します。
- Bashの環境変数と共有してないので注意。
- ただし、以下の変数はUNIXユーザーに通常存在する環境変数なので、使うことが出来る。
- HOME、SHELL、LOGNAME
- そのほかはCrontablにかく
Bash環境変数と共有するなら、Cronで実行するスクリプトに環境変数を定義するべき。
Crontabの記述例。
Q.ユーザー環境変数は引き継がれるの?
A.されない
Manページによると
・HOME、SHELL、LOGNAMEが設定される、HOMEはcron設定のファイルオーナーの環境変数が使われる。
manより抜粋
crontab の動作行は、環境変数の設定か cronコマンドのいずれかである。環境 変数の設定は以下の形式をとる: name = value た だし、等号 (=) 両側のスペースはなくても良い。 value 内部の (先頭では ない) スペース文字は、値の一部として name に与えられる。 value 文字列は 引 用符で括ってもよい (シングルクォートでもダブルクォートでも良いが、揃 っている必要がある)。こうすれば先頭や末尾の空白を値に渡すことができる。 いくつかの環境変数は cron(8) デーモンによって自動的に設定される。 SHELL は /bin/sh に設定され、 LOGNAME とHOME は /etc/passwd の crontab の所有 者 の行から設定される。 HOME と SHELL は crontab 内部の記述で変更できる 。 LOGNAME は変更できない。 crontab の動作行は、環境変数の設定か cronコマンドのいずれかである。環境 変数の設定は以下の形式をとる: name = value た だし、等号 (=) 両側のスペースはなくても良い。 value 内部の (先頭では ない) スペース文字は、値の一部として name に与えられる。 value 文字列は 引 用符で括ってもよい (シングルクォートでもダブルクォートでも良いが、揃 っている必要がある)。こうすれば先頭や末尾の空白を値に渡すことができる。 いくつかの環境変数は cron(8) デーモンによって自動的に設定される。 SHELL は /bin/sh に設定され、 LOGNAME とHOME は /etc/passwd の crontab の所有 者 の行から設定される。 HOME と SHELL は crontab 内部の記述で変更できる 。 LOGNAME は変更できない。http://www.80code.com/kb-ja/crontab.html