我有一个 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/