Платформа 1C: Предприятие 8.3 в корпоративной сети РедОС. Тысяча мелочей

10.01.25

Администрирование - Linux

Задача разработки перед выполнением проходит пять стадий принятия: отрицание, гнев, поиск в интернете, депрессия и чтение документации. Некоторым темы, затронутые в публикации, будут знакомы, некоторым покажутся банальными, но, надеюсь, некоторым они сэкономят немного времени и нервов. По сути это шпаргалка самому себе по тем вещам, которые потребовали более часа поисков.

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

©www.anekdot.ru

 

Напомню, что в прошлых публикациях цикла был собран полноценный контур сети среднего класса AD с серверами 1С Предприятие и PostgreSQL, размещенными на отечественной РЕДОС.

С отказоустойчивостью, балансировкой нагрузки, авторизацией ОС, системой взаимодействия, архивированием etc. Посмотрите, кто еще не.

При работе всплывают/вспоминаются полезные вещи, очевидные для тех, кто занимается настройкой  серверов 1С постоянно, их собираю в отдельную публикацию и далее всю мелочевку буду скидывать сюда.

Настоящие линуксовые админы или DBA не поймут, что здесь можно не запомнить.



Но, настоящий админ никогда не будет смеяться над высказываниями 1С-ника, он только сделает такое выражение бровью, как-будто поправляет монокль.

Кто не любит много букв

Пользуясь случаем, поздравляю всех с наступающим Новым 2025 Годом и Рождеством!

Желаю интересной работы, крутых проектов и, конечно же, мира, крепкого здоровья и удачи!
 

 

 

Остальные, приступим.

  • Комбинации клавиш Ctrl + C, Ctrl + D и Ctrl + Z

     
    Нажатие Ctrl + C заставляет терминал послать сигнал SIGINT процессу, который на данный момент его контролирует. Когда foreground-программа получает сигнал SIGINT, она обязана прервать свою работу.

    Нажатие Ctrl + D говорит терминалу, что надо зарегистрировать так называемый EOF (end of file – конец файла), то есть поток ввода окончен. Bash интерпретирует это как желание выйти из программы.
    Комбинация клавиш Ctrl + Z посылает процессу сигнал, который приказывает ему остановиться. Это значит, что процесс остается в системе, но как бы замораживается. Само собой разумеется он уходит в бэкграунд (background) – в фоновый режим. С помощью команды bg его можно снова запустить, оставив при этом в фоновом режиме. Команда fg не только возобновляет ранее приостановленный процесс, но и выводит его из фона на передний план.
    Источник

  • Скрипты для определения как размеров таблиц, так и размеров колонок MS SQL 

    Пригодятся при переводе баз 1С, при помощи утилиты автономного сервера, с MSSQL на PostgreSQL.
    Как минимум, для того чтобы определить объем данных, но как максимум, если ваши пользователи умудрятся запихнуть в одну ячейку данных более 1 ГБ (мои смогли), то перенос будет рушиться с совершенно неочевидной ошибкой.
    Ошибка СУБД server closed connection unexpectedly

    Это же в технологическом журнале.

    Эту ячейку(ки) надо будет найти при помощи скриптов, очистить и перенести другим способом.
    Сама строка запуска переноса
    <каталог 1С>\ibcmd infobase replicate --data=\tmp\ibcmd_data --dbms=MSSQLServer --database-server=<имя сервера MSSQL> --database-name=<имя БД источника> --database-user=<пользователь с правами на БД> --database-password=<его пароль>  --target-dbms=PostgreSQL --target-database-server="<сервер PostgreSQL> port=<его порт>" --target-database-name=<имя БД назначения>  --target-database-user=<пользователь с правами на БД> --target-database-password=<его пароль> --force --target-create-database
    Кажется, что дело может быть в размерах базы 1С, но это не так, дело именно в размере ячейки.
    Скрипты которые помогут это понять
     

    Источник Stack Overflow.
    Вдогонку небольшой скрипт PostgreSQL,
    Когда перенос не пройдет, желательно удалить БД, а чтобы ее удалить надо закрыть активные соединения с ней.
    SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '<имя БД>' AND procpid <> pg_backend_pid();

  • Генераторы командной строки для утилит linux
    Очень помогут при формировании аргументов команд find, например.
    ittricks.ru/utilities/find-command-generator
    cmdgenerator.phphe.com
     
  • Более продвинутый PG Configurator
    От компании CYBERTEC PostgreSQL International GmbH
     
  • Отличная утилита для мониторинга сервера
    На замену различным atop/htop/top
    Glances

     
  • Шпаргалка по journalctl в Linux
    Кладезь знаний по linux от сайта losst.pro
    Отличная статья от Академии Selectel Управление логгированием в systemd
  • Включение отладки Kerberos 
    Она может пригодится при разборе авторизации ОС.
    Все видели эти строки файла /etc/krb5.conf
    [logging]
        default = FILE:/var/log/krb5libs.log
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmind.log

    Но не все знают, что они относятся только к серверу, а не к клиенту.
    На нем надо
    Для одиночной команды KRB5_TRACE=/dev/stdout kinit -V
    Для сеанса конкретного пользователя необходимо изменить файл .bash_profile в домашней директории пользователя, добавив
    export KRB5_TRACE=/tmp/<имя файла>.log
    Вариант для всех пользователей
    /etc/profile.d/krb5_set.sh 
    export KRB5_TRACE=/tmp/<имя файла>.log
    Для службы
    в файле скрипте для запуска сервиса
    Environment=KRB5_TRACE=/tmp/<имя файла>.log

    /tmp/<имя файла>.log если что можно заменить полностью на свое имя
     
  • Если в сети прокси с доменной авторизацией, а сервер не в домене
    Пригодится утилита cntlm
    NTLM / NTLM Session Response / NTLMv2 authenticating HTTP proxy 
    инструкция на сайте
    Прописать прокси аналогично сказанному выше
    Необходимо изменить файл .bash_profile в домашней директории пользователя 1С
    Вариант для всех /etc/profile.d/proxy_set.sh 
     export {http,ftp,https,rsync}_proxy="http://proxyserver:port"
     export {HTTP,FTP,HTTPS,RSYNC}_PROXY=$http_proxy
     
  • Как пересобрать кластер Patroni
    Справедливый вопрос: Зачем это может понадобиться?
    Думаю 99% прекрасно живут с кластером PostgreSQL созданным при установке.
    Одно как принято говорить, есть нюанс.
    Цитирую документацию: Из соображений безопасности новый кластер, созданный программой initdb, будет доступен только для владельца кластера. 
    Источник
    Это роль и пользователь postgres в общем случае, иными словами суперпользователь.
    Как бы это ни было странно в свете сказанного выше, но резервное копирование под суперпользователем, это дыра в безопасности.
    Выход:Ключ --allow-group-access позволяет разрешить чтение файлов в кластере всем пользователям, входящим в группу владельца кластера. Это полезно для выполнения резервного копирования от имени непривилегированного пользователя.
    Источник
    Эта опция потребует пересоздания кластера initdb.
    Базы вы, предположим, вернете из архива, но кластер выпадет из Patroni.
    Точнее из базы etcd, которую читает Patroni. Ошибку вы увидите в статусе
    systemctl status patroni.service --no-pager -l
    В ней же будет новый номер кластера.
    Далее финт ушами
    Читаем БД etcd
    etcdctl --endpoints=localhost:2379 get /<ваш namespace>/<ваш кластер>/initialize --user="root" --password="хххххх"
    Пишем новое значение в БД etcd
    etcdctl --endpoints=localhost:2379 put /<ваш namespace>/<ваш кластер>/initialize <номер кластера>--user="root" --password="хххххх"
    Перезапускаем patroni
     systemctl start patroni.service
    Проверяем что он работает штатно
    systemctl status patroni.service --no-pager -l
    /usr/local/bin/patronictl --config-file /etc/patroni/patroni.yml topology <ваш кластер>

     
  • Где менять PGDATA при установке из дистрибутива от PostgresPro 
    Лежит в файле соответствующем установленному релизу, в каталоге /etc/default
    Не могу сказать, возможно это поменялось начиная с какого то релиза PostgreSQL
    Возможно просто пробел в моем образовании, я помню что раньше в в файле скрипте для запуска сервиса, как то так
    Environment=PGDATA=/home/postgres/data
     
  • Создание псевдонимов команд с помощью alias
    Для конкретного пользователя можно добавить все необходимые команды в файл ~/.bashrc
    Если вы хотите чтобы ваши алиасы linux были доступны для всех пользователей, необходимо использовать файл /etc/bashrc
    На сервере 1С не помешает создать скрипт и сделать к нему алиас например status_1c
    clear
    systemctl status srv1cv8-8.3.хх.хххх@default --no-pager -l
    echo -e "\n\n\n"
    systemctl status ras-8.3.хх.хххх.service --no-pager -l
    echo -e "\n\n\n"
    systemctl status httpd --no-pager -l


    Другие полезные алиасы
     
  • Терминалы ssh под Windows и не только
    PuTTY дедушка все терминалов
    putty-nd, kitty и еще бесконечное количество его форков, их ищите поиском в гугле.
    MobaXterm
     на сегодняшний день и на мой взгляд лучший X server and SSH client
    Но его активно теснит WindTerm, он стильный, модный молодежный и в нем не менее приятно работать
    WinSCP классика жанра
    Все имеют портабл версии, все имеют бесплатную версию или являются бесплатными и все достойны оказаться на флешке сисадмина.
  • При запуске 1С-клиента ошибка вида

libstdc++.so.6: version `GLIBCXX_Х.Х.Х' not found

Правильное решение 

 mv /opt/1cv8/common/libstdc++.so.6 /opt/1cv8/common/libstdc++.so.6.old
 ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/1cv8/common/libstdc++.so.6
 mv /opt/1cv8/x86_64/8.3.xx.xxxx/libstdc++.so.6 /opt/1cv8/x86_64/8.3.xx.xxxx/libstdc++.so.6.old
 ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/1cv8/x86_64/8.3.xx.xxxx/libstdc++.so.6

Источник

  • Посмотреть список активных и/или работающих сервисов sysytemctl

systemctl list-units --type=service --state=active

Источник

----

Список будет дополняться.
Пишите в комментариях, что посоветуете добавить.

Статья продолжает серию публикаций "Рецепты от Капитана" (буду благодарен, если они вам пригодятся и вы проголосуете за них на определении проекта года):

Серия "Рецепты от Капитана" на всякий случай

Планы на будущее:

Начать новую серию: Рецепты 1С:ИТС.



В ней пройти интересные публикации ИТС и проверить, насколько они работают "из коробки".
Возможно, в новогодние каникулы)


 

Благодарности:

Благодарю компанию ©Serverspace за предоставленное оборудование, без поддержки собрать такой пингвинариум мне было бы негде.

Главный спонсор это питерская погода.



А вы как думаете, почему наш город дал миру столько великих ученых и писателей?

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Сервера Системный администратор Программист 1С v8.3 Абонемент ($m)

Обработка, скрипт и методология, позволяющие установить и продлевать автоматически комьюнити-лицензию 1С для разработчиков на сервер 1С без графического интерфейса.

5 стартмани

31.07.2025    1794    0    capitan    7    

15

Linux Системный администратор Программист Бесплатно (free)

Расскажем, какие инструменты помогают анализировать и адаптировать код под Linux, приведем реальные примеры рефакторинга и разберем этапы тестирования перед переходом. А также представим чек-лист для проверки готовности конфигурации к работе на серверной платформе 1С под Linux.

28.07.2025    692    aidar_safin    3    

7

Администрирование веб-серверов Linux Системный администратор Программист 1С v8.3 Бесплатно (free)

Проблема: При переходе с Windows на Linux многие сталкиваются с затруднениями при настройке аутентификации ОС в веб-клиенте 1С через Apache 2.4 (Debian). Решение: Команда Magnit Tech (Центр экспертизы 1С и Сопровождение 1C) разработала готовую инструкцию по настройке веб-клиента 1С на Debian 12 с поддержкой как Windows, так и Linux-серверов. Экономьте время — внедряйте проверенное!

25.07.2025    1086    biryukmikh    7    

21

Linux Системный администратор Бесплатно (free)

Благодаря Ansible процесс развертывания и тонкой настройки сервера 1С на Linux можно полностью автоматизировать. В статье расскажем, как с помощью Ansible-плейбуков быстро и без ошибок подготовить инфраструктуру для работы 1С:Предприятие. Разберемся, как подготовить WSL для локального тестирования Ansible-сценариев перед их запуском на реальных серверах. Рассмотрим автоматизированное создание виртуальных машин с помощью Ansible, которое значительно ускоряет развертывание инфраструктуры. На практическом примере покажем, как дорабатывать роли в плейбуках для адаптации под конкретные задачи. Уделим внимание оптимизации Linux-сервера для 1С: настройке ОС, установке необходимых зависимостей и параметров для стабильной работы. Разберем процесс установки платформы 1С, настройки службы и логирования, а также интеграцию систем мониторинга (Zabbix и других) для контроля состояния сервера в реальном времени.

23.07.2025    884    aidar_safin    0    

9

Администрирование СУБД Linux Сервера Системный администратор Программист Бесплатно (free)

В современных Windows 10 и 11 можно использовать WSL (Windows Subsystem for Linux) для запуска Linux окружения. Возникает соблазнительная мысль: может, PostgreSQL и сервер 1С запустить в WSL. Или даже хуже: в Docker на WSL. Знал бы, что будет сложно - даже не начинал :) Сложность кроется в том, что WSL это не полноценные виртуалки, а легковестные контейнеры Hyper-V с особенностями сети и GUI. Из плюсов, наверно, только размер и скорость запуска.

21.07.2025    1158    FSerg    2    

7

Администрирование СУБД Linux Системный администратор Программист 1С v8.3 Бесплатно (free)

Преимущества использования PostgreSQL как объектно-реляционной СУБД и Linux в качестве операционной системы сервера

02.06.2025    3849    PROSTO-1C    12    

2

Обновление 1С Linux Системный администратор Программист Бесплатно (free)

Пошаговая инструкция для обновления платформы 1С на сервере Linux Debian.

28.03.2025    2453    California_Dreaming    3    

5

Linux Системный администратор Программист 1С v8.3 Бесплатно (free)

В очередной раз решая проблему с доступом к файлу программной лицензии - решил сделать памятку на будущее для себя и коллег.

10.03.2025    2553    unichkin    12    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 936 23.12.24 12:52 Сейчас в теме
сумбур какой-то...
вы меня извините, но это какая-то солянка из приколов, анекдотов, ссылок, псевдосоветов, рекламы, маловостребованных хаков и трюков
Award; asupsam; Somebody1; +3 Ответить
2. capitan 2511 23.12.24 13:50 Сейчас в теме
(1)
сумбур какой-то

Золотые слова
А я так и предупреждал - 1000 мелочей, видели такие лавки, каждый найдет то что ищет, даже новогоднее поздравление)
Насчет псевдосоветов, тут как раз можете помочь, напишите в комментарии, что можете сказать по теме
Давайте прямо сразгона
Хотя бы один востребованный совет и один высокополезный трюк
А то как то некомильфо получется
3. Tantor 155 25.12.24 13:57 Сейчас в теме
Полезная статья.
Сегодня тоже встретил ошибку "Ошибка СУБД server closed connection unexpectedly" при переводе базы с MSSQL на Tantor
4. capitan 2511 25.12.24 16:07 Сейчас в теме
(3)
Tantor
Кто то минусанул и я подозреваю за что)
Вы бесплатную версию собираетесь делать?
5. Tantor 155 25.12.24 17:49 Сейчас в теме
(4) Пока нет.
У нас есть бесплатная версия, но она без патчей для поддержки 1С.
6. capitan 2511 25.12.24 18:08 Сейчас в теме
(5) У вас же внутренняя сеть это домен на астрах? Какой релиз 1С сейчас используете?
7. Tantor 155 25.12.24 19:41 Сейчас в теме
(6) Я не занимаюсь разработкой внутренних информационных систем на платформе 1С, поэтому за них сказать не могу.
А вот в части тестирования СУБД на платформе 1С мы тестируем на 8.3.24 (z), в январе хочу перейти уже на 8.3.26. Сервера приложений 1С и СУБД работают на Астре, да.
8. user602678_maxipunchik 98 14.05.25 08:10 Сейчас в теме
Решил перенести базу с MSSQL на POSTGRES. Маленькая база перенеслась без проблем, а вот террабайтная споткнулась на переносе одной из таблиц. Ошибки не выдало, просто стала активна командная строка. Попробовал запустить базу и у меня выдало ошибку В схеме базы данных нет таблицы с именем Reference13577 Как оказалось это справочник из расширения. Вот теперь и не знаю чего думать. То ли это баг платформы, то ли что. Никто не сталкивался?
Оставьте свое сообщение