====== Linux 1C ====== Устанавливаем CentOS 7 Чтобы postfix отправлял почту, надо прописать в /etc/postfix/main.cf домен (неизвестно, реальный или нет): myhostname = lin1c.us.to Чтобы postfix не ругался на отсутстви IPv6, в том-же файле заменить: inet_protocols = all на inet_protocols = ipv4 Для удобства работы, администраторам дан полный доступ без запроса пароля для sudo.\\ Администраторы добавлены в группу wheel и этой группе даны права в файле /etc/sudoers: %wheel ALL=(ALL) NOPASSWD: ALL **ОБЯЗАТЕЛЬНО! Должен быть отключен IPv6**, можно в параметрах ядра ipv6.disable=1 или добавить опцию в "/etc/sysctl.conf" net.ipv6.conf.all.disable_ipv6=1 **ОБЯЗАТЕЛЬНО! Должно быть прописано имя машины в файле /etc/hosts**, на соответствие IP адресу. Порты для доступа к серверу 1С и PostgreSQL (в случае, если клиенты 1С и средства администрирования PostgreSQL находятся на другой машине) # Server 1C -A INPUT -p tcp -m state --state NEW --dport 1540:1541 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 1560:1591 -j ACCEPT # PostgreSQL -A INPUT -p tcp -m state --state NEW --dport 5432:5433 -j ACCEPT ===== Имя машины ===== Изменить имя машины: hostnamectl set-hostname lin1c.work и перегрузиться. Если придётся менять имя машины при уже установленном кластере 1С, необходимо поменять имя в файлах: /home/usr1cv8/.1cv8/1C/1cv8/1cv8wsrv.lst /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst ===== Установка русской локали ===== localectl set-locale LANG=ru_RU.utf8 https://www.rosehosting.com/blog/how-to-set-up-system-locale-on-centos-7/ ===== postgresql ===== ==== Установка из репозитория ====
Устарело Установка из [[http://repo.postgrespro.ru/pg1c-archive/pg1c-14.0/keys/|репозитория postgrespro.ru]]\\ dnf install http://repo.postgrespro.ru/pg1c-archive/pg1c-14.0/keys/postgrespro-1c-14.centos.yum-14-0.3.noarch.rpm В файле /etc/yum.repos.d/postgrespro-1c-14.repo меняем baseurl=http://repo.postgrespro.ru/pg1c-archive/pg1c-14.0/centos/$releasever/os/$basearch/rpms на baseurl=http://repo.postgrespro.ru/pg1c-archive/pg1c-14.5/centos/$releasever/os/$basearch/rpms dnf install postgrespro-1c-14-server postgrespro-1c-14-contrib Или: wget http://repo.postgrespro.ru/1c-14/keys/pgpro-repo-add.sh sh ./pgpro-repo-add.sh dnf install postgrespro-1c-14 По умолчанию, устанавливается в "/opt/pgpro"\\ Файлы конфигураций находятся в "/var/lib/pgpro/1c-14/data"\\ Служба называется "postgrespro-1c-14" От root-а выполнить: /opt/pgpro/1c-14/bin/pg-setup initdb --locale=ru_RU.UTF-8 systemctl enable --now postgrespro-1c-14
wget http://repo.postgrespro.ru/1c/1c-16/keys/pgpro-repo-add.sh sh ./pgpro-repo-add.sh dnf install postgrespro-1c-16 По умолчанию, устанавливается в "/opt/pgpro"\\ Файлы конфигураций находятся в "/var/lib/pgpro/1c-16/data"\\ Служба называется "postgrespro-1c-16" Инициализация баз с локалью ru_RU.UTF-8 не требуется. Включение и запуск службы postgrespro-1c-16 не требуются, запускается и включается сама после установки. Установить пароль для postgres (с этим именем и этим паролем будут подключаться базы 1С): sudo -u postgres /opt/pgpro/1c-16/bin/psql ALTER USER postgres WITH ENCRYPTED PASSWORD 'logotip'; \q и проверка: sudo -u postgres /opt/pgpro/1c-16/bin/psql -l ==== pgAdmin ==== dnf install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-2-1.noarch.rpm dnf install pgadmin4-desktop pgadmin4-web /usr/pgadmin4/bin/setup-web.sh https://www.pgadmin.org/download/pgadmin-4-rpm/ Отключить запрос мастер-пароля: echo "MASTER_PASSWORD_REQUIRED=False" >> /usr/pgadmin4/web/config_local.py ==== Установка из ранее скачанных пакетов ====
Устарело Устанавливаем все пакеты из: postgresql-11.5-7.1C_x86_64_rpm postgresql-11.5-7.1C_x86_64_addon_rpm # su - postgres $ /usr/pgsql-11/bin/initdb --locale=ru_RU.UTF-8 -D /var/lib/pgsql/11/data/ Запуск сервера Postgresql: # systemctl start postgresql-11 Подключение в базе: # sudo -u postgres /usr/pgsql-11/bin/psql Устанавливаем пароль пользователя postgres: postgres=# ALTER USER postgres WITH PASSWORD 'linutip'; postgres=# \q Проверить, есть-ли доступ и существуют-ли какие-либо базы: # sudo -u postgres psql -l Включаем postgresql в автозапуск и перегружаемся. # systemctl enable postgresql-11 # reboot [[https://www.kost.su/postgres-настройка-на-linux-centos-7-для-1с-предприятие/#_PostgresSQL|Postgres – настройка на Linux CentOS 7 для 1С Предприятие]]
==== Для возможности подключений с других машин ==== В postgrespro-1c-15 это уже установлено Проверить, слушает-ли сервер запросы, кроме localhost-а. Строка в файле postgresql.conf должна быть такой (или с указанием IP адресов): listen_addresses = '*' В файле pg_hba.conf должна присутствовать строка: host all all 0.0.0.0/0 md5 ==== Для возможности делать бэкапы SQL без ввода пароля ==== В файле pg_hba.conf поменять local ... peer на local ... trust ==== На CentOS 8 из реп ==== //**Не заработал из-за отсутствия патчей от 1С и, соответственно, неспособность работать с некоторыми типами данных.**// ==== Создание PostgreSQL базы для 1C ==== При попытке создания базы в PGAdmin, база не работает с 1C.\\ Создавать базу только средствами 1C. ===== 1C ===== Необходимые пакеты для сервера 1С с возможностью WEB публикации баз: 1C_Enterprise83-ws 1C_Enterprise83-common 1C_Enterprise83-server Необязательные пакеты (с nls), если необходима работа с языками, отличными от русского и английского. 1C_Enterprise83-server-nls 1C_Enterprise83-common-nls 1C_Enterprise83-ws-nls Служба - srv1cv83 systemctl status srv1cv83 Не забыть добавить в /etc/hosts (**без этого служба 1С не запустится!**): 192.168.10.100 lin1c Установить {{ :other:fonts-ttf-ms-1.0-eter4centos.noarch.rpm |fonts-ttf-ms-1.0-eter4centos.noarch.rpm}}. Взято [[https://download.etersoft.ru/pub/Etersoft/WINE@Etersoft/2.1.4/fonts/x86_64/CentOS/7/fonts-ttf-ms-1.0-eter4centos.noarch.rpm|здесь]]. //**Пакет со шрифтами несовместим с CentOS 8, поэтому, можно, либо положить шрифты в /usr/share/fonts/TTF/ms, либо распаковать из RPM, а потом скопировать.:**// rpm2cpio fonts-ttf-ms-1.0-eter4centos.noarch.rpm | cpio -idmv Как альтернатива, установить {{ :other:msttcore-fonts-2.0-3.noarch.rpm |msttcore-fonts-2.0-3.noarch.rpm}}. Взято [[https://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm|здесь]]. Чтобы была возможность запускать утилиты 1С без указания полного пути, изменить переменную PATH в /root/.bash_profile: PATH=$PATH:$HOME/bin:/opt/1C/v8.3/x86_64 [[https://wiki.lineris.ru/linux_server|Установка 1С:Предприятие 8.3 на Linux сервер]] Файл конфигурации сервера 1С находится здесь - /etc/sysconfig/srv1cv83 Правила IPTABLES для доступа к серверу 1С, RAS, PostgreSQL: # Server 1C -A INPUT -p tcp -m state --state NEW --dport 1540 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 1541 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 1560:1591 -j ACCEPT # RAS -A INPUT -p tcp -m state --state NEW --dport 1545 -j ACCEPT # PostgreSQL -A INPUT -p tcp -m state --state NEW --dport 5432:5433 -j ACCEPT ==== 1C версий 8.3.18.* ==== С этих версий платформа стала устанавливаться по аналогии с Windows. Стало возможным запуск нескольких серверов 1С различных версий.\\ Для этого был изменён путь установки компонентов 1С и, соответственно, путь к бинарникам.\\ Теперь бинарники 1С находятся не в папке "/opt/1C/v8.3/x86_64", а в "/opt/1cv8/x86_64/8.3.18.1208". Если на сервере не предполагается использование нескольких версий 1С одновременно, для запуска бинарников, как ранее, рекомендуется создать символьную ссылку: ln -s /opt/1cv8/x86_64/8.3.18.1208 /opt/1C/v8.3/x86_64 И изменять её при каждом изменении версии платформы. Также, изменился способ конфигурирования службы. Теперь инсталлятор не создаёт службу сам, а предоставляет это администратору.\\ Чтобы сделать запуск службы по аналогии с предыдущими версиями, после установки необходимо: * Скопировать файл "/opt/1cv8/x86_64/8.3.18.1208/srv1cv83" в папку "/etc/init.d/"\\ * Скопировать файл "/opt/1cv8/x86_64/8.3.18.1208/srv1cv83.conf" в папку "/etc/sysconfig/" и переименовать его (в папке "/etc/sysconfig/") в "srv1cv83" * Выполнить регистрацию службы: systemctl daemon-reload * Проверить наличие службы и её автозапуск: chkconfig * Запустить службу: systemctl start srv1cv83 **Сервер 1С версии 8.3.18.1208 не заработал с PostgreSQL для 1С версии 12.1. PostgreSQL был обновлён до версии 12.5 из репозитория PostgreSQL 1C.** ==== 1C версий 8.3.20.* ==== Версии с платформонезависимым установщиком (как в Windows). По умолчанию установщик запускается в графическом режиме. Если запускать его в удалённой консоли, его окна пробрасываются в иксы клиенту. Установщик запускать из-под root-а. Установка в текстовой консоли в "тихом" режиме: ./setup-full-8.3.20.1549-x86_64.run --mode unattended --enable-components client_full,client_thin,ru,server,ws,server_admin,additional_admin_functions При установке не регистрируется служба и не копируется файл конфигурации службы. Делать это вручную, как в предыдущих версиях. Для удаления в текстовой консоли, в папке с бинарниками, запустить: ./uninstaller-full --mode unattended ==== 1C версий 8.3.27.1606 ==== Для старта клиента потребовалась установка mesa-libGLU ==== 1C версий 8.3.22(23).* ==== В основном, как и в 8.3.20.*. Установка из папки с инсталлятором: ./$(ls -1 | grep 'setup-full' | grep 'x86_64.run') --mode unattended --enable-components client_full,client_thin,ru,server,ws,server_admin,additional_admin_functions Для файла службы /opt/1cv8/x86_64/8.3.22.1851/srv1cv8-8.3.22.1851@.service создать симлинк в /etc/systemd/system и systemctl daemon-reload\\ Файла конфигурации нет - все опции в файле службы. cat /usr/local/bin/1c-Create-Link #! /bin/bash VER=$(ls -1 /opt/1cv8/x86_64) ln -sf /opt/1cv8/x86_64/$VER /opt/1cv8/bin systemctl link /opt/1cv8/x86_64/$VER/srv1cv8-$VER@.service systemctl enable --now srv1cv8-$VER@default.service systemctl status --no-pager srv1cv8-$VER@default.service sudo -u usr1cv8 /opt/1cv8/x86_64/$VER/ras --daemon cluster ===== Эмулятор HASP ===== {{ :other:mini_manual_инструкция_по_самостоятельной_сборке_.pdf |Инструкция по самостоятельной сборке (PDF)}}\\ {{ :other:install_hasp_centos7.sh |Скрипт от castorsky для автоматической сборки (устанавливает на CentOS 7, не сработал на CentOS 8)}}\\ {{ :other:install_hasp_centos8.sh |Скрипт от castorsky для автоматической сборки (устанавливает на CentOS 8, подправлен мной)}}\\ {{ :other:after-kernel-update.sh |Скрипт для автоматической сборки драйверов эмулятора для CentOS 8 после изменения версии ядра)}}\\ Первоначальная неудачная попытка установки была предпринята на CentOS 7 в контейнере LXC. В дальнейшем использовалась CentOS 7, как виртуальная машина KVM.\\ После выполнения, скрипт предложит положить дампы ключей в /etc/usbhaspkey и перезапустить службу usbhaspemul, Дампы ключей: {{ :other:x86_server.json |}}\\ {{ :other:1c_server_x64.json |}}\\ {{ :other:50user.json |}}\\ {{ :other:100user.json |}}\\ {{ :other:300user.json |}} В конечном варианте оставили ключи 1c_server_x64 и 50user. Ключ x86_server необходим в случае работы толстых x32 разрядных клиентов 1С.\\ В 1С "О программе" эти ключи идентифицируются, как "Локальный HASP4 EN8SA 1" и "Сетевой HASP4 ORGL8 50". {{ :other:linux-hasp.txt |Полное описание (TXT)}} [[https://download.copr.fedorainfracloud.org/results/castor/usbhaspd/epel-8-x86_64/01424433-libusb-vhci/|RPM:]] https://copr.fedorainfracloud.org/coprs/castor/usbhaspd/\\ Альтернативная версия vhci_hcd (собирается под CentOS 9 и Fedora 38): https://github.com/linuxbuh/vhci_hcd, форк: https://github.com/kinprize/vhci_hcd\\ Установка RPM: dnf copr enable castor/usbhaspd dnf install libusb-vhci vhci-hcd usbhasp ==== Пошагово для CentOS 7,8 ==== export KVER=`uname -r` yum install -y gcc gcc-c++ make kernel-devel jansson-devel libusb elfutils-libelf-devel git epel-release usbutils В какой-либо пустой папке: curl -Os http://download.etersoft.ru/pub/Etersoft/HASP/last/CentOS/7/haspd-7.90-eter2centos.x86_64.rpm curl -sL https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/vhci-hcd-1.15.tar.gz/download > vhci-hcd-1.15.tar.gz curl -sL https://sourceforge.net/projects/usb-vhci/files/native%20libraries/libusb_vhci-0.8.tar.gz/download > libusb_vhci-0.8.tar.gz git clone https://github.com/sam88651/UsbHasp.git tar -xpf libusb_vhci-0.8.tar.gz tar -xpf vhci-hcd-1.15.tar.gz yum -y install haspd-7.90-eter2centos.x86_64.rpm systemctl enable haspd cd vhci-hcd-1.15 mkdir -p linux/${KVER}/drivers/usb/core cp /usr/src/kernels/${KVER}/include/linux/usb/hcd.h linux/${KVER}/drivers/usb/core sed -i 's/\#define DEBUG/\/\/#define DEBUG/' usb-vhci-hcd.c sed -i 's/\#define DEBUG/\/\/#define DEBUG/' usb-vhci-iocifc.c Для CentOS 8 добавить: sed -i 's/VERIFY_READ, //g' usb-vhci-iocifc.c sed -i 's/VERIFY_WRITE, //g' usb-vhci-iocifc.c Далее для CentOS 7,8: make -s KVERSION=${KVER} make -s install echo "usb_vhci_hcd" >> /etc/modules-load.d/usb_vhci.conf modprobe usb_vhci_hcd echo "usb_vhci_iocifc" >> /etc/modules-load.d/usb_vhci.conf modprobe usb_vhci_iocifc cd .. cd libusb_vhci-0.8 //Чтобы скомпилировалось на Fedora 38: В файле libusb_vhci-0.8/src/libusb_vhci.h добавить #define throw(...)// Для CentOS 7: ./configure Для CentOS 8: ./configure --enable-shared Далее для CentOS 7,8: make -s make -s install echo "/usr/local/lib" >> /etc/ld.so.conf.d/libusb_vhci.conf ldconfig cd .. cd UsbHasp Для CentOS 7: sed -i 's/\(CC=gcc\)/\1 -std=gnu11/' nbproject/Makefile-Release.mk Далее для CentOS 7,8: make -s cp dist/Release/GNU-Linux/usbhasp /usr/local/sbin mkdir /etc/usbhaspkey/ cat <> /etc/systemd/system/usbhaspemul.service [Unit] Description=Emulation HASP key for 1C Requires=haspd.service After=haspd.service [Service] Type=simple ExecStart=/usr/bin/sh -c 'find /etc/usbhaspkey -name "*.json" | xargs /usr/local/sbin/usbhasp' Restart=always [Install] WantedBy=multi-user.target EOF systemctl daemon-reload В папку "/etc/usbhaspkey/" положить файлы дампов ключей и запустить службу эмулятора: systemctl enable --now usbhaspemul ==== Обновление модулей ядра после обновления ядра ==== При обновлении ядра перестанут работать vhci-hcd и libusb_vhci. Перекомпилировать их можно следующим скриптом (в папке со скриптом должны быть папки с распакованными vhci-hcd-1.15 и libusb_vhci-0.8, можно использовать папки от предыдущей компиляции): # cat after-kernel-update #!/bin/sh # Обновление модулей ядра после обновления ядра # Должны присутствовать паапки: # vhci-hcd-1.15 # libusb_vhci-0.8 KVER=`uname -r` cd vhci-hcd-1.15 mkdir -p linux/${KVER}/drivers/usb/core cp /usr/src/kernels/${KVER}/include/linux/usb/hcd.h linux/${KVER}/drivers/usb/core make -s KVERSION=${KVER} make install modprobe usb_vhci_hcd modprobe usb_vhci_iocifc cd .. cd libusb_vhci-0.8 ./configure --enable-shared make -s make install ldconfig systemctl restart usbhaspemul systemctl restart haspd ==== Установка сервера "USB Redirect" для возможной передачи ключей на другую машину ==== В этом случае, локально, ключи использовать нельзя: curl -sL http://www.incentivespro.com/usb-redirector-linux-x86_64.tar.gz > usbredirector.tar.gz tar -xpf usbredirector.tar.gz cd usb-redirector-linux-x86_64 sh ./installer.sh install-server usbsrv -autoshareon usbsrv -createcallback 192.168.0.0:32032 ==== Настройки USB Redirect Server ==== Показать все устройства: usbsrv -l Не "расшаривать" устройство: usbsrv -t 1 Задать имя устройства: usbsrv -nickname "Reserved" 8 ==== Проверка наличия подключенных ключей ==== # lsusb | grep HASP Bus 009 Device 004: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle Bus 009 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle Bus 009 Device 002: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle Проверка работы этих ключей (если не запущен haspd и usbhaspemul, выхлоп пустой): # /usr/sbin/usbkeytest --list ID: 0529:0001, Bus: 009, Device: 004, Major: 189, Minor: 1027 ID: 0529:0001, Bus: 009, Device: 003, Major: 189, Minor: 1026 ID: 0529:0001, Bus: 009, Device: 002, Major: 189, Minor: 1025 ==== Без HASPD ==== Пакет "haspd-7.90-eter2centos.x86_64.rpm" включает в себя драйверы для HASP и службу HASPD для раздачи ключей по сети.\\ Если раздавать ключи по сети нет необходимости, то данный пакет можно не устанавливать или отключить.\\ Если машина с CentOS 7 используется для раздачи ключей посредством "USB Redirect Server", то драйверы HASP на ней не требуются, потому, что они устанавливаются на машинах с клиентами "USB Redirect". Если-же, машина с CentOS 7 используется, как сервер 1С, то вместо HASPD можно установить драйверы HASP от Sentinel: Со страницы загрузки (https://thales-sentinel.ru/helpdesk/download-space/) скачать "Sentinel_LDK_Run-time_linux.zip", найти в архиве "Sentinel_LDK_Linux_Run-time_Installer_script/aksusbd-8.21.1/pkg/aksusbd-8.21-1.x86_64.rpm" и установить его. Чтобы служба эмулятора запускалась без наличия HASPD, необходимо закомментировать или удалить строки в файле "/etc/systemd/system/usbhaspemul.service": Requires=haspd.service After=haspd.service ==== Несколько эмуляторов для нескольких клиентов на одной машине ==== Для раздачи ключей посредством "USB Redorect" для нескольких клиентов, можно запустить несколько служб "usbhaspemul" с уникальными именами, например, вместо файла "/etc/systemd/system/usbhaspemul.service", создать несколько файлов "hasp-1.service...hasp-N.service" включить и запустить их (можно пакетным файлом): systemctl enable --now hasp-1 . . . systemctl enable --now hasp-N В этих файлах необходимо закомментировать строки: Requires=haspd.service After=haspd.service После каждого изменения в вышеуказанных файлах, необходимо выполнять: systemctl daemon-reload Службу HASPD можно отключить или удалить. ==== Архивы и пакеты, используемые в командах (скачаны 25.12.2020г.) ==== {{ :other:haspd-7.90-eter2centos.x86_64.rpm |}}\\ {{ :other:libusb_vhci-0.8.tar.gz |}}\\ {{ :other:usbhasp.zip |}}\\ {{ :other:usbredirector.tar.gz |}}\\ {{ :other:vhci-hcd-1.15.tar.gz |}}\\ {{ :other:vhci_hcd.zip |}}\\ {{ :other:aksusbd-8.21-1.x86_64.rpm |}} ===== HTTPD ===== yum install httpd systemctl enable httpd --now Регистрация базы test_buh на http сервере: webinst -apache24 -wsdir test_buh -dir /var/www/html/test_buh -connstr "Srvr=lin1c;Ref=test_buh;" -confPath /etc/httpd/conf/httpd.conf systemctl reload httpd Удаление публикации (таже строка с первым параметром -delete): webinst -delete -apache24 -wsdir test_buh -dir /var/www/html/test_buh -connstr "Srvr=lin1c;Ref=test_buh;" -confPath /etc/httpd/conf/httpd.conf systemctl reload httpd В случае получения ошибки при входе браузером, "Permission denied; line=1067 file=./src/DataExchangeTcpClientImpl.cpp", проверить сообщения selinux: grep httpd /var/log/audit/audit.log | grep denied В случае наличия сообщений о запрете, добавить исключения: semanage port -a -t http_port_t -p tcp 1541 semanage port -a -t http_port_t -p tcp 1560 Или отключить selinux.\\ https://qna.habr.com/q/340732 ==== Конфигурация в отдельном файле ==== Лучший результат достигается при использовании отдельного файла для публикации баз на WEB сервере. Например, в файле "/etc/httpd/conf.d/1c.conf": webinst -apache24 -wsdir test_buh -dir /var/www/html/test_buh -connstr "Srvr=lin1c;Ref=test_buh;" -confPath /etc/httpd/conf.d/1c.conf В этом случае, конфигурация находится в файле "/etc/httpd/conf.d/1c.conf" и имеет такой вид: LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so" # 1c publication Alias "/test_buh" "/var/www/html/test_buh/" AllowOverride All Options None Require all granted SetHandler 1c-application ManagedApplicationDescriptor "/var/www/html/test_buh/default.vrd" ===== Клиент 1С, XRDP и KDE ===== Пакеты, необходимые для "толстого" клиента: 1C_Enterprise83-client 1C_Enterprise83-common 1C_Enterprise83-server "1C_Enterprise83-server" ставится по зависимости от "1C_Enterprise83-client". Вохможно, при установке "тонкого" клиента, этой зависимости не будет. yum install xrdp Рабочий стол: yum -y groupinstall "KDE Plasma Workspaces" echo "exec startkde" >> /home/user/.xinitrc chown user. /home/user/.xinitrc yum -y install kde-l10n-Russian systemctl enable xrdp systemctl start xrdp Чтобы в KDE отображались флаги стран, необходимо установить [[http://kochkin.mooo.com/files/kde-runtime-flags-4.13.3-3.fc20.noarch.rpm|пакет kde-runtime-flags от Fedora 20]], которого нет в репах CentOS.\\ Самый простой вариант установить его посредством RPM, потому, что YUM не ставит его из-за зависимостей, хотя, в пакете нет ничего, кроме картинок флагов. rpm -ivh --nodeps http://kochkin.mooo.com/files/kde-runtime-flags-4.13.3-3.fc20.noarch.rpm //**Клиент 1С не установился на CentOS 8. Требует libwebkitgtk-3.0.so.0, удалённый, как из CentOS 8, так и из Fedora 31.\\ Временно попробовал скопировать уже установленную 1С (сервер и клиента) с установки в CentOS 7.\\ Также скопировал с CentOS 7 недостающие библиотеки в папку с бинарнмками 1С.**// Решение вышеуказанной проблемы найдено [[https://holydiver-777.livejournal.com/1388403.html|здесь:]]\\ Весь архив: {{ :other:webkitgtk3_el8.tar.gz |}}\\ Прямая ссылка на rpm файл: http://kochkin.mooo.com/files/webkitgtk3-2.4.11-7.el8.x86_64.rpm ==== Проблемы с переключением языков ввода в XRDP ==== Невозможно печатать русскими буквами. Индикатор переключается, но при вводе нет русских букв - только латинские. Как оказалось, это проблема vnc серверов, которая существует уже более 10-ти лет и не решается. А XRDP использует vnc сервер. Вариант решения: отказ от vnc и использование xorgxrdp. Установить xorgxrdp yum -y install xorgxrdp В файле /etc/xrdp/xrdp.ini убрать секцию: [Xvnc] name=Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 И раскомментировать секцию: [Xorg] name=Xorg lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 code=20 И перезапустить xrdp: systemctl restart xrdp ==== Проблемы с обновления XRDP до версии 0.9.22-3==== На CentOS 8 Stream, XRDP перестал работать после обновления с версии 0.9.21-1 до 0.9.22-3.\\ Решение - обновление на тестовую версию 0.9.22-5: dnf up --enablerepo=epel-testing xrdp ===== x2Go ===== Лучший результат, нежели с xrdp, был достигнут с использованием [[https://wiki.x2go.org/doku.php|x2go]]. __**ВНИМАНИЕ!**__ Устанавливать x2Go надо __**ПОСЛЕ**__ установки KDE и пакета "kde-l10n-Russian", иначе в KDE будет нарушение локализации - часть останется на английском языке и локаль в KDE будет POSIX, хотя вне KDE, у пользователя будет ru_RU.utf8. Пакеты, необходимые для установки сервера x2go: x2goserver-xsession x2goserver cups-x2go x2goagent x2goserver-common x2goserver-printing x2godesktopsharing x2goserver-desktopsharing yum -y install x2goserver-xsession x2goserver cups-x2go x2goagent x2goserver-common x2goserver-printing x2goserver-desktopsharing x2godesktopsharing __**ВНИМАНИЕ!**__ Для разрешения печати, необходимо в файле "/usr/lib/systemd/system/cups.service" поменять "PrivateTmp=true" на "PrivateTmp=false" и systemctl daemon-reload && systemctl restart cups __**ВНИМАНИЕ!**__ В случае запуска x2Go в контейнере LXC в Proxmox, необходимо включить опцию "FUSE" (Контейнер/Параметры/Features), иначе сервер x2Go не сможет смонтировать подключаемые папки пользователя. {{:other:fuse-proxmox.png|}} {{:other:201217-155358.png|}} Для изменения политики, создать файл, например, "/usr/share/polkit-1/rules.d/10-x2go-policy.rules" со следующим содержимым: polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.login1.set-user-linger") { return polkit.Result.YES; } }); polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.color-manager.create-device" || action.id == "org.freedesktop.color-manager.create-profile" || action.id == "org.freedesktop.color-manager.delete-device" || action.id == "org.freedesktop.color-manager.delete-profile" || action.id == "org.freedesktop.color-manager.modify-device") { return polkit.Result.YES; } }); polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.NetworkManager.settings.modify.system") { polkit.log("NetworkManager.settings.modify.system: rule called"); return polkit.Result.YES; } }); polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.NetworkManager.network-control") { polkit.log("NetworkManager.network-control: rule called"); return polkit.Result.YES; } }); Если будут выскакивать ещё какие-либо запросы, можно отследить, какие правила нужно переназначить, предварительно запустить слежение за журналом: journalctl -u polkit -f Если запуск программ через x2Go производится без использования рабочего стола, можно использовать переключение раскладки клавиатуры средствами X сервера: setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle,grp_led:scroll' ==== x2godesktopsharing ==== __**ВНИМАНИЕ!**__ Для доступа к сессии пользователя, **и администратор и пользователь** должны входить в группу "x2godesktopsharing", а у пользователя должен быть запущен "x2godesktopsharing" с включенным разрешением подключений. Можно запустить "x2godesktopsharing" в автозапуске с ключом "--activate-desktop-sharing" x2godesktopsharing --activate-desktop-sharing , а администраторов, которым разрешено подключение к пользователю, необходимо указать в файле профиля пользователя "/home/user1c/.x2godesktopsharing/settings", параметр "whitelist", например: whitelist=admin,gendir В "x2godesktopsharing" в "CentOS 8" не работает ключ "--activate-desktop-sharing". Выводится сообщение "X server does not support XInput 2" и приложение завершает работу. Были взяты исходники "x2godesktopsharing" и в файле "sharetray.cpp", в районе 233-строки, изменено (добавлен вызов "slotStartSharing()"): loadSystemSettings(); loadUserSettings(); setTrayIcon(); trayIcon->show(); на: slotStartSharing(); loadSystemSettings(); loadUserSettings(); setTrayIcon(); trayIcon->show(); Для включения "тихого" режима, когда не показывается значок и не выводятся какие-либо сообщения, закомментировать вызов "trayIcon->show()". "x2godesktopsharing" стал запускаться с разрешением подключений. Откомпилированный вариант - http://kochkin.mooo.com/files/x2godesktopsharing\\ Так-же это изменение влияет на повторное подключение после обрыва сеанса. Но для этого бинарник необходимо поместить в "/usr/bin/", иначе, при повторном подключении, вызывается неизменённый вариант. Чтобы "x2godesktopsharing" запускался для всех пользователей при начале сеанса, можно создать файл "/etc/X11/xinit/xinitrc.d/x2godesktopsharing" со следующим содержимым: #!/bin/sh x2godesktopsharing &>/dev/null & ==== Аутентификация по ключу ==== Допустим, что на клиентском компьютере с Windows, пользователь "client", подключается к серверу x2Go с именем пользователя "user1c", то манипуляция с ключами выглядит так:\\ В клиенте Windows в качестве "RSA/DSA ключ для ssh соединения" указывается приватный ключ пользователя "C:/Users/client/.x2go/etc/ssh_host_rsa_key".\\ Публичный ключ пользователя "C:/Users/client/.x2go/etc/ssh_host_rsa_key.pub" добавляется на сервер в файл пользователя "/home/user1c/.ssh/authorized_keys". Все версии клиентов для Windows: https://code.x2go.org/releases/binary-win32/\\ "Ночные" сборки для Windows: https://code.x2go.org/releases/binary-win32/x2goclient/heuler/mingw32-4.8/qt-4.8/ ===== GUIRac & WebRac ===== GUIRac (https://github.com/OlegKochkin/guirac) и WebRac (https://github.com/OlegKochkin/webrac) ===== Задачи ===== ==== Выгрузка в DT ==== Выгрузка в DT в текущую папку (запустилось из под root, ERP выгружается 3 минуты 14 секунд, 2 Гб): /opt/1C/v8.3/x86_64/1cv8 CONFIG /S "lin1c\BASE" /N 1CUser /P 1CPassword /DumpIB "BASE-$(date +%y%m%d-%H%M%S).dt" /Out "BASE-$(date +%y%m%d-%H%M%S).log" Для выгрузки в пакетном режиме, лучше использовать Xvfb (не выводит окна 1С клиента на экран): yum install xorg-x11-server-Xvfb xvfb-run /opt/1C/v8.3/x86_64/1cv8 CONFIG ... ==== Бэкап SQL ==== Бэкап SQL в bzip2 (самый долгий с наилучшим сжатием): pg_dump -U postgres -w BASE | bzip2 -9 > "BASE-$(date +%y%m%d-%H%M%S).bz2" Бэкап SQL (самый быстрый, без сжатия): pg_dump -U postgres -w BASE > "BASE-$(date +%y%m%d-%H%M%S).sql" Бэкап SQL в gzip (оптимальное соотношение скорости и сжатия): pg_dump -U postgres -w BASE | gzip > "BASE-$(date +%y%m%d-%H%M%S).gz" ==== Восстановление из бэкапа SQL ==== **Бэкап восстанавливается, исключительно, в пустую базу. Иначе, при восстановлении, появляются ошибки и, впоследствии, база не работает!** dropdb -U postgres GILEV createdb -U postgres GILEV gunzip -c GILEV.gz | psql -U postgres GILEV ==== Завершение сеансов на сервере 1С для заданной базы ==== Необходим запущенный "ras" {{ :other:1c-sessions-close |}} ==== Копии статьи в RedMine ==== {{ :other:linux_1c-220816.pdf |}} ==== Записки на память (не форматировано) ====
dnf install http://repo.postgrespro.ru/pg_probackup/keys/pg_probackup-repo-centos.noarch.rpm

Если бэкап производится на той-же машине, где сервер PostgreSQL:
https://www.droider.org/content/vyzhimki-po-administrirovaniyu-postgres

pg_probackup init -B /mnt/pgbak
pg_probackup add-instance -B /mnt/pgbak --instance=LIN --pgdata=/var/lib/pgpro/1c-14/data
su postgres
pg_probackup backup -B /mnt/pgbak --instance=LIN -b FULL --stream --pgdata=/var/lib/pgpro/1c-14/data -U postgres -w --compress-algorithm=zlib --compress-level=9 --pghost=/tmp
pg_probackup backup -B /mnt/pgbak --instance=LIN -b DELTA --stream --pgdata=/var/lib/pgpro/1c-14/data --compress --pghost=/tmp
pg_probackup backup --instance=LIN -b DELTA --stream --compress

От root:
sudo -u postgres pg_probackup backup --instance=LIN -b DELTA --stream --compress
Проверка:
pg_probackup validate --instance=LIN

Восстановление:
pg_probackup restore --instance=LIN -B /mnt/pgbak/probackup -D /var/lib/pgpro/1c-14/data -i RKVB4E -j2 --recovery-target='immediate'
После поменять владельца на папку data postgres - chown -R postgres. data
После ОБЯЗАТЕЛЬНО !!! выйти из режима восстановления:
sudo -u postgres psql
postgres=# select pg_wal_replay_resume();
postgres=# \q

CryptoPro:
Версия (ключи есть для 5.0.11455 KC1):
./csptest -keyset -verifycontext

SQLCMD:
curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/msprod.repo
dnf install mssql-tools unixODBC-devel
sqlcmd -U sa -P logotip -S sql.test -Q "SELECT @@VERSION;"

rsync -axvh --delete --progress lin.test:/mnt/pgbak/probackup/backups/LIN.TEST/ /mnt/pgbak/probackup/backups/LIN/

Запуск выгрузки 1С на виндовом сервере с линукса:
ssh oleg@sql.test "C:/PROGRA~1/1cv8/8.3.20.1996/bin/1cv8.exe" CONFIG /S "SQL\UKRAINE" /N System /P R04rby0ktu /DumpIB C:/TEST.dt /Out C:/TEST.dt.log /DisableStartUpMessages /DisableStartupDialogs /RunModeManagedApplication

Копирование и удаление по SSH
scp exec1c@SQL.TEST:C:/Windows/Temp/UKRAINE.dt /
ssh exec1c@SQL.TEST del C:\\Windows\\Temp\\UKRAINE.dt

Сеансы в системе:
loginctl
Завершить сеансы пользователя:
loginctl terminate-user USER

Установить количество соединений на процесс:
rac server --cluster=3f6860dd-e474-476b-8e2b-e000e81945e6 update --server=d8a3808e-1cf5-49ef-81a6-23d5bb378add --connections-limit=8