Самый быстрый способ удаления файлов по расписанию в Windows
У меня есть компьютер с Windows-сервером, который ежедневно выполняет резервное копирование, и каждое ежедневное резервное копирование занимает 1,5 ГБ, поэтому каждую ночь я хочу удалять файлы резервных копий старше 1 недели.
Вот как организованы мои резервные файлы:
backup.20091118.gz.gpg, как вы видите, часть 20091118 идентифицирует дату файла 2009/11/18 (год, месяц, день) .
Я планирую написать для этого быстрый пакетный скрипт и запланировать его через диспетчер задач. Это хорошая идея? Если это так, я был бы признателен за помощь в части пакетного сценария.
С уважением
5 ответов
Вместо того, чтобы беспокоиться о возрасте файлов, сначала удалите старые резервные копии, пока не останется только 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 ГБ, и резервное копирование уже запланировано.
Самый быстрый способ Предложение. скачать GNU найди отсюда
затем просто создайте запланированное задание следующим образом:
gnu_find.exe c:\path -type f -iname "backup.*gpg" -mtime +7 -delete
Возможно, вы захотите взглянуть на более умную и эффективную технологию резервного копирования, чем просто архивирование полных снимков. OS X имеет Time Machine, которая может делать ежечасные резервные копии. Он хранит только измененные файлы, поэтому, несмотря на то, что он распакован, он очень компактен. Из-за некоторого умного индексирования после первоначального резервного копирования это намного быстрее чем полный снимок. А поскольку он просто хранит файлы, а не какой-то необычный формат архива, восстановление файла из резервной копии так же просто, как и копирование файла.
Там, вероятно, что-то подобное для Windows. Seagate Replica и Genie Timeline - это две возможности.