У меня есть сервер Windows, который ежедневно выполняет резервное копирование, и каждое ежедневное резервное копирование занимает 1,5 ГБ, поэтому каждую ночь я хочу удалить файлы резервных копий старше 1 недели.
Вот как организованы мои резервные копии:
backup.20091118.gz.gpg, как вы можете видеть, часть 20091118 определяет дату файла, то есть 2009/11/18 (год, месяц, день).
Я планирую написать для этого быстрый пакетный сценарий и запланировать его через диспетчер задач, это хорошая идея? Если это так, я был бы очень рад помощи в части сценария пакетной обработки.
Наилучшие пожелания
Вместо того, чтобы беспокоиться о возрасте файлов, сначала удалите старые резервные копии, пока не останется всего 7 ежедневных резервных копий, а затем позаботьтесь об удалении самого старого файла в каталоге перед каждым новым резервным копированием.
Удалить самый старый файл в каталоге довольно просто с помощью пакетного скрипта:
SET BACKUPDIR=C:\PATH\TO\BACKUPS
FOR /F %%i IN ('DIR /B /O-D %BACKUPDIR%') DO SET OLDEST=%%i
DEL %BACKUPDIR%\%OLDEST%
Единственная настоящая уловка - это команда DIR /B /O-D
в котором перечислены простые имена файлов, отсортированные по дате, самые старые - последними. Мы используем FOR
цикл для захвата каждого имени файла в OLDEST
переменная, поэтому, когда цикл завершен %OLDEST%
расширится до имени самого старого файла.
Удалите самый старый файл прямо перед созданием новейшей резервной копии.
Удаление файлов происходит быстро, намного быстрее, чем резервное копирование ~ 1,5 ГБ, и резервное копирование уже запланировано.
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
самый "быстрый" способ ?? Предложение. скачать GNU find из Вот
затем просто создайте запланированную задачу следующим образом:
gnu_find.exe c:\path -type f -iname "backup.*gpg" -mtime +7 -delete
Возможно, вы захотите изучить более разумную и эффективную технологию резервного копирования, чем просто архивирование полных снимков. OS X имеет Машина времени который может делать ежечасные резервные копии. Он хранит только измененные файлы, поэтому, несмотря на то, что он не сжат, он очень эффективен. Благодаря некоторой умной индексации, после первоначального резервного копирования это намного быстрее, чем полный снимок. А поскольку он просто хранит файлы, а не в каком-то необычном формате архива, восстановить файл из резервной копии так же просто, как скопировать файл.
Вероятно, что-то подобное есть и для Windows. Реплика Seagate и Хронология джиннов есть две возможности.