私は長年cronを使用してきました。すべての環境変数を一度にロードするには、crontabから取得した専用ファイル(常にそうではありませんが、通常は.bashrc)に変数を定義します。
* * * * * (. /home/me/my_environment_variables.sh; my_script.sh)
残念ながら、このトリックは、私が最近移行するように求められたDebian wheezyサーバーでは機能しません。より具体的に言えば、起こるすべては、あたかもソースコマンドが無視されたのと同じです。 my_script.sh が実行されますが、環境変数が空であるため、スクリプトの結果が予期した結果ではありません。私はこの質問を本当に理解していません。私のUbuntuでは、すべてが完璧に実行されます
インストールされているcronパッケージは「3.0pl1-124」です。
この問題を解決またはバイパスする方法を知っていますか?
PS:環境変数をこのように定義すると効果があるようです。
* * * * * (export OPTOS_HOME=/home/me/src/optos; my_script.sh)
しかし、このように複数の環境変数を定義するのは不便です。
答え1
.
内部シェルコマンドです。 cronが使用するシェルを確認してください(デフォルトは/bin/sh)。
別の解決策は、ラッパースクリプトを作成し、その中にこれらのコマンドを置くことです。確かに効果があるでしょう。