是否有人编写过一个程序/脚本来在两个硬盘之间传输文件,但是如果两个硬盘都快满了……那么一个硬盘复制一个文件,另一个硬盘复制另一个文件,然后它们删除复制的文件?
有点烦人,有一个 6TB 的 raid,其中大约 4TB 已满,然后 1 个 4.5TB 也基本上已满,不能轻易交换它们......除非进行大量文件复制和删除......
有人知道让它们交换的方法吗?哈哈
答案1
最简单的方法是编写一个小脚本(批处理文件)就足够了。
假设其中一个驱动器上有 1.5Tb,请在每个驱动器上确定三个 1.5Tb 的块,并编写一个批处理文件来执行该作业。
您也可以半自动化此过程。假设您使用的是 Windows,想要复制驱动器X:
和Y:
,并且每个文件都小于您的可用空间(1.5Tb)。
Robocopy这是Windows 2003 资源工具包工具
: repeat
robocopy X:\ Y:\From_X /MOVE /XD From_Y
if errorlevel 2 GOTO cont
SET FIRST_OK=1
: cont
robocopy Y:\ X:\From_Y /MOVE /XD From_X
if errorlevel 2 GOTO repeat
IF "%FIRST_OK"="1" GOTO end
GOTO repeat
: end
move X:\From_Y X:\
move Y:\From_X Y:\
看此链接因为由.errorlevel
返回,或者更高的方法尚未完成。robocopy
2
答案2
您可以使用 shell 脚本(powershell、bash)执行此操作。
L1 := 磁盘 a 上要移动的文件 L2 := 磁盘 b 上要移动的文件 while (L1 有文件或 L2 有文件) 且 (l1 或 l2 为真) l1 := 来自 L1 且适合 b 的文件 l2 := 来自 L2 的文件,适合 如果 l1 将 l1 移至 b 如果 l2 将 l2 移至 a