AWS CLI 同步错误 - 找不到文件
AWS CLI sync error - file not found
我确定这一定是一个明显的错误,但我很难过。下面的 shell 脚本生成数据库转储并成功压缩它,但 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
aws s3 sync
用于同步文件夹。它期望源和目标都是文件夹(本地文件夹或 S3 URI)。
解决方案(答案)——是的,我也遇到了同样的问题,即 'File does not exist' 警告。
因此 aws s3 sync 仅用于同步文件夹而不用于特定 file/files。它期望源和目标都是文件夹(本地文件夹或 S3 URI)。如果您将文件放入一个文件夹,然后将您的文件夹同步到 s3 文件夹。它工作正常。谢谢。
我确定这一定是一个明显的错误,但我很难过。下面的 shell 脚本生成数据库转储并成功压缩它,但 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
aws s3 sync
用于同步文件夹。它期望源和目标都是文件夹(本地文件夹或 S3 URI)。
解决方案(答案)——是的,我也遇到了同样的问题,即 'File does not exist' 警告。 因此 aws s3 sync 仅用于同步文件夹而不用于特定 file/files。它期望源和目标都是文件夹(本地文件夹或 S3 URI)。如果您将文件放入一个文件夹,然后将您的文件夹同步到 s3 文件夹。它工作正常。谢谢。