![s3cmd 同步挂在“正在检索远程文件列表...”](https://linux22.com/image/1422599/s3cmd%20%E5%90%8C%E6%AD%A5%E6%8C%82%E5%9C%A8%E2%80%9C%E6%AD%A3%E5%9C%A8%E6%A3%80%E7%B4%A2%E8%BF%9C%E7%A8%8B%E6%96%87%E4%BB%B6%E5%88%97%E8%A1%A8...%E2%80%9D.png)
作为备份解决方案的一部分,我正在使用 s3cmd 来传输大量文件。
我有四个不同的工作,目录大小不同,文件大小也不同。
其中三项作业运行良好。但最后一项作业却挂起,提示如下信息:
Retrieving list of remote files for <...>
当我说它挂了,我的意思是它不再继续运行。在 100% 稳定的办公室网络连接上,它就这样冻结了整整一周。
现在,它尝试上传的目录很大。大约 306GB。这是迄今为止最大的作业。
我在 StackOverflow 上看到一篇帖子,其中有一个与此类似(但不完全相同)的问题,接受的答案说要编辑 .s3cfg 并设置更大的 socket_timeout。我将其从 10 改为 180,但没有什么变化。
知道下一步该尝试什么吗?我在谷歌搜索中没有找到任何结果。
答案1
对我来说,这个问题的解决方案是停止使用 s3cmd 并开始使用 aws 工具。
s3cmd sync ...
我现在使用而不是aws s3 sync ...
。这非常有效。我希望我从来没有偶然发现 s3cmd。
答案2
随着目标目录变大,检索 md5 列表和大小数据的时间也会增加。
对于我来说,类似的大型备份可以在不到二十分钟的时间内完成此步骤。我注意到我将 socket_timeout 设置为 300。
您还可以使用 --no-check-md5 避免对目标存储桶中的每个文件进行 md5 扫描,但我发现没有必要这样做。