cron ジョブではシェルスクリプトを実行できません。

cron ジョブではシェルスクリプトを実行できません。

私はスタンドアロンで動作し、cronジョブで動作しないスクリプトを使用しています。

qexma1@test:bin> head -n 10 test.sh
#!/bin/bash
declare -r PATH='/sbin:/bin:/usr/sbin:/usr/bin'
source $AEM_CONFIG/aem-wrap.conf

予約されたもの:

qexma1@test:bin> crontab -l | grep aem-test.sh
01 15 * * * bin/test.sh -b ; touch bin/crontest.txt;

バナー:

qexma1@test:bin> ll bin/ | grep cron
-rw-r--r--  1 qexma1 abc   0 Nov 11 15:01 crontest.txt

マーカー・ファイルcrontest.txtが生成されましたが、スクリプトは実行されませんでした。許可0755

ベストアンサー1

stderrの出力は次のようになり、変数が$AEM_CONFIG設定されていないことを意味します。これが操作が失敗する理由です。

/global/appaem/aem/bin/aem-test.sh: line 5: /aem-wrap.conf: No such file or directory

この問題を解決するには、スクリプトを修正して設定を取得してください$AEM_CONFIG

指摘したように、変数は.bashrcで定義されています。cronは、「.bashrc」および「.bash_profile」で定義されている変数を無視します。source ~/.bashrcたとえば、スクリプトに1行を追加する必要があります。例:

#!/bin/bash
declare -r PATH='/sbin:/bin:/usr/sbin:/usr/bin'
source ~/.bashrc
source $AEM_CONFIG/aem-wrap.conf

おすすめ記事