Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=3460)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ 1С:Предприятие 8.1 _ Архивное копирование автоматически и ежедневно 1с8

Автор: mister-x 21.04.11, 15:40

Выложил в виду "молодсти и горячести" ХД и критики со стороны, дабы не спотыкаться в дальнейшем =)

Не буду углубляться в подробности почему я сделал так и не воспользовался предложенными вариантами, а начну сразу.

встала потребность корректного и ежедневного копирования базы (судя из поста 1с ников, где говорилось что лучше всего копировать сам CD'шник ибо его проще восстановить), ну и собственно говоря как я его решил.

создал 3 файла bat, которые запускаются через планировщик.

1й файл) Пишет сообщение о том что база будет отключена в такой то промежуток времени;

через 10 минут запускается второй файл

2й файл) Закрывает возможность для подключения через терминал и отключает сессии (для корректного копирования необходимо что бы с базой никто не работал)

опять же промежуток 5-10 минут (для того что бы сессии закрылись)

3й файл) средствами винрар создается с именем даты и времени пакет, разрешает терминальный вход, ну и собственно говоря пишет сообщение о том, что в базе можно работать

любую адекватную критику приму с удовольствием ибо молодой и не опытный =)



ну и собственно текст файлов

1) назовем его к примеру send.bat (первые две строчки можно и не писать, но в этом случае желательно создать этот текс в WordPad и сохранить в кодировке MS_Dos иначе абра кадабра будет)

@echo off

chcp 1251

net send * "Просьба завершить работу в базе 1с8 с 07:30 до 08:00"


2) пусть будет reset.bat - тут уже первой строкой мы запрещаем вход в терминал, а второй строкой закрываем все сесси кроме консоли




change logon /disable

for /f "tokens=1,2,3" %%i in ('query session') do echo "%%i" | find "console" || reset session %%k || reset session %%j




3) Пусть будет copy - вот его я сделал через WordPad и сохранил МС_Дос ибо сообщение он не хотел писать на понятном языке, а выводил абра кадабру, ну и вдруг у кого используются в пути к базе или backup'у русские имена.

1я строка копирует базу в архив с именем даты и времени

2я строка разрешает подключение к терминалам

3я строка пишет что можно работать

"c:\Program Files\WinRAR\WinRAR.exe" a -m2 -ag -dh -r -y -ep1 -x*.md "Куда сохраняем копию\" "откуда копируем\*.*"

change logon /enable

net send * "'В базе можно работать!"




------------------------------------------------------------------------

сильно прошу не пинать а если что не так, то подсказать =)



------------------------------------------------------------------------

ну или вот вариант мне больше нравится.


где CHOICE /T 600 /D y - что то вроде timeout'a который выполняется через 600 секунд, получается 1 батник (только сохранен должен быть обязательно в формате MS_Dos)

net send * "Просьба завершить работу в базе 1с8 с 07:30 до 08:00"

CHOICE /T 600 /D y

change logon /disable

echo y | logoff rdp-tcp

CHOICE /T 120 /D y

"c:\Program Files\WinRAR\WinRAR.exe" a -m2 -ag -dh -r -y -ep1 -x*.md "Путь к бэкапу\_ " "путь к базе\*.*"

change logon /enable

net send * "В базе можно работать!"


Стаття http://pro1c.org.ua/redirect.php?http://infostart.ru/public/84318/

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua