Как я могу использовать 7zip и командную строку для выбора определенных файлов по дате изменения и автоматизации с помощью командного файла?
2 ответа
Хорошо. Я использовал 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.
В системах 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