我有两台机器,速度和质量。 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/