Med*_*ist 3 cron amazon-web-services aws-cli
我有这个脚本:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
SHELL=/bin/bash
# Create EBS Data snapshot
/usr/local/bin/aws ec2 create-snapshot --volume-id "vol-XXXXX" --description "test"
Run Code Online (Sandbox Code Playgroud)
如果我从shell运行它,它可以很好地工作,但对Cron没有任何作用.为什么?我正在使用IAM角色,这很重要吗?
aws configure以root用户身份运行并没有帮助我,因为我已经配置了凭据,并且脚本直接从命令行为root用户运行得非常愉快,但仍然无法通过cron运行.我收到的错误信息是;
Unable to locate credentials. You can configure credentials by running "aws configure".
Run Code Online (Sandbox Code Playgroud)
帮助我的是在我的crontab文件的顶部添加以下行,以便为通过cron运行的所有脚本提供适当的环境.
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Run Code Online (Sandbox Code Playgroud)
希望有人帮助!
好的,几个小时后我找到了解决方案:
用户 root 正在运行该脚本,但没有为此用户配置 AWS。我只需要为用户 root 配置 AWS:
# aws configure
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5757 次 |
| 最近记录: |