Это старая версия документа!


Содержание

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

Установка русской локали

postgresql

Установка из репозитория

Устарело Установка из репозитория 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

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С и, соответственно, неспособность работать с некоторыми типами данных.

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

Установить 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

Как альтернатива, установить msttcore-fonts-2.0-3.noarch.rpm. Взято здесь.

Чтобы была возможность запускать утилиты 1С без указания полного пути, изменить переменную PATH в /root/.bash_profile:

PATH=$PATH:$HOME/bin:/opt/1C/v8.3/x86_64

Установка 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

Инструкция по самостоятельной сборке (PDF)
Скрипт от castorsky для автоматической сборки (устанавливает на CentOS 7, не сработал на CentOS 8)
Скрипт от castorsky для автоматической сборки (устанавливает на CentOS 8, подправлен мной)
Скрипт для автоматической сборки драйверов эмулятора для CentOS 8 после изменения версии ядра)
Первоначальная неудачная попытка установки была предпринята на CentOS 7 в контейнере LXC. В дальнейшем использовалась CentOS 7, как виртуальная машина KVM.
После выполнения, скрипт предложит положить дампы ключей в /etc/usbhaspkey и перезапустить службу usbhaspemul,

Дампы ключей:

x86_server.json
1c_server_x64.json
50user.json
100user.json
300user.json

В конечном варианте оставили ключи 1c_server_x64 и 50user. Ключ x86_server необходим в случае работы толстых x32 разрядных клиентов 1С.
В 1С «О программе» эти ключи идентифицируются, как «Локальный HASP4 EN8SA 1» и «Сетевой HASP4 ORGL8 50».

Полное описание (TXT)

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 <<EOF >> /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г.)

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/"
<Directory "/var/www/html/test_buh/">
  AllowOverride All
  Options None
  Require all granted
  SetHandler 1c-application
  ManagedApplicationDescriptor "/var/www/html/test_buh/default.vrd"
</Directory>

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

Решение вышеуказанной проблемы найдено здесь:
Весь архив: 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, был достигнут с использованием 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 не сможет смонтировать подключаемые папки пользователя.

<spoiler Контейнер/Параметры/Features/FUSE> </spoiler>

<spoiler Если при подключении к сессии пользователя, у пользователя выводится такое окно> </spoiler>

Для изменения политики, создать файл, например, «/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

Задачи

Выгрузка в 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»

1c-sessions-close

Копии статьи в RedMine

Записки на память (не форматировано)

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

Наверх
uptime



AbuseIPDB Contributor Badge