我有一个Windows服务器机器,每天进行每日备份,每天每天备份需要1.5GB,我想删除超过1周的备份文件。
这是我的备份文件是如何组织的:
backup.20091118.gz.gpg,你可以看到20091118部分是标识文件date是2009/11/18(年,月,日)的部分。
我打算为此编写一个快速批处理脚本,并通过任务pipe理器进行排定,这是一个好主意吗? 如果是的话,我会非常乐意在批处理脚本部分获得帮助。
最好的祝福
首先删除旧的备份,直到每天只剩下7个备份,然后担心删除目录中最早的文件,然后再执行每个新的备份,而不用担心文件的存在时间。
在批处理脚本中删除目录中最旧的文件非常容易:
SET BACKUPDIR=C:\PATH\TO\BACKUPS FOR /F %%i IN ('DIR /B /OD %BACKUPDIR%') DO SET OLDEST=%%i DEL %BACKUPDIR%\%OLDEST%
唯一真正的技巧是命令DIR /B /OD列出按datesorting的纯文件名,最后最老的。 我们使用FOR循环来捕获OLDESTvariables中的每个文件名,因此当循环完成时, %OLDEST%将扩展为最旧文件的名称。
在创build最新的备份之前删除最早的文件。
文件删除速度快,比备份〜1.5GB快得多,备份已经安排好了。
“最快”的方式? 一条build议。 从这里下载GNU发现
那么简单地创build如下的计划任务:
gnu_find.exe c:\path -type f -iname "backup.*gpg" -mtime +7 -delete
http://windowsitpro.com/Files/07/40511/Weblisting_01.txt
http://www.shell-tips.com/2006/09/27/delete-old-files-by-last-access-date/
https://stackoverflow.com/questions/51054/batch-file-to-delete-files-older-than-n-days
您可能希望查看更智能,更高效的备份技术,而不仅仅是归档完整的快照。 OS X拥有可以进行小时备份的Time Machine 。 它只存储改变的文件,所以尽pipe是非压缩的非常有效的空间。 由于一些巧妙的索引,在初始备份之后它的速度比完整的快照快得多。 而且因为它只是存储文件,没有华丽的存档格式,从备份中恢复文件就像复制文件一样简单。
Windows可能有类似的东西。 希捷副本和精灵时间表是两种可能性。