[英]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.