プロンプトからはうまく機能するが、crontab からは機能しないスクリプトがあります。壊れているのは、スクリプトのサブシェルで無視されるヒア ドキュメントだけです。スクリプトは psftp を使用します。コードは次のとおりです。
/home/batch/myscript.sh:
(
cd /home/downloaded/csv/
psftp -pw passw0rd -P 1234 user@someftp.com << EOF
cd outgoing
mget *.csv
EOF
) | tee /home/batch/logs/mylog.log | mail -s "Mail subject" "me@mycompany.com"
crontab -e:
45 10 * * * /bin/sh /home/batch/myscript.sh
OK - プロンプトから起動した場合のメール:
Remote working directory is /
psftp> Remote directory is now /outgoing
psftp> *.csv: nothing matched
psftp> quit
KO - crontab から起動したときのメール:
Remote working directory is /
psftp> quit
Google は多くのサポートを提供していません。ヒアドキュメントの一般的な問題と思われるため、いくつかの EOF 構文を試しましたが、これが原因ではないと思います。crontab に関してある種のネスト レベルに関係している可能性がありますが、そのようなことはありますか?
よろしくお願いします