shell - AWS 无法通过 Cronjob 工作

标签 shell amazon-s3 cron

所以我有一个脚本可以每天从 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/

相关文章:

shell - 运行命令并成功杀死

Git 说 "Warning: Permanently added to the list of known hosts"

amazon-web-services - AWS S3复制对象将其下载到本地吗?

elasticsearch - Logstash CSV配置以访问嵌套的JSON字段

bash - Crontab 不工作(已完成标准故障排除)

linux - 如何在多个命令中优先选择一个命令

linux - 计算 PATH 中每个变量中的可执行文件数

ruby-on-rails - Ruby on rails 在上传到 s3 时出现 Paperclip 问题

php - 直接从Google Drive上传到亚马逊S3

php - 如何使用 PHP mysql 通过 cron 作业发送电子邮件