私はスタンドアロンで動作し、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