s3cmd失败次数太多了

Modified on: Fri, 19 Jul 2019 11:20:03 +0800

它曾经是我最喜欢的备份传输代理,但现在我经常在同一个Ubuntu服务器/网络上从s3cmd获得此结果:

root@server:/home/backups# s3cmd put bkup.tgz s3://mybucket/
bkup.tgz -> s3://mybucket/bkup.tgz  [1 of 1]
      36864 of 2711541519     0% in    1s    20.95 kB/s  failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=0.00)
WARNING: Waiting 3 sec...
bkup.tgz -> s3://mybucket/bkup.tgz  [1 of 1]
      36864 of 2711541519     0% in    1s    23.96 kB/s  failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=0.01)
WARNING: Waiting 6 sec...
bkup.tgz -> s3://mybucket/bkup.tgz  [1 of 1]
      28672 of 2711541519     0% in    1s    18.71 kB/s  failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=0.05)
WARNING: Waiting 9 sec...
bkup.tgz -> s3://mybucket/bkup.tgz  [1 of 1]
      28672 of 2711541519     0% in    1s    18.86 kB/s  failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=0.25)
WARNING: Waiting 12 sec...
bkup.tgz -> s3://mybucket/bkup.tgz  [1 of 1]
      28672 of 2711541519     0% in    1s    15.79 kB/s  failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=1.25)
WARNING: Waiting 15 sec...
bkup.tgz -> s3://mybucket/bkup.tgz  [1 of 1]
      12288 of 2711541519     0% in    2s     4.78 kB/s  failed
ERROR: Upload of 'bkup.tgz' failed too many times. Skipping that file.

即使对于小到100MB的文件也会发生这种情况,所以我认为这不是大小问题。当我使用带有--acl-private标志(s3cmd版本1.0.1)

的put时也会发生这种情况

如果您建议使用某种解决方案或s3cmd的轻量级替代品,我将不胜感激。

最佳答案

有一些常见问题会导致s3cmd返回您提到的错误:

  • 不存在(例如输入错误的存储桶名称;或尚未配置的存储桶)
  • 您的身份验证值(密钥/ ID)的尾随空格
  • 系统时钟不准确。可以使用Wireshark(通过http - 而不是https连接)来查看系统时钟如何与S3的时钟对齐 - 它们应该在几秒钟内匹配。如果这是一个问题,请考虑使用NTP来同步您的时钟。

s3cmd的替代品:

  • s3cp - 基于Java的脚本,提供良好的文件传输功能到S3,以及比s3cmd更详细的错误消息
  • aws - 由Tim Kay编写的基于Perl的脚本,可以轻松访问大多数AWS(包括S3)功能,很受欢迎。

如果您希望编写自己的脚本,可以使用Python Boto库,该库具有执行大多数AWS操作的功能,并且在线提供了许多示例。有一个项目,它在命令行上公开了一些boto函数 - 尽管如此,目前可用的功能非常少。

作者:cyberx86

相关问答

添加新评论