linux - 使用 AWS CLI 进行 Bash - 无法找到凭证

标签 linux bash amazon-web-services aws-cli

我有一个 shell 脚本,它应该从 S3 下载一些文件并安装一个 ebs 驱动器。但是,我总是以“无法找到凭据”结束。

我已经使用 aws configure 命令指定了我的凭据,这些命令在 shell 脚本之外运行。有人可以告诉我(最好是详细的)如何让它工作吗?

这是我的脚本

#!/bin/bash

AWS_CONFIG_FILE="~/.aws/config"

echo $1

sudo mkfs -t ext4 $1
sudo mkdir /s3-backup-test
sudo chmod -R ugo+rw /s3-backup-test
sudo mount $1 /s3-backup-test

sudo aws s3 sync s3://backup-test-s3 /s3-backup/test

du -h /s3-backup-test
ipt (short version):

感谢您的帮助!

最佳答案

sudo 会将 $HOME 目录(因此 ~)更改为/root,并从环境中删除大多数 bash 变量,如 AWS_CONFIG_FILE .确保您以 root 或您的用户身份使用 aws 执行所有操作,不要混淆。

例如,确保您执行了 sudo aws configure。并尝试

sudo bash -c 'AWS_CONFIG_FILE=/root/.aws/config aws s3 sync s3://backup-test-s3 /s3-backup/test'

您可能更愿意从脚本中删除所有 sudo,而只对脚本本身执行 sudo。

关于linux - 使用 AWS CLI 进行 Bash - 无法找到凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31425838/

相关文章:

c - 请求 GNU 扩展但其他符合 POSIX 的功能?

linux - 如何使用 'cut' 查找最后一个字段

bash - TCL/Expect 相当于 Bash $@ 或如何将参数传递给 TCL/Expect 中的衍生进程

node.js - 在亚马逊AWS Elastic beanstalk上安装解析仪表板(或本地?)

c - 汇编程序员在 Linux/x86-64 系统调用中的结构布局?

bash - 如何获取倒数第二个命令的退出状态?

bash - 如何在 Bash 中对 float 进行舍入? (精确到小数)

amazon-web-services - 排队 CodeBuild 任务

amazon-web-services - Amazon Lambda 到 SNS 通知不起作用

linux - 脚本将命令输出重定向到最后一个文件名参数