2016-04-29 81 views
1

我已经创建了一个linux框,它有一个非常简单的make bucket命令:was s3 mb s3://bucket从提示符运行正常工作正常。Crontab无法找到AWS凭证-linuxbox EC2

我已经将AWS configure作为用户登录为和sudo运行。细节绝对正确,因为上面不会创建桶。

我从cron得到的错误消息是:make_bucket failed: s3://cronbucket/ Unable to locate credentials

我一直在试图告诉它的凭据是crontab中尝试了各种东西迄今为止,一些这是其他解决方案的融合,其可能是问题的原因。

我的crontab的样子:

AWS_CONFIG_FILE="/home/ec2-user/.aws/config" 
SHELL=/bin/bash 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binx 
0 0 * * * /usr/bin/env bash /opt/foo.sh &>> /tmp/foo.log 

* * * * * /usr/bin/uptime > /tmp/uptime 

* * * * * /bin/scripts/script.sh >> /bin/scripts/cronlogs/cronscript.log 2>&1 

最初我只是有这样的观点中的桶,然后创造了正常运行时间(如完整性检查)的两份工作,在crontab的其余来自其他职位的解决方案这似乎不工作。

任何意见非常感谢,谢谢。

+2

您应该使用IAM角色。 – tedder42

+0

我不能为这个特定的场景 – null

回答

2

问题是,cron没有得到你的env。有几种方法可以解决这个问题。运行包含您的配置文件的bash脚本。或者一个不错的简单解决方案是将其与crontab一起包含。 (变化曲线,无论你正在使用)

0 5 * * * . $HOME/.profile; /path/to/command/to/run 

退房这个thread

+0

谢谢,我现在正在尝试解决方案,主目录设置,.profile是空白的,所以我复制.aws /配置为.profile,现在正在等待工作运行 – null

+0

同样的错误恐怕 - 这是命令:* * * * *。 $ HOME/.profile文件; /bin/script/script.sh >> /bin/script/cronlogs/cronscript.log 2>&1 – null

+0

虽然我注意到我收到的邮件消息是试图使用root @ ip而不是我的用户,也许这就是问题 – null