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

Скрипт позволяет обновлять конфигурации 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=2024-04-08 10:01:00

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

STATUS=OFF

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

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

1 Comment

  1. Sedaiko

    (1) ok

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *