AWS CLI无法使用cron

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角色,这很重要吗?

Dav*_*Rix 8

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)

希望有人帮助!

  • 这是唯一对我有用的解决方案,感谢您的帮助! (2认同)

Med*_*ist 5

好的,几个小时后我找到了解决方案:

用户 root 正在运行该脚本,但没有为此用户配置 AWS。我只需要为用户 root 配置 AWS:

# aws configure
Run Code Online (Sandbox Code Playgroud)