【问题标题】:Sync files from Amazon S3 to local将文件从 Amazon S3 同步到本地
【发布时间】:2015-08-17 15:15:46
【问题描述】:

我有一个包含多个目录的 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 的命令行工具为每个文件名列出多个文件。 当有多个同名文件时,它们可能只显示一个。

感谢您阅读到最后。

【问题讨论】:

  • 您是在 NAS 上运行这些命令,还是在已从 NAS 安装共享的机器上运行这些命令?如果是后者,请尝试前者。

标签: linux bash amazon-web-services amazon-s3 nfs


【解决方案1】:

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

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

显然,此问题已在较新的 Linux 内核上使用 ext4 修复 - 您也许可以更新您的 NAS 以获取此修复。

【讨论】:

  • 感谢您的回复。 NAS 和运行脚本的服务器都应该更新到最新的稳定版本。我重试了同步,但发生了同样的错误。我真的希望这个脚本在这个服务器上而不是在 NAS 上运行,我还必须安装 aws 工具才能在 NAS 上执行这个脚本。
  • 您是否尝试在 NAS 上运行它来验证确实是原因?只要您的 NAS 支持 Python/pip,AWS 工具就很容易安装。
  • 如果它在 NAS 上工作,它确认问题是我链接的问题。在这种情况下,您需要找到 NFS 的替代方案 - 也许是 SMB?
  • 我似乎在我的 NAS 上安装软件时遇到了问题,我正在关注本教程:docs.aws.amazon.com/cli/latest/userguide/… 我收到此错误:Traceback(最近一次调用最后一次):文件“get-pip.py ", line 24, in import pkgutil ImportError: No module named pkgutil 我执行这个命令后:python get-pip.py NAS的型号是:QNAP TS459U+
  • 听起来您的 QNAP 缺少一些 Python 要求。尝试根据一些 QNAP 特定的说明安装 pip,然后执行“pip install awscli”。 gleenders.blogspot.nl/2014/04/…
猜你喜欢
  • 2017-03-10
  • 2015-05-09
  • 1970-01-01
  • 2021-09-09
  • 1970-01-01
  • 2019-07-21
  • 2012-04-15
  • 1970-01-01
  • 2013-11-26
相关资源
最近更新 更多