cron の実行時に外部ファイルから環境変数を export する
問題
以下のようなファイルに定義された変数を環境変数として export して cron を実行したい (Python の os.environ.get() で使いたい)。
ENV1=1 ENV2=2 ENV3=3
cron に環境変数を渡す方法としては、以下のようなものがある。
source env;job bash -l job
前者は env の中身が export ENV1=1
のような場合に使える。後者は bashrc などに定義された環境変数を使える。
しかし、ファイルを書き換えるのも (systemd の EnvironmentFile で使っている)、bashrc などに書き込むのも嫌。困った。
解決方法
export $(cat env_file | xargs); を使う。
*/1 * * * * export $(cat ~/env| xargs);/usr/bin/python ~/test.py