【发布时间】:2017-04-26 15:50:27
【问题描述】:
我确定这一定是一个明显的错误,但我很难过。下面的 shell 脚本生成数据库转储并成功 gzip,但 aws cli 给出错误:
warning: Skipping file /home/bar/dbsnapshots/foo-12-11-2016.sql.gz/. File does not exist.
我在此错误中看到了尾部斜杠,但不明白为什么会显示它,或者事实上,aws 是否出于某种原因正在寻找名为 foo-12-11-2016.sql.gz 的目录?
ls 按预期显示文件。
vi /home/bar/dbsnapshots/foo-12-11-2016.sql.gz打开gz文件成功。
我尝试过在路径周围加引号和不加引号的 aws 命令,同样的错误。我已经在命令行的shell脚本之外单独尝试了aws命令,同样的错误。例如
/home/bar/bin/aws s3 sync "/home/bar/dbsnapshots/foo-12-11-2016.sql.gz" s3://foo
AWS CLI 由我的用户本地安装在 /home/bar/awscli-bundle 中的此共享服务器上,并且已配置并且能够在 S3 上创建存储桶。通过 AWS 浏览器 GUI 验证。
#!/bin/bash
TODAY=`/bin/date +"%-m-%-d-%Y"`
BU_DIR=/home/bar/dbsnapshots
LOCALFILE=$BU_DIR/foo-${TODAY}.sql
EXCLUDED_TABLES=(
membersBackupV2
transactionReferer
transpages
)
IGNORED_TABLES_STRING=''
for TABLE in "${EXCLUDED_TABLES[@]}"
do :
IGNORED_TABLES_STRING+=" --ignore-table=bar_membership.${TABLE}"
done
mysqldump --defaults-extra-file="${BU_DIR}/.my.cnf" --all-databases ${IGNORED_TABLES_STRING} > ${LOCALFILE}
/bin/gzip ${LOCALFILE}
/home/bar/bin/aws s3 sync ${LOCALFILE}.gz s3://foo
【问题讨论】:
标签: linux shell amazon-web-services amazon-s3 aws-cli