明らかにcronはbashプロファイルをロードしないため、ラッパーを作成する必要があります。
したがって、必要な変数をエクスポートしてスクリプトを呼び出すbashラッパーを作成します。次に、crontabからそのラッパーを呼び出します。これが機能すると、crontabを編集したユーザーに対して変数が適切にエクスポートされていなかったことがわかります。
注:/etc/bashrc
に追加できます ルートアクセス権がある場合は、すべてのユーザーに適用されます。
汎用ラッパーを作成して、cronのものがラッパーを介して送信するようにすることもできます。
my_bash_wrapper.sh
#!/bin/bash
. ~/.bash_profile
"$0"
cronで呼び出す:
0 1 * * * /my/loc/my_bash_wrapper.sh my_python_script arg1 arg2