【问题标题】:AWS s3 file overwrite not working with crontabAWS s3 文件覆盖不适用于 crontab
【发布时间】:2020-04-27 16:34:00
【问题描述】:

我有一个脚本,它从我的 s3 存储桶下载文件,覆盖现有文件。目的是每天运行一次脚本,以便不断覆盖和更新文件。

这是命令,在 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 更改为:* * * * *

输出日志看起来正常,并且看起来好像命令正在正常执行。

我的问题是:为什么该命令不适用于此:

03 23 * * *

但是* * * * * 有效-(仅一次,文件被替换,但仍然无法更新)。

谢谢。

【问题讨论】:

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


    【解决方案1】:

    如果 cron 作业在 Amazon EC2 实例上运行,请注意实例使用 UTC 作为其时区。

    因此,crontab 可能正在运行,但您还没有等到它实际运行的时间。如果您将其放置 24 小时,您可能会发现它确实有效,但它会在 UTC 晚上 11 点运行,而不是您个人时区的晚上 11 点。

    要解决此问题,将您的本地时间转换为 UTC。 (有在线工具可以帮助解决这个问题。)

    【讨论】:

    • John - 谢谢,但我认为这实际上不是问题所在。我把它放了好几天,什么也没跑。
    • 它确实运行了,但没有覆盖文件!
    • 没有覆盖哪个文件? S3 存储桶中的文件,还是/Users/Documents/logs3.txt 日志文件?
    • s3 存储桶中的文件。
    • 在这种情况下,cron 作业似乎没有运行。 logs3.txt 文件中是否有任何内容表明作业已运行?
    猜你喜欢
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2017-05-17
    • 2018-12-21
    • 2021-08-09
    • 1970-01-01
    • 2021-01-07
    • 2012-02-26
    相关资源
    最近更新 更多