3

Как я могу использовать 7zip и командную строку для выбора определенных файлов по дате изменения и автоматизации с помощью командного файла?

2 ответа2

1

Хорошо. Я использовал Robocopy, чтобы отложить данные, которые были определенного возраста или старше, затем использовал 7za, чтобы сжать и удалить временные файлы. Увидеть ниже:

mkdir C:\Robocopy\Archive\Spool
mkdir C:\Robocopy\Archive\Spool\BackupLogs
mkdir C:\Robocopy\Archive\Spool\DRLogs

robocopy c:\Robocopy\Backup\BackupLogs\ C:\Robocopy\Archive\Spool\BackupLogs\ /move /minage:60
robocopy C:\Robocopy\Backup\DRLogs\ C:\Robocopy\Archive\Spool\DRLogs\ /move /minage:60
7za a c:\Robocopy\Archive\Archive.7z C:\Robocopy\Archive\Spool\

rmdir /S /Q C:\Robocopy\Archive\Spool

Здесь я имею дело с двумя наборами файлов журналов, одним из которых является резервное копирование на месте, а другим - резервное копирование за аварийное восстановление (DR).

Robocopy доступен в Windows Resource Kit (вот версия Server 2003) и имеет несколько довольно интересных функций. Здесь я использую аргумент /minage, который я использовал, чтобы указать, что файлы журнала старше 60 дней должны быть перемещены (не скопированы) в соответствующие папки в каталоге Spool. Затем я сжимаю содержимое каталога Spool в третье место, а затем окончательно удаляю каталог Spool.

0

В системах Linux следующая команда должна сжать файлы, содержащиеся в папке /path/to/your/folder старше 7 дней, в файл archive.7z :

find /path/to/your/folder -mtime +7 -exec 7z a archive.7z {} \; 

Но это не сохранит структуру каталогов. Аналогичная команда, которая сначала создает архив tar, а затем сжимает его с помощью 7z :

$ find /path/to/your/folder -mtime +7 -exec tar cf archive.tar {} \;
$ 7z a archive.tar.7z archive.tar

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .