Пакетный файл backup.bat для автоматического архивирования файловых баз 8.2 с помощью назначенных заданий Windows .

Публикация № 167094

Администрирование - Архивирование (backup)

12
Архивирование баз  для  чайников и блондинок с помощью .bat файла.  Из массы имеющихся в инете разработок по этому вопросу отобрала и  составила по максимуму простой вариант.  Сама отношусь к категории блондинок, поэтому публикую для людей без опыта написания пакетных файлов.

Текст пакетного файла:

rem "путь к файлу архива базы"

SET PBACKUP=D:\backup\1Cv8

rem "путь к базе"

SET SOURC=D:\1Cdata\basa

rem "пользователь"

SET USER=admin

rem "пароль"

SET PASSVD=123

 

tskill *1cv8* /a /v

if exist %PBACKUP%.dt copy %PBACKUP%.dt %PBACKUP%_old.dt

"C:\Program Files (x86)\1cv82\common\1cestart.exe" config /f %SOURC% /N %USER% /P %PASSVD% /DumpIB %PBACKUP%.dt

if %date:~0,2%%date:~3,2% == 0101 copy %PBACKUP%.dt %PBACKUP%%date:~0,2%%date:~3,2%%date:~6,4%.dt

if %date:~0,2%%date:~3,2% == 0107 copy %PBACKUP%.dt %PBACKUP%%date:~0,2%%date:~3,2%%date:~6,4%.dt

 

Для создания архива файловой базы 8.2 достаточно в принципе прописать одну строчку в пакетном файле:

"C:\Program Files (x86)\1cv82\common\1cestart.exe" config /f %SOURC% /N %USER% /P %PASSVD% /DumpIB %DIRNAME%\%FILENAME%.dt

Для базы клиент-серверной  вместо  ключа  /f  используем  ключ  /s

Такая строка открывает базу в режиме конфигуратор под определенным пользователем и создает архивную копию в указанный каталог. Использую для определения параметров запуска и путей переменные среды, которые определяются вначале пакетного файла. Но можно указать  конкретные значения параметров сразу в этой конструкции и запускать .bat файл с одной строкой. Но при этом есть угроза затереть создаваемый перезаписываемый архив при любом сбое.

Поэтому увеличение количества строк в .bat файле обусловлено созданием резервного копирования архива.

Есть две особенности при задании переменных среды:

1.Пакетные файлы не дружат с кириллицей. Пути , пользователь и пароль должны быть прописаны с использованием только английского шрифта и цифр.

2.Между именем переменной среды, знаком равенства  и значением переменной не должно быть пробела: PBACKUP=D:\backup\1Cv8

Строка  tskill *1cv8* /a /v  

-  очистка зависших терминальных сессий

Остальные три строки команд предназначены для резервирования архивных копий.

if exist %PBACKUP%.dt copy %PBACKUP%.dt  %PBACKUP%_old.dt

– копирует файл с именем 1Cv8.dt в файл с именем 1Cv8_old.dt  То есть, сохраняет(перезаписывает) предыдущий архив перед созданием нового.

if %date:~0,2%%date:~3,2% == 0101 copy %PBACKUP%.dt %PBACKUP%%date:~0,2%%date:~3,2%%date:~6,4%.dt

 - Если текущая дата равна дате начала года копирует созданный архив в файл с датой в имени файла , например 1Cv801012012.dt , чтобы он хранился в архивной папке и не затирался.

Аналогично конструкция

if %date:~0,2%%date:~3,2% == 0107 copy %PBACKUP%.dt %PBACKUP%%date:~0,2%%date:~3,2%%date:~6,4%.dt

- резервирует копию базы за дату 01.07. каждого года.

При использовании пакетного файла из публикации достаточно в переменных среды указать конкретные данные по вашей базе и каталогу сохранения архива и создать для него удобное для вашего сервера назначенное задание Windows.

12

Скачать файлы

Наименование Файл Версия Размер
backup.bat
.bat 0,55Kb
20.12.12
116
.bat 0,55Kb 116 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. olegol 5 21.12.12 13:51 Сейчас в теме
1.Пакетные файлы не дружат с кириллицей.


Пакетные файлы хорошо дружат с кириллицей. Только кодировку надо выбрать не 1251, а 866
2. AlenaSa 27 21.12.12 14:48 Сейчас в теме
(1) спасибо. однако дружба при определенных условиях :)
тем более , что эти условия для меня , например, непонятны:
я не могу выбрать при сохранении файла кодировку 866
Зато могу выбрать ANSI, UTF-8, Юникод. :) Какая из них 866, какая есть непременным условием дружбы?
3. andrewks 1268 21.12.12 21:36 Сейчас в теме
(2)
я не могу выбрать при сохранении файла кодировку 866

зачастую её ещё называют OEM.
а вообще - AkelPad Вам в помощь http://akelpad.sourceforge.net
4. VasMart 31.12.12 03:30 Сейчас в теме
А я бы порекомендовал ознакомиться с http://www.cobiansoft.com/index.htm
Присутствует главная плюшка - теневое копирование + отсылка отчетов на почту и бесплатно.
user894693; sulphite; Огонек; +3 Ответить
5. vadimlp77 29 04.02.13 04:54 Сейчас в теме
Что делать с тонкими клиентами ?
6. denisk37 65 08.12.13 17:50 Сейчас в теме
(5) vadimlp77, добивать их тонких, клиентов!

автору спасибо, взял на вооружение строчку:
tskill *1cv8* /a /v

WinXP, Win 7 заработала сходу!
7. AlenaSa 27 09.12.13 02:42 Сейчас в теме
Спасибо за оценку!

Вопрос по тонким клиентам не поняла.
Если ответ "добивать" подходит, то + 1 :)
8. ssn5810 84 28.02.14 10:01 Сейчас в теме
все кто не получают зарплату в мелкософт идиоты и блондинки !!!!
9. scru22 30.07.17 08:23 Сейчас в теме
Спасибо. Возможно, чуть рациональнее задать формат даты в виде год-месяц-день, чтоб легче искать в залежах архивов.
10. Alex10166 13.06.18 11:39 Сейчас в теме
Друзья, подскажите по теме статьи:
Пакетная обработка выполняется только если нет других интерактивных сеансов?
У меня работает только если к базе ни один сеанс в этот момент времени не подключен. Если запущено клиентское приложение на этой базе, то пакетная обработка не срабатывает.
Как это устроено?
11. AlenaSa 27 13.06.18 18:44 Сейчас в теме
(10) Строка tskill *1cv8* /a /v должна закрывать все открытые сеансы, но предполагаю что не срабатывает при открытых сеансах на тонких и WEb клиентах . Однако это с моей стороны лишь такое себе предположение. Ждите , возможно, что более грамотные разработчики ответят обоснованно и убежденно :)
12. Alex10166 15.06.18 14:10 Сейчас в теме
(11)
tskill *1cv8* /a /v
у меня это работает почему-то
13. M_Volkov 2 28.09.18 05:10 Сейчас в теме
(12)
Строка tskill *1cv8* /a /v - очистка зависших терминальных сессий

Только терминальных? Другие видимо не используются. Так вот почему здесь отсутствует команды блокировки и раз блокировки базы (/CЗавершитьРаботуПользователей и /CРазрешитьРаботуПользователей)!?
Оставьте свое сообщение