【问题标题】:S3 download not working from crontab scriptS3 下载无法从 crontab 脚本运行
【发布时间】:2020-05-24 03:45:12
【问题描述】:

我之前已经发布过这个问题,我以为我已经解决了,但不幸的是我仍然无法弄清楚发生了什么。

简而言之:我在每天更新的 s3 存储桶中有一个 JSON 文件。我的 crontab 脚本(设置为每天运行一次)将文件从我的 s3 存储桶下载到我的本地目录,覆盖我本地目录上的现有文件。该脚本在 Mac 终端上本地运行。目的是每天运行一次脚本,以便不断覆盖和更新文件。

我已经验证了 s3 存储桶中的 JSON 文件正在不断更新,所以我认为这不是问题。

这是命令,在 crontab 上:

03 23 * * * /Library/Frameworks/Python.framework/Versions/3.7/bin/aws s3 cp s3://sfbucket.bucket/sf_events.json /Users/Documents/TownSounds_Javascript/data/sf_events.json >> /Users/Documents/logs3.txt 2>&1

上述 crontab 脚本无法运行。我可以让它运行的唯一方法是手动编辑一次 crontab 脚本:* * * * *

然后它运行一次,然后恢复为根本不运行。

当我检查 logs3.txt 时,修改的日期似乎没有更新,这也表明它运行失败。

我已经进一步调查,并创建了一个测试 crontab 脚本:

* * * * * echo `date` >> /Users/Documents/testCrontab.txt

它工作正常,输出完全符合预期。

谁能告诉我为什么 s3 文件的 crontab 脚本可能无法运行?我是否需要登录到 s3 才能使脚本能够执行此操作并提取文件? Amazon s3 在一段时间不活动后自动将我注销,所以这似乎不可行。

我读到aws s3 sync 可能就是我要找的东西?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 terminal cron


    【解决方案1】:

    AWS CLI 命令可能失败的原因有很多(在本例中为 aws s3 cp)...您(或运行该命令的脚本,例如 crontab )需要具有适当的凭证才能与您的 aws 交互资源(请参阅:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)。您需要检查 ACCESS_KEY 和 SECRET_KEY 是否可用作 ENV 变量,或者您可以将其直接提供给 aws 命令(请参阅:passing access and secret key aws cli

    【讨论】:

    • mninoruiz - 谢谢,我已按照您的指示输入了访问密钥、秘密访问密钥和区域名称。如果我这样做了,我上面的 crontab 脚本应该工作吗?我应该使用“aws s3 cp”命令,对吗?
    • 试试吧! aws S3 cp 和 sync 执行不同的功能,请在线查看解释...所以这取决于您想要做什么,但凭证世界是相同的
    • 非常感谢。你是第一个能够解决这个问题的人。它现在可以工作了,我只需要运行我的凭据即可。
    猜你喜欢
    • 2016-03-06
    • 2018-12-27
    • 1970-01-01
    • 2021-09-27
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2016-06-18
    相关资源
    最近更新 更多