storage - 阻止 rsync 删除未完成的源文件

标签 storage web-crawler rsync

我有两台机器,速度和质量。 speed 具有快速的互联网连接,并且正在运行爬虫程序,将大量文件下载到磁盘。质量有大量的磁盘空间。我想在下载完成后将文件从速度移动到质量。理想情况下,我只是运行:

$ rsync --remove-source-files speed:/var/crawldir .

但我担心 rsync 会取消链接尚未完成下载的源文件。 (我查看了源代码,没有看到任何针对此问题的保护措施。)有什么建议吗?

最佳答案

在我看来,问题是在文件完成之前传输文件,而不是删除它。

如果是 Linux,则进程 A 打开文件并且进程 B 可以取消链接该文件是可能的。没有错误,但是 A 当然是在浪费时间。因此,rsync删除源文件并不是问题。

问题是 rsync 仅在复制后才删除源文件,如果仍在将其写入磁盘,您将拥有部分文件。

这样怎么样:以speed方式将mass挂载为远程文件系统(NFS可以工作)。然后直接网络爬取文件即可。

关于storage - 阻止 rsync 删除未完成的源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491/

相关文章:

ios - 如何仅使用 iOS 5+ 和 Cordova 3.5 永久和本地存储数据文件?

html - 使用非正统的 `head {display: block}` 向用户显示文本?

ssh - 将文件从一个 EC2 实例同步到另一个

python - 将 dict 与 key 一起传递以传递存储位置是否有意义?更好的方法?

linux - 从 Centos 6.7 升级到 7 而不会损害 LVM 中的数据

ruby - 如何以编程方式获取已爬网网页的快照(在 Ruby 中)?

java - Apache HTTPClient 抛出 java.net.SocketException : Connection reset for many domains

linux - 循环遍历目录和 rsync 内容

rsync——通过 ssh 从本地同步到远程的命令行

java - 在一个文件中存储多个值 - 最佳格式?