我确定这一定是一个明显的错误,但我很难过。下面的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
答案 0 :(得分:9)
aws s3 sync
用于同步文件夹。它期望源和目标都是文件夹(本地文件夹或S3 URI)。
答案 1 :(得分:-1)
Solution(Answer)-是的,对我来说同样的问题也发生了,即“文件不存在”警告。 因此,aws s3 sync仅用于同步文件夹,而不用于特定文件。期望源和目标都是文件夹(本地文件夹或S3 URI)。如果将文件放入文件夹,然后将文件夹同步到s3文件夹。工作正常。谢谢。