![]() |
Копирование файлов по расписанию
Добрый день! Нужна помощь в создании скрипта, который копировал бы файлы созданные 1 и 15 числа каждого месяца из папки "\\10.10.0.1\BackUp\Base1\" в папку "Z:\SQL\Bases1"
Возможно есть вариант удалять промежуточные бэкапы из папки \\10.10.0.1\BackUp\Base1\ , оставляя каждый месяц бэкап 1 числа, 15 числа, и 5 последних. Бэкапы создаются каждый день в формате .rar |
Цитата:
Как ориентироваться на даты? Они как-то фигурируют в именах или надо ориентироваться исключительно на дату последнего изменения? |
Цитата:
Work_backup_2019_08_29_051354_6868648.bak.rar - В папке только архивы с бэкапами SQL, имя одинаковое, только число меняется. |
Код:
@Echo Off Call :JobBack в зависимости от разных префиксов бэкапов баз (то есть для разных баз) "01 15" дни месяца копируемых и хранимых бэкапов. Может быть несколько дат, например "01 08 15 22" 5 - число неудаляемых свежих бэкапов. Можете поставить иное число. Приведенный скрипт можете запускать планировщиком каждый день. Повторного копирования баз за 01 15 число не будет. Скрипт будет оставлять все исходные бэкапы за 01 и 15 числа и удалять все остальные, кроме 5 последних. |
Особо не проверял, допилите, если потребуется.
Код:
$src = "\\10.10.0.1\BackUp\Base1\" |
Цитата:
Call :JobBack "\\192.168.100.23\test2\base2\ IWZ_backup_" "_*_*.bak.rar" "01 15" 5 "Z:\SQL\IWZ" |
Цитата:
Вот часть кода архивирования бэкапа Код:
Set "Arc="C:\Program Files\WinRAR\WinRAR.exe" a -m1 -df" |
Цитата:
Если у Вас бэкап изначально с именем IWZ_backup_201909020500.bak то rar не сделает Вам IWZ_backup_2019_09_02_0500.bak.rar Ключ -ag+YYYY_MM_DD допишет дату перед именем, -agYYYY_MM_DD допишет дату перед .rar Вот вариант для разных форматов дат
Код:
@Echo Off Код:
0123456789 Аргумент Где_вырезать_день |
Цитата:
|
Время: 22:35. |
Время: 22:35.
© OSzone.net 2001-