AWS CLI同步错误 - 找不到文件

时间:2016-12-11 18:40:50

标签: linux shell amazon-web-services amazon-s3 aws-cli

我确定这一定是一个明显的错误,但我很难过。下面的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

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:-1)

Solution(Answer)-是的,对我来说同样的问题也发生了,即“文件不存在”警告。 因此,aws s3 sync仅用于同步文件夹,而不用于特定文件。期望源和目标都是文件夹(本地文件夹或S3 URI)。如果将文件放入文件夹,然后将文件夹同步到s3文件夹。工作正常。谢谢。

相关问题