【问题标题】:Cron [ERROR] No AWS credentials found - check your credentialsCron [错误] 未找到 AWS 凭证 - 检查您的凭证
【发布时间】:2014-04-10 07:30:55
【问题描述】:

我为 graffiti-monkey 安排了一个 cron 作业:

15 0  * * * /home/ubuntu/scripts/graffiti_monkey.sh 

但它没有执行并且日志显示

[ERROR] No AWS credentials found - check your credentials

如何将 aws 凭据提供给 .sh 文件以便 cron 执行它?

【问题讨论】:

  • 取决于你的脚本在做什么。请详细说明。
  • /usr/local/bin/graffiti-monkey --region ap-southeast-1
  • graffiti_monkey.sh的权限是什么?
  • 脚本正在运行但显示 aws 凭据错误
  • 很可能,您的 AWS 凭证位于某个配置文件中,即 sourced。因此,如果您手动运行脚本,它会工作,但它会通过 cron 失败,因为 cron 无法读取 shell 级别的变量。所以source你在你的cron中的凭据。例如15 0 * * * source ~/.bashrc && /home/ubuntu/scripts/graffiti_monkey.sh

标签: bash amazon-web-services cron


【解决方案1】:

AWS Command Line Interface documentation 描述了几种存储凭据的方法。

尝试在终端中执行aws configure(作为运行 cron 的用户):

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

【讨论】:

    【解决方案2】:

    只需查看您的 graffiti_monkey.sh 文件的权限,将其更改为从其他 555 的文件执行,而不是运行它还检查我找到的此信息。

    cron 权限

    以下两个文件起着重要作用:

    /etc/cron.allow - 如果此文件存在,则它必须包含您的用户名才能使用 cron 作业。

    /etc/cron.deny - 如果 cron.allow 文件不存在但 /etc/cron.deny 文件确实存在,那么要使用 cron 作业,您不得在 /etc/cron.deny 文件中列出。 请注意,如果这些文件都不存在,则根据站点相关的配置参数,要么只有超级用户可以使用 cron 作业,要么所有用户都可以使用 cron 作业。

    【讨论】:

      猜你喜欢
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 2021-09-29
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多