我对通过命令行执行 NTbackup 不太熟悉,但我有一位用户让某人将他的计算机设置为备份到 1TB 外部驱动器。
备份命令如下:
C:\WINDOWS\system32\ntbackup.exe backup "@C:\Documents and Settings\username\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\User Backup.bks" ^
/a /d "Set created 1/7/2011 at 12:12 PM" /v:no /r:no /rs:no /hc:off /m normal ^
/j "User Backup" /l:s /f "I:\UserComputerBackup\UserBackup.bkf"
该用户已使用其 1TB 驱动器上的所有空间。我的问题是 - 是否有办法指定 NTBackup 仅保留最后 3 或 4 个备份并覆盖所有较旧的备份?
我知道这在某些软件备份解决方案中可用 - 但这最初是使用 ntbackup 完成的,我想继续这样做。
有任何想法吗?
答案1
我的问题是 - 有没有办法指定 NTBackup 仅保留最后 3 或 4 个备份并覆盖所有更早的备份?
不,抱歉,ntbackup 是一款非常轻量级的备份。它没有版本跟踪功能,因此 NTbackup 中没有任何东西可以实现这一点。如果您想继续使用 NTBackup,则必须使用外部脚本/工具来解决其局限性。
我写了一点python 脚本在我们升级到 Windows 2008 之前,我一直使用它来安排/管理 ntbackup。您在 xml 文件中定义备份详细信息,python 工具将使用正确的选项运行 ntbackup。您可以设置要保留的版本数等等。
答案2
我必须编写一个脚本来完成您要求执行的操作。基本上,我的脚本设置为备份某些虚拟机的系统映像。这些映像使用当前日期备份到文件夹中。因此它们最终位于 x:\backup\2012-03-26。由于 X: 在我们的 NAS 上,我每天检查一次驱动器,看看是否至少有 1TB 的存储空间,然后一次删除最旧的一天,直到剩余 1TB 的存储空间(我们的每晚存储空间约为 900GB)。我使用 VBS 来完成此操作。基本上,VBS 在每个虚拟机上的任务计划程序中运行。该脚本在每台机器上独立运行。但由于它们都使用日期作为通用文件夹名称,因此所有文件最终都会位于各自的文件夹中:
x:\backup\2012-03-26\VSRV06 x:\backup\2012-03-26\VADS01 x:\backup\2012-03-26\VSQL01 ....等等