【问题标题】:AWS CLI sync error - file not foundAWS CLI 同步错误 - 找不到文件
【发布时间】: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


    【解决方案1】:

    aws s3 sync 用于同步文件夹。它期望源和目标都是文件夹(本地文件夹或 S3 URI)。

    【讨论】:

      【解决方案2】:

      解决方案(答案)——是的,我也遇到了同样的问题,即“文件不存在”警告。 因此 aws s3 sync 仅用于同步文件夹,而不用于特定文件/文件。它期望源和目标都是文件夹(本地文件夹或 S3 URI)。如果您将文件放入文件夹,然后将文件夹同步到 s3 文件夹。它工作正常。谢谢。

      【讨论】:

        猜你喜欢
        • 2016-05-06
        • 1970-01-01
        • 1970-01-01
        • 2015-10-10
        • 2020-05-30
        • 2017-07-02
        • 2020-02-14
        • 2019-06-07
        • 1970-01-01
        相关资源
        最近更新 更多