所以我有一个脚本可以每天从 AWS 下载一个文件并将其附加到电子表格中。为此,我设置了一个 cronjob。
脚本在我手动运行时运行良好,但在从 cronjob 运行时不起作用。
代码有一行:
aws s3 cp s3://My/files/backup/ ~/home/AnPoc/ --recursive --exclude "*.tgz" --include "*results.tgz"
在我从 cronjob 执行收到的电子邮件中,我看到以下错误消息:
./AnPoc/DayProcessing.sh: line 14: aws: command not found
我不知道为什么找不到命令。任何帮助都会很棒。
最佳答案
首先:检查系统上可执行文件 aws
的位置被储存了。使用这个命令:
$ which aws
/usr/bin/aws # example output, can differ in your system
现在,放置一个名为
$PATH
的变量在脚本之前的 crontab 中:PATH=/usr/bin:/usr/local/bin
那些由
:
分隔的路径定义应该在哪里搜索可执行文件。在上面的例子中,它是 /usr/bin
.您必须检查 cron 作业中的所有可执行文件是否可用。另一件事:尽量避免在 cronjobs 中使用波浪号 (
~
) 的路径。使用 /home/user
反而。
关于shell - AWS 无法通过 Cronjob 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26480860/