繁体   English   中英

将文件从Amazon S3同步到本地

[英]Sync files from Amazon S3 to local

我有一个带有多个目录的Amazon S3存储桶。 这些目录包含各种重要文件。

我想备份我的S3存储桶,并将其保存到本地网络中的nas服务器。 我写了一个bash脚本,每天运行一次。

脚本最重要的部分是:

sudo aws s3 sync s3://$s3bucket/$s3folder $localpath --size-only>> $LOG_DIR/$LOG_FILE

我确信所有变量都已设置并正确。 文件被复制到正确的位置,但是对于一个子文件夹,我收到此错误:

warning: Skipping file /fullPathToLocalLocation/bucket/subfolder. File/Directory is not readable.

此文件夹的权限与其他子文件夹对此文件夹的权限完全相同。

当我执行此命令时:

ls -l

我收到此错误:

当我比较以下输出时:

ls -l | wc -l

输出为:

ls -1 | sort | uniq | wc -l

结果是不同的(309774与309772)控制台还显示错误:

ls: reading directory .: Too many levels of symbolic links

我还检查了

dmesg | tail

它有这个错误:

[11823.884616] NFS: directory bucket/subfolder contains a readdir loop.Please contact your server vendor.  The file: randomfilename.pdf has duplicate cookie 124416205

我已经从nas中删除了具有重复Cookie的文件,并尝试了s3存储桶和本地nas之间的同步,这一次可以正常工作。 但是第二次尝试显示与以前相同的错误。

可能我在s3上拥有2次相同文件,一次是大写扩展名,一次是小写扩展名,这引起了问题?

每次发生此同步错误时,它都会从S3重新下载整个子文件夹,而不仅仅是同步它。 几天后,我才注意到这一点,因为它已经通过连续覆盖本地nas上的文件从亚马逊下载了2 Tb。 因此,我收到了亚马逊的高额账单。

有没有其他人遇到过这样的问题或知道解决此问题的方法? 一个明显的解决方案可能是从S3本身删除导致此问题的文件,但是我似乎无法使用S3或cyberduck的命令行工具为每个文件名列出多个文件。 也许当多个同名文件时,它们仅显示一个文件。

谢谢您阅读本书直到最后。

您可能会遇到此问题: https : //bugzilla.kernel.org/show_bug.cgi?id=46671

这是NFS而不是AWS的问题。 尝试直接在NAS上运行同步脚本,以查看是否可以解决问题。

显然,此问题已在较新的Linux内核上用ext4修复-您可能能够更新您的NAS来获取此修复程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM