Платформа 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 за предоставленное оборудование, без поддержки собрать такой пингвинариум мне было бы негде.

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



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

См. также

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

Как устроить зависание системы (Ubuntu) из 1С (толстый клиент) с помощью буфера обмена и что с этим делать.

вчера в 17:30    290    Klok22    1    

9

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

Александр Кириллов, руководитель группы разработки компании «ИТ-Экспертиза», на конференции INFOSTART TECH EVENT 2024 выступил с докладом на тему «Как найти и устранить платформеннозависимый код менее, чем за 5 лет». Материал получился интересным и объемным, поэтому мы решили сделать на базе выступления Александра цикл статей. В первой части начнем с особенностей работы информационных систем 1С под управлением ОС Linux.

06.12.2024    1562    it-expertise    6    

22

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

Проект перевода 10+ систем 1С на 2000+ пользователей в Авито завершен успешно, преодолев технические трудности и «черных лебедей» в виде неопределенности, демотивации, потерь производительности и нереалистичных требований руководства. Расскажем об опыте проекта, в котором было «очень страшно», но в итоге всё получилось.

29.11.2024    1683    kirill.skoromykin    1    

7

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

При многолетней эксплуатации 1С на Windows и MS SQL в базе накапливаются не самые оптимальные запросы, COM-объекты и скрипты, зависящие от ОС. Из-за этого процесс перехода на PostgreSQL и переноса сервера 1С на Linux неизбежно осложняется длительным исправлением кода и оптимизацией запросов. Расскажем о том, как с задачей такого рефакторинга справились в компании Avito.

13.11.2024    6400    klimat12    17    

28

Облачные сервисы, хостинг Linux Тестирование QA Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Завершающая публикация цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая... В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где, конечно же, придется отлавливать ошибки, мониторить состояние и т.п.

31.10.2024    1727    capitan    0    

0

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

Одна из завершающих публикаций цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая, прочая... На закуску разбираемся с отказоустойчивостью. В этой публикации для серверов 1С заодно попробуем подобно сериалу «Разрушители легенд» подтвердить или опровергнуть пару устойчивых мифов о требованиях назначения функциональности.

18.10.2024    2346    capitan    5    

13

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

1C > Postgres > (Linux) > мы (=проблемы в 2024). Информация будет полезна начинающим 1С программистам (и сисадминам). Без ИТС. Часть 1.

01.07.2024    6980    AlOkt    30    

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

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