amazon-web-services - S3 下载无法从 crontab 脚本运行
问题描述
我之前已经发布过这个问题,我以为我已经解决了,但不幸的是我仍然无法弄清楚发生了什么。
简而言之:我在每天更新的 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
可能是我正在寻找的东西?
解决方案
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 命令(请参阅:传递访问权限和密钥 aws cli)
推荐阅读
- java - Pdfbox:如何合并两个 acroforms?
- php - php用户名和密码检查不起作用
- .net - VB.NET 将数据插入 MS Access DB
- vb.net - 在 VB.Net 中抑制弹出窗口
- python - Pygame:图像从一定长度追逐鼠标光标
- powerapps - Power Apps - 创建集合
- java - Hadoop 文件系统应该关闭吗?
- python - 创建一个时间序列,从现有的值中选择值,但在 python 中更改日期
- python - Tensorflow - tf.nn.weighted_cross_entropy_with_logits - logits 和目标必须具有相同的形状
- python - Python TextBlob 翻译问题