我正在从一个 OLD OLD *nix 系统中复制数 TB 的数据。我可以花钱购买新硬件来插入驱动器,但我想避免花钱。
系统很烂。它冻结并崩溃了很多。所以我每次都必须重新启动复制过程。它需要很长时间才能“赶上”,因为它必须“跳过”它已经复制的文件。
我可以使用rsync
,但系统太慢了,每次我开始rsync
初始库存扫描/比较都需要一段时间。
所以我想我可以生成一个一次性列表,其中包含所有需要复制的文件并将它们保存到一个文件中。然后我可以有一个脚本遍历文件并复制该文件然后删除该行。如果脚本/副本在中间失败,我可以从它停止的地方继续。我不知道如何处理/处理将从队列中删除该行的部分,但是在尝试弄清楚这一点时我意识到必须有一些公开可用的工具或脚本已经可以满足我的需要。
所以目标是它会通过一些文件输入队列来复制和复制它们,并且当它完成复制时,它会将它从队列中删除。对于这个特定的用例,我不需要它,但它应该能够容纳添加到队列中的新条目。而且,当然,队列应该是基于文件的,以便在出现系统错误/问题时可以继续。
有人知道吗?
虽然建议使用“专业的”、经过验证的工具来可靠地完成此任务,但这里有一种快速而直接的解决方案。由于系统问题,删除文件中的一行可能会失败,因此将成功复制的文件名保存在日志文件中似乎更安全一些。创建一个“待办事项”文件,其中包含要复制的文件(例如通过重定向
ls
结果)和一个空的“日志”文件。然后运行每次运行时,将跳过已复制和记录的文件。您可能希望
sort
“待办事项”文件避免出现comm
“文件未按排序顺序”的警告。