Bash-скрипт обновления конфигураций 1С по расписанию на сервере CentOS 7

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

Администрирование - Сервисные утилиты

Linux CentOS PostgreSQL Обновление

2
Скрипт позволяет обновлять конфигурации 1С, находящиеся на поддержке, непосредственно на самом сервере 1С Предприятие под управлением CentOS 7 без установки графического окружения.

Как обновлять конфигурации на поддержке используя команды пакетного режима запуска  в среде Windows  многие знают. Однако обязательным условием запуска клиента 1С является наличие графического окружения (иксов). Чтобы использовать пакетный режим под CentOS и не устанавливать "окна", можно использовать пакет Xvfb, рекомендуемый 1С (https://its.1c.ru/db/freshpub/content/105/hdoc). Предлагаемый скрипт как раз и использует эту возможность.

Порядок действий скрипта:

  1. Считывает файлы заданий из каталога
  2. Проверяет флаг активности задания и существования файла обновлений
  3. Сравнивает время задачи с текущей датой
  4. проверяет установку Xvfb и, в случае необходимости устанавливает
  5. Устанавливает блокировку регламентных задание и сеансов
  6. Создает резервную копию средствами PostgreSQL
  7. Обновляет конфигурацию из файла
  8. Обновляет конфигурацию информационной базы
  9. Запускает конфигурацию в режиме 1С Предприятия для выполнения процедур обновления
  10. Снимает блокировку регламентных задание и сеансов

Перед началом работы необходимо установить толстый клиент (для этого я и включил установку толстого клиента в скрипт)

Установка и настройка:

  • Сам скрипт записывается в любой каталог. В этот же каталог копируем файл update.epf
  • Настраиваем переменные в начале скрипта:

SERVER="192.168.0.10" - адрес кластера

BLOCK_CODE="123"  - код для блокировки информационной базы (см. параметр пакетного запуска /UC )

SHEDULE_DIR=/home/files/install  - каталог поиска файлов заданий, например "расшаренный" samba

  • устанавливает права на запуск chmod +x update_cfg.sh
  • чтобы на застрять в vim и не выключать компьютер :-) , выполните export EDITOR=nano (или mcedit)
  • командой crontab -e добавляем задание запускать каждые 5 минут в cron (указываем полный путь к файлу update_cfg.sh):

*/5 * * * * /root/update_cfg.sh

Теперь каждые 5 минут скрипт будет искать задачи в каталоге SHEDULE_DIR и выполнять необходимые действия (другой вариант запускать один раз, скажем в 23:00)

Файл задания имеет расширение *.upd.1c и следующую структуру:

DB_NAME=zgu

имя базы в кластере

DB_USR=Админ

Логин пользователя с полными правами и отключенным флагом "защита от опасных действий"

DB_PWD=123

Пароль соответственно

FILE=/home/files/install/1cv8.cf

Файл обновления *.cfu, *.cf

BK_DIR=/home/files/install

Каталог, в который будет записана резервная копия

NEW_VER=3.1.9.28

Номер версии, чисто для отображения в сообщении блокировки

TIME=2019-04-08 10:01:00

Дата и время запуска

STATUS=OFF

Статус активности задания ON/OFF

 
Разумеется не забываем о безопасности - файлы скрипта, заданий и  update.epf не должны быть доступны простым пользователям. Так же запуск скрипта через cron можно сделать от имени пользователя usr1cv8 (crontab -u usr1cv8 -e). Но в этом случае установку и управление службой Xvfb.service следует исключить из тела скрипта и установить запуск про старте системы systemctl enable Xvfb.service.

2

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

Наименование Файл Версия Размер
Bash-скрипт обновления конфигураций 1С по расписанию на сервере CentOS 7:
.zip 5,34Kb
26.04.19
2
.zip 5,34Kb 2 Скачать

См. также

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

Комментарии
Избранное Подписка Сортировка: Древо
1. edelweiss 27.04.19 15:02 Сейчас в теме
На этом сайте такому простому, грешному быдлу, как я, великими местными гуру не разрешено переписываться с пользователями, но Ваши сообщения, которые Вы писали, я увидел, поэтому, если Вы оставите свой контакт для связи, - буду очень признателен!
2. Sedaiko 199 27.04.19 17:45 Сейчас в теме
Оставьте свое сообщение