Задача:
Настроить бекап на винде с исключением определенных папок
Инструмент:
7zip
Приступим.
И так, нужно бекапить нужные нам файлы в нужное место, при этом исключить несколько директории.
После определенных наступаний на грабли, строка приняла вид:
7za.exe a -tzip -ssw -mx5 -r0 -x@exclusions.txt D:\backup\bak_%data%_archive C:\file_for_backup > log.txt
Поподробней об использованных ключах:
-tzip формат архива установлен в zip, без этого ключа умолчальный формат 7z;
-ssw принудительная упаковка файлов, которые в данный момент открыты для записи (мало ли кто-то засиделся на работе и что-то там правит);
-mx7 высокая степень сжатия (7), можно поставить и 5 (нормальное сжатие), тогда процесс пойдет побыстрее;
-r0 (это ноль, а не буква О) исключения, которые будут прописаны дальше обрабатываются только в рабочем каталоге;
-x@exclusions.txt это собственно говоря файл со списком исключений, которые не будем архивировать. Каждая строка файла — новое исключение. Можно использовать маски типа *.ext и т.п. Если исключение не много, то можно обойтись и без файла, в таком случае ключ примет следующий вид: -x!*.ext;
D:\backup\bak_%data%_archive это соответственно путь и имя нового архива;
%data% - соответственно дата создания архива;
C:\file_for_backup это папка, которая подлежит упаковке;
> log.txt - вывод будет перенаправлен в текстовый файл.
Все вроде бы просто, закидываем в exclusions.txt директории которые нам не нужны и определенные файлы по маске и радуемся жизни, но не все так просто. Если работа с исключениями по маске пашет как часы, то вот с папками у меня был полный провал.
Сам exclusions.txt был вида:
*.log
*.tmp
C:/file_for_backup/papka1/no_bak
C:/file_for_backup/papka2/papka3/no_bak1
В итоге папки не работали, после нескольких часов экспериментов, получилось добиться нужного результата сделав вот так:
*.log
*.tmp
*/papka1/no_bak
*/papka2/papka3/no_bak1
В чем была проблема и почему 7za не нравятся абсолютные пути, я так и не понял, добавление двойных кавычек тоже кстати ни какой роли не сыграло, хотя их советуют ставить.
P.S. Да, и ни в коем случае не делайте бекапы на тот же винт, лучше их куда-то сливать, а уж что это, облако или другой сервер, решать вам.
Настроить бекап на винде с исключением определенных папок
Инструмент:
7zip
Приступим.
И так, нужно бекапить нужные нам файлы в нужное место, при этом исключить несколько директории.
После определенных наступаний на грабли, строка приняла вид:
7za.exe a -tzip -ssw -mx5 -r0 -x@exclusions.txt D:\backup\bak_%data%_archive C:\file_for_backup > log.txt
Поподробней об использованных ключах:
-tzip формат архива установлен в zip, без этого ключа умолчальный формат 7z;
-ssw принудительная упаковка файлов, которые в данный момент открыты для записи (мало ли кто-то засиделся на работе и что-то там правит);
-mx7 высокая степень сжатия (7), можно поставить и 5 (нормальное сжатие), тогда процесс пойдет побыстрее;
-r0 (это ноль, а не буква О) исключения, которые будут прописаны дальше обрабатываются только в рабочем каталоге;
-x@exclusions.txt это собственно говоря файл со списком исключений, которые не будем архивировать. Каждая строка файла — новое исключение. Можно использовать маски типа *.ext и т.п. Если исключение не много, то можно обойтись и без файла, в таком случае ключ примет следующий вид: -x!*.ext;
D:\backup\bak_%data%_archive это соответственно путь и имя нового архива;
%data% - соответственно дата создания архива;
C:\file_for_backup это папка, которая подлежит упаковке;
> log.txt - вывод будет перенаправлен в текстовый файл.
Все вроде бы просто, закидываем в exclusions.txt директории которые нам не нужны и определенные файлы по маске и радуемся жизни, но не все так просто. Если работа с исключениями по маске пашет как часы, то вот с папками у меня был полный провал.
Сам exclusions.txt был вида:
*.log
*.tmp
C:/file_for_backup/papka1/no_bak
C:/file_for_backup/papka2/papka3/no_bak1
В итоге папки не работали, после нескольких часов экспериментов, получилось добиться нужного результата сделав вот так:
*.log
*.tmp
*/papka1/no_bak
*/papka2/papka3/no_bak1
В чем была проблема и почему 7za не нравятся абсолютные пути, я так и не понял, добавление двойных кавычек тоже кстати ни какой роли не сыграло, хотя их советуют ставить.
P.S. Да, и ни в коем случае не делайте бекапы на тот же винт, лучше их куда-то сливать, а уж что это, облако или другой сервер, решать вам.
exclusions.txt в каком каталоге размещять необходимо?
ОтветитьУдалитьВ exclusions.txt адреса файлов и каталогов указывается относительно корня архива.
ОтветитьУдалитьПример файла:
file_for_backup/papka1/no_bak
file_for_backup/papka2/papka3/no_bak1