|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Доработка и проверка скрипта архивирования |
|
CMD/BAT - [решено] Доработка и проверка скрипта архивирования
|
Пользователь Сообщения: 95 |
Профиль | Отправить PM | Цитировать
Добрый день уважаемые форумчане. Прошу Вашей помощи в проверке и доработке файла .bat так как сам я не очень силен в этой области, но что то нашел в интернете что то подправил сам. И так задача:
Есть 2 сервера: 1 хранятся Бд SQL и 1C. Путь D:\Programs\1C и резервные копии БД SQL D:\MSSQL\MSSQL\Backup\21_00. Есть промежуточные папка D:\ARHIV\ARHIV_1C и D:\ARHIV\ARHIV_BD 2 сервер на котором должны храниться копии сервера 1. Путь \\Server-domain\d$\ARHIV\ARHIV_BD и \\Server-domain\d$\ARHIV\ARHIV_1C . Нужно сделать так что бы каждый день на сервере 1 делались архивы 1С и BD и копировались на сервер 2. При этом архивы на сервере 1 должны храниться не более 7 дней. Сделал такой исполняемый файл и сохранил его как start.bat: код
D:
cd D:\Programs\1C rar a -agYYYY.MM.DD -m5 -r -x D:\ARHIV\ARHIV_1C\backup_.rar *.* cd D:\MSSQL\MSSQL\Backup\21_00 rar a -agYYYY.MM.DD -m5 -r -x D:\ARHIV\ARHIV_BD\backup_.rar *.* copy /Y D:\ARHIV\ARHIV_1C\*.rar \\Server-domain\d$\ARHIV\ARHIV_1C\*.rar copy /Y D:\ARHIV\ARHIV_BD\*.rar \\Server-domain\d$\ARHIV\ARHIV_BD\*.rar Forfiles /P D:\ARHIV\ARHIV_1C /S /M *.* /D -7 /C "cmd /c del /Q @path" Forfiles /P D:\ARHIV\ARHIV_BD /S /M *.* /D -7 /C "cmd /c del /Q @path" Скажите все ли тут так? можно ли что то облегчить? И как к моей задаче сделать Log файл. Заранее всем спасибо за советы и участие в теме! P.S. Знаю что команды forfiles и copy можно заменить командой robocopy, но как понять не могу. Хотя возможно я ошибаюсь что их можно заменить... |
|
Отправлено: 13:16, 24-01-2018 |
Пользователь Сообщения: 95
|
Профиль | Отправить PM | Цитировать megaloman, Увы но к сожалению есть, но только во вложенных папках.
Наверное из за этого. Дело все в том что каждый бекап БД создается в папке с названием БД 1) База kin2017 хранится в D:\MSSQL\MSSQL\Backup\21_00\kin2017 2) База kin2018 Хранится в D:\MSSQL\MSSQL\Backup\21_00\kin2018 и т.д. P.S. Так устроен SQL. Он для каждой БД создает вложенную папку с её названием |
Отправлено: 23:55, 11-02-2018 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 95
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 23:58, 11-02-2018 | #32 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать igor.kinma,
Быстрое решение.
Цитата igor.kinma:
|
|
------- Последний раз редактировалось megaloman, 12-02-2018 в 00:58. Отправлено: 00:47, 12-02-2018 | #33 |
Пользователь Сообщения: 95
|
Профиль | Отправить PM | Цитировать megaloman, Доброе утро. Заменил строчку, запустил скрипт. Итог:
Сервер 1: Создалась папка D:\MSSQL\MSSQL\Backup\21_00\...\SQLbak В не переместились все файлы из D:\MSSQL\MSSQL\Backup\21_00\... Создались папки ( D:\ARHIV\1C\Days, D:\ARHIV\1C\Month, D:\ARHIV\1C\Year) В них создались архивы: 1) D:\ARHIV\1C\Days\ (нет архива) 2) D:\ARHIV\1C\Month\(нет архива) 3) D:\ARHIV\1C\Year\(нет архива) D:\ARHIV\1C\Update_1C_Backup.rar Создались папки ( D:\ARHIV\SQL\...\Days, D:\ARHIV\SQL\...\Month, D:\ARHIV\SQL\...\Year) В них создались архивы: 1) D:\ARHIV\SQL\...\Days\ (2018.02.12_SQL_Backup.rar) 2) D:\ARHIV\SQL\...\Month\(2018.02.12_SQL_Backup.rar) 3) D:\ARHIV\SQL\...\Year\(2018.02.12_SQL_Backup.rar) 4) D:\ARHIV\SQL\ (нет архива) Сервер 2: Создались папки ( \\Server-domain\d$\ARHIV\1C\Days, \\Server-domain\d$\ARHIV\1C\Month, \\Server-domain\d$\ARHIV\1C\Year) В них создались архивы: 1) \\Server-domain\d$\ARHIV\1C\Days\Пусто 2) \\Server-domain\d$\ARHIV\1C\Month\Пусто 3) \\Server-domain\d$\ARHIV\1C\Year\Пусто \\Server-domain\d$\ARHIV\1C то же пусто (тоесть Update_1C_Backup.rar не скопировался) Создались папки ( \\Server-domain\d$\ARHIV\SQL\...\Days, \\Server-domain\d$\ARHIV\SQL\...\Month, \\Server-domain\d$\ARHIV\SQL\...\Year) В них создались архивы: 1) \\Server-domain\d$\ARHIV\SQL\...\Days\ (2018.02.12_SQL_Backup.rar) 2) \\Server-domain\d$\ARHIV\SQ\...\Month\(2018.02.12_SQL_Backup.rar) 3) \\Server-domain\d$\ARHIV\SQ\...\Year\(2018.02.12_SQL_Backup.rar) \\Server-domain\d$\ARHIV\SQL (пусто) ... Заменены названия папок содержащие названия БД (kin2017, kin2018 и т.д.) Прикрепляю Лог: Файл 151217, Файл 151218 |
Последний раз редактировалось igor.kinma, 23-09-2018 в 12:26. Отправлено: 11:50, 12-02-2018 | #34 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать igor.kinma, 1. 1C. Народ работает, поэтому часть файлов заблокировано и полноценный архив не создан. ИМХО, это правильно, не надо неполноценный архив хранить, не надо тешить себя иллюзией, что полноценная копия есть.
Цитата igor.kinma:
Если сегодня вечером Вы снова запустите скрипт и если никто не будет держать файлы (RAR сделает нормальный архив), то получите нормальный результат. 2. SQL. По логу скрипт отработал нормально. Бэкапы на обоих серверах разложились правильно. Единственное, естественно, что реально заархивировались вчерашние бэкапы (точнее, там сейчас в каждом Rar-файле 5 бэкапов за неделю) в архив с сегодняшней датой. Если Вы сегодня вечером намерены запустить скрипт для архивирования сегодняшних бэкапов, хотелось бы, чтобы эти архивы старых бэкапов не перезаписались. Поэтому, переименуйте все 2018.02.12_SQL_Backup.rar в, например, 2018.02.09_SQL_Backup.rar. Чтобы не делать это ручками, вот скрипт @Echo Off cls Set "Sql_Arc1=D:\ARHIV\SQL" Set "Sql_Arc2=\\Server-domain\d$\ARHIV\Sql" Set "Name1=2018.02.12_SQL_Backup.rar" Set "Name2=2018.02.09_SQL_Backup.rar" FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%Sql_Arc1%\%Name1%" /B /A:-D /S`) DO Ren "%%f" "%Name2%" FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%Sql_Arc2%\%Name1%" /B /A:-D /S`) DO Ren "%%f" "%Name2%" Pause Итак, ИМХО, полёт нормальный. |
|
------- Последний раз редактировалось megaloman, 12-02-2018 в 13:03. Отправлено: 12:54, 12-02-2018 | #35 |
Пользователь Сообщения: 95
|
Профиль | Отправить PM | Цитировать megaloman, Большое спасибо. Запущу этот скрипт в Планировщик в 21:30 и понаблюдаю за работой. Если можно объясните пожалуйста что будет храниться в папках Days, Month и Year. И файлы из папки D:\MSSQL\MSSQL\Backup\21_00\...\SQLbak буду сами удаляться ?
|
Отправлено: 13:08, 12-02-2018 | #36 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать что будет храниться в папках Days, Month и Year. И файлы из папки D:\MSSQL\MSSQL\Backup\21_00\...\SQLbak буду сами удаляться
Для каждой задачи своя процедура :Back_C1 :Back_SQL в которой есть некоторые настроечные параметры Days Ежедневные архивы. Число хранимых ежедневных архивов на 1 и втором серверах NDays1=6 и NDays2=14 Думайте сами сколько надо. Если надо, измените в соответствующей процедуре. Там есть пояснение. Month Три архива за месяц: первый и последний рабочий день, и за первый рабочий день на дату Middle=15 Число хранимых архивов за месяц на 1 и втором серверах NMonth1=7 (больше двух мес) и NMonth2=10 (больше квартала) Year Два архива в год, за первый и последний рабочие дни года. Автоматическое удаление старых архивов не предусмотрено. Файлы из папки D:\MSSQL\MSSQL\Backup\21_00\...\SQLbak буду сами удаляться Число сохраняемых SQL бэкапов NSQLbak=5 |
------- Отправлено: 14:07, 12-02-2018 | #37 |
Пользователь Сообщения: 95
|
Профиль | Отправить PM | Цитировать И так Уважаемый megaloman, Ваш скрипт работает с 12.02.2018. Что Мы имеем на 21.02.2018
На сервере 1: 1c 1) \\SERVER\D$\ARHIV\1C\Days\ лежат архивы с 13.02.2018 по 20.02.2018 2) \\SERVER\D$\ARHIV\1C\Month\ лежат архивы 2018.02.15_1C_Backup.rar и 2018.02.20_1C_Backup.rar 3) \\SERVER\D$\ARHIV\1C\Year\ лежат архивы 2018.02.19_1C_Backup.rar и 2018.02.20_1C_Backup.rar 4) \\SERVER\D$\ARHIV\1C\ лежит архив Update_1C_Backup.rar SQL 1)\\SERVER\D$\ARHIV\SQL\kin2017\Days\ лежат архивы с 13.02.2018 по 20.02.2018 2) \\SERVER\D$\ARHIV\SQL\kin2017\Month\ лежат архивы 2018.02.15_SQL_Backup.rar и 2018.02.20_SQL_Backup.rar 3) \\SERVER\D$\ARHIV\SQL\kin2017\Year\ лежат архивы 2018.02.19_SQL_Backup.rar и 2018.02.20_SQL_Backup.rar Log \\SERVER\D$\ARHIV\Log\ лежат логи с 2018.02.13 по 2018.02.20 На сервере 2: 1c 1) \\SERVER-DOMAIN\D$\ARHIV\1C\Days\ лежат архивы с 12.02.2018 по 20.02.2018 2) \\SERVER-DOMAIN\D$\ARHIV\1C\Month\ лежат архивы 2018.02.15_1C_Backup.rar и 2018.02.20_1C_Backup.rar 3) \\SERVER-DOMAIN\D$\ARHIV\1C\Year\ лежат архивы 2018.02.19_1C_Backup.rar и 2018.02.20_1C_Backup.rar SQL 1)\\SERVER-DOMAIN\D$\ARHIV\SQL\kin2017\Days\ лежат архивы с 12.02.2018 по 20.02.2018 2) \\SERVER-DOMAIN\D$\ARHIV\SQL\kin2017\Month\ лежат архивы 2018.02.15_SQL_Backup.rar и 2018.02.20_SQL_Backup.rar 3) \\SERVER-DOMAIN\D$\ARHIV\SQL\kin2017\Year\ лежат архивы 2018.02.19_SQL_Backup.rar и 2018.02.20_SQL_Backup.rar Вроде все хорошо но смущают архивы в папках Month и Year |
Отправлено: 10:58, 21-02-2018 | #38 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доработка скрипта на Bash | parrabol | Программирование в *nix | 4 | 31-10-2016 14:45 | |
Java - маленькая доработка скрипта СТАТИСТИКА | Kos2an | Программирование и базы данных | 0 | 04-10-2013 23:06 | |
VBS/WSH/JS - доработка скрипта | ZeVSalt | Программирование и базы данных | 3 | 23-09-2011 22:33 | |
Проверка параметров запуска скрипта | morgan1991 | AutoIt | 2 | 03-03-2009 00:43 |
|