Установка postgresql 1c: Установка сервера 1С, Postgresql и терминального сервера для клиентских приложений 1С на ОС Fedora Linux / Хабр

Настройка Postgresql для 1С

Настройка postgresql

Перейдите в сеанс пользователя root:

su -

Здесь и далее команды выполняются с правами пользователя root, если не указано иное.

Измените имя сервера:

hostnamectl set-hostname serv.1ctest.ru

где serv.1ctest.ru — нужное имя вашего сервера.

Отредактируйте /etc/hosts:

nano /etc/hosts

Добавьте строку:

127.0.0.1 serv.1ctest.ru

Установка

Установка postgresql для 1C:

  • если вы используете РЕД ОС 7.2, выполните команду:
yum install postgresql-1c postgresql-1c-contrib postgresql-1c-libs postgresql-1c-plperl postgresql-1c-plpython3 postgresql-1c-pltcl postgresql-1c-server
  • если вы используете РЕД ОС 7.3 и старше, выполните команду:
dnf install postgresql-1c postgresql-1c-contrib postgresql-1c-libs postgresql-1c-plperl postgresql-1c-plpython3 postgresql-1c-pltcl postgresql-1c-server

Настройка postgresql:

su - postgres

Откройте файл, в котором будут заданы необходимые переменные окружения:

nano . bash_profile

Примечание.

Необходимо указать вашу версию postgresql (выделена красным цветом):

  • для РЕД ОС 7.2 — postgresql12;
  • для РЕД ОС 7.3 — postgresql14.

Добавляем в этот файл переменные:

export PATH=/usr/pgsql-14/bin:$PATH
export MANPATH=/usr/pgsql-14/share/man:$MANPATH

Пример листинга файла:

[ -f /etc/profile ] && source /etc/profile
PGDATA=/var/lib/pgsql/14/data export PGDATA
# If you want to customize your settings,
# Use the file below. This is not overridden
# by the RPMS.

export PATH=/usr/pgsql-14/bin:$PATH
export MANPATH=/usr/pgsql-14/share/man:$MANPATH

[ -f /var/lib/pgsql/.pgsql_profile ] && source /var/lib/pgsql/.pgsql_profile

Далее с правами того же пользователя postgres выполните команду инициализации БД:

Примечание.

Минимальный объём оперативной памяти для инициализации БД — 4 ГБ.

initdb

Если команда не найдена, пропишите полный путь:

/usr/pgsql-14/bin/initdb

Выйдите из текущей учетной записи:

exit

Запуск и добавление в автозагрузку сервера PostgreSQL:

systemctl enable postgresql-14 --now

Проверка статуса сервиса:

systemctl status postgresql-14

В выводе команды должно быть отображено «Active: active (running)».

Изменение настроек сервера PostgreSQL

Для возможности пользователю postgres авторизоваться по паролю, внесите изменения в файл /var/lib/pgsql/14/data/pg_hba.conf:

nano /var/lib/pgsql/14/data/pg_hba.conf

host all all 0.0.0.0/0 trust

на

host all all 0.0.0.0/0 md5

Внесите изменения в файл /var/lib/pgsql/14/data/postgresql. conf, исходя из характеристик сервера:

nano /var/lib/pgsql/14/data/postgresql.conf

Примечание.

Подбор данных настроек производится индивидуально и зависит как от характеристик сервера, на котором будет работать сервер PostgreSQL, так и от характеристик информационных баз, которые будут обрабатываться на этом сервере.

Параметры, требующие настройки:

listen_addresses = '*'
password_encryption = md5
shared_buffers = 4096MB
temp_buffers = 256MB
work_mem = 128MB
maintenance_work_mem = 192MB
effective_cache_size = 4GB

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

su - postgres
psql
ALTER USER postgres WITH ENCRYPTED PASSWORD 'yourpassword';
(вместо yourpassword поставьте нужный пароль)

Рестарт сервера PostgreSQL:

systemctl stop postgresql-14 
systemctl start postgresql-14 
systemctl status postgresql-14 

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

1C-сервер для РЕД ОС 7.2

Postgres Pro + 1C на Debian 11 — Записки непутевого админа

Вводные данные:

  • Система Debian 11
  • 1С версия 8.3.17.2256
  • Сервер БД Postgres PRO

Содержание

1. Подготовка системы.

На свежеустановленной системе для начала правим репозитории.

apt edit-sources

apt edit-sources

#Debian 11 (Bullseye)
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

1

2

3

4

5

6

7

8

9

10

#Debian 11 (Bullseye)

 

deb http://deb. debian.org/debian bullseye main contrib non-free

deb-src http://deb.debian.org/debian bullseye main contrib non-free

 

deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

 

deb http://deb.debian.org/debian bullseye-updates main contrib non-free

deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

apt update

apt update

Ставим необходимые пакеты для работы 1С сервера и установки Postgres

apt install curl sudo imagemagick unixodbc ttf-mscorefonts-installer gnupg make libc6-i386 pigz -y

apt install curl sudo imagemagick unixodbc ttf-mscorefonts-installer gnupg make libc6-i386 pigz -y

Теперь нужно подготовить locale для нашей системы

dpkg-reconfigure locales

dpkg-reconfigure locales

Нам нужно выбрать ru_RU. UTF-8 UTF-8. Так же убедитесь на всякий случай, что en_US.UTF-8 тоже выбрана. По умолчанию выбираем ее же — ru_RU.UTF-8 UTF-8 и перезапускаем систему.

Все готово для установки сервера 1С и Postgres

2. Установка 1С сервера

Скачиваем с сайта https://releases.1c.ru/ архив с deb пакетами 1С сервера и передаем на наш сервер. Можно воспользоваться WinSCP если используете Windows, для Linux можно воспользоваться scp

scp deb64_8_3_17_2256.tar.gz [email protected]:/home/user

scp deb64_8_3_17_2256.tar.gz [email protected]:/home/user

Где:

deb64_8_3_17_2256.tar.gz — 1С архив

[email protected] — Пользователь и адрес сервера куда передаем

:/home/user — Директория назначения

Архив лучше распаковать в отдельную директория

mkdir 1c-server
mv deb64_8_3_17_2256. tar.gz 1c-server/
cd 1c-server/
tar xzvf deb64_8_3_17_2256.tar.gz

mkdir 1c-server

mv deb64_8_3_17_2256.tar.gz 1c-server/

cd 1c-server/

tar xzvf deb64_8_3_17_2256.tar.gz

Проверяем файлы которые распаковали

1c-enterprise83-common_8.3.17-2256_amd64.deb 1c-enterprise83-server_8.3.17-2256_amd64.deb 1c-enterprise83-ws-nls_8.3.17-2256_amd64.deb
1c-enterprise83-common-nls_8.3.17-2256_amd64.deb 1c-enterprise83-server-nls_8.3.17-2256_amd64.deb deb64_8_3_17_2256.tar.gz
1c-enterprise83-crs_8.3.17-2256_amd64.deb 1c-enterprise83-ws_8.3.17-2256_amd64.deb license-tools

1c-enterprise83-common_8.3.17-2256_amd64.deb      1c-enterprise83-server_8.3.17-2256_amd64.deb      1c-enterprise83-ws-nls_8.3.17-2256_amd64.deb

1c-enterprise83-common-nls_8.3.17-2256_amd64.deb  1c-enterprise83-server-nls_8. 3.17-2256_amd64.deb  deb64_8_3_17_2256.tar.gz

1c-enterprise83-crs_8.3.17-2256_amd64.deb         1c-enterprise83-ws_8.3.17-2256_amd64.deb          license-tools

Для установки 1С сервера с поддержкой русского языка вам нужны пакеты в названии которых не встречается nsl

Ставим 1С сервер и запускаем его

dpkg -i 1c-enterprise83-common_8.3.17-2256_amd64.deb 1c-enterprise83-server_8.3.17-2256_amd64.deb 1c-enterprise83-ws_8.3.17-2256_amd64.deb

dpkg -i 1c-enterprise83-common_8.3.17-2256_amd64.deb 1c-enterprise83-server_8.3.17-2256_amd64.deb 1c-enterprise83-ws_8.3.17-2256_amd64.deb

systemctl enable srv1cv83.service

systemctl enable srv1cv83.service

systemctl start srv1cv83.service

systemctl start srv1cv83. service

systemctl status srv1cv83.service

systemctl status srv1cv83.service

И проверяем состояние службы 1С

● srv1cv83.service — LSB: Starts and stops the 1C:Enterprise daemons
Loaded: loaded (/etc/init.d/srv1cv83; generated)
Active: active (exited) since Tue 2021-09-14 15:43:29 +05; 58s ago
Docs: man:systemd-sysv-generator(8)
Process: 6495 ExecStart=/etc/init.d/srv1cv83 start (code=exited, status=0/SUCCESS)
CPU: 80ms
сен 14 15:43:23 test systemd[1]: Starting LSB: Starts and stops the 1C:Enterprise daemons…
сен 14 15:43:23 test su[6507]: (to usr1cv8) root on none
сен 14 15:43:23 test su[6507]: pam_unix(su-l:session): session opened for user usr1cv8(uid=998) by (uid=0)
сен 14 15:43:23 test su[6507]: pam_unix(su-l:session): session closed for user usr1cv8
сен 14 15:43:29 test srv1cv83[6495]: Starting 1C:Enterprise 8.3 server: OK
сен 14 15:43:29 test systemd[1]: Started LSB: Starts and stops the 1C:Enterprise daemons.

1

2

3

4

5

6

7

8

9

10

11

12

13

● srv1cv83.service — LSB: Starts and stops the 1C:Enterprise daemons

     Loaded: loaded (/etc/init.d/srv1cv83; generated)

     Active: active (exited) since Tue 2021-09-14 15:43:29 +05; 58s ago

       Docs: man:systemd-sysv-generator(8)

    Process: 6495 ExecStart=/etc/init.d/srv1cv83 start (code=exited, status=0/SUCCESS)

        CPU: 80ms

 

сен 14 15:43:23 test systemd[1]: Starting LSB: Starts and stops the 1C:Enterprise daemons…

сен 14 15:43:23 test su[6507]: (to usr1cv8) root on none

сен 14 15:43:23 test su[6507]: pam_unix(su-l:session): session opened for user usr1cv8(uid=998) by (uid=0)

сен 14 15:43:23 test su[6507]: pam_unix(su-l:session): session closed for user usr1cv8

сен 14 15:43:29 test srv1cv83[6495]: Starting 1C:Enterprise 8.3 server: OK

сен 14 15:43:29 test systemd[1]: Started LSB: Starts and stops the 1C:Enterprise daemons.

Если получили ошибку что такой службы нет то нужно создать символическую ссылку на запуск вручную

Для платформы до 8.3.20 и ниже

ln -s /opt/1cv8/x86_64/8.3.17.2256/srv1cv83 /etc/init.d/srv1cv83

ln -s /opt/1cv8/x86_64/8.3.17.2256/srv1cv83 /etc/init.d/srv1cv83

systemctl daemon-reload

systemctl daemon-reload

Для платформы 8.3.20 или выше

Регистрируемся в systemd

systemctl link /opt/1cv8/x86_64/8.3.21.1393/[email protected]

systemctl link /opt/1cv8/x86_64/8.3.21.1393/[email protected]

И повторяем шаги выше по активации запуску служб

Все запустилось и работает нормально.

3. Установка Postgres

Идем на сайт и выбираем сборку для нашей системы. В письме придет инструкция для установки, ничего сложного там нет, но продемонстрирую ее.

Выполняем команды пришедшие нам в письме

curl -o apt-repo-add.sh https://repo.postgrespro.ru/pg1c-13/keys/apt-repo-add.sh

curl -o apt-repo-add.sh https://repo.postgrespro.ru/pg1c-13/keys/apt-repo-add.sh

sh apt-repo-add.sh

sh apt-repo-add.sh

Скрипт сам обновит репозитории, нам делать ничего не нужно. Ставим сам postgres

apt install postgrespro-1c-13 -y

apt install postgrespro-1c-13 -y

Включаем автозапуск и проверяем статус службы

systemctl enable postgrespro-1c-13

systemctl enable postgrespro-1c-13

systemctl start postgrespro-1c-13. service

systemctl start postgrespro-1c-13.service

systemctl status postgrespro-1c-13.service

systemctl status postgrespro-1c-13.service

● postgrespro-1c-13.service — Postgres Pro 1c 13 database server
Loaded: loaded (/lib/systemd/system/postgrespro-1c-13.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-09-14 15:51:02 +05; 17s ago
Process: 7404 ExecStartPre=/opt/pgpro/1c-13/bin/check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 7406 (postgres)
Tasks: 8 (limit: 4679)
Memory: 50.5M
CPU: 88ms
CGroup: /system.slice/postgrespro-1c-13.service
├─7406 /opt/pgpro/1c-13/bin/postgres -D /var/lib/pgpro/1c-13/data
├─7408 postgres: logger
├─7410 postgres: checkpointer
├─7411 postgres: background writer
├─7412 postgres: walwriter
├─7413 postgres: autovacuum launcher
├─7414 postgres: stats collector
└─7415 postgres: logical replication launcher
сен 14 15:51:00 test systemd[1]: Starting Postgres Pro 1c 13 database server. ..
сен 14 15:51:01 test postgres[7406]: 2021-09-14 15:51:01.021 +05 [7406] СООБЩЕНИЕ: передача вывода в протокол процессу сбора протоколов
сен 14 15:51:01 test postgres[7406]: 2021-09-14 15:51:01.021 +05 [7406] ПОДСКАЗКА: В дальнейшем протоколы будут выводиться в каталог «log».
сен 14 15:51:02 test systemd[1]: Started Postgres Pro 1c 13 database server.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

● postgrespro-1c-13.service — Postgres Pro 1c 13 database server

     Loaded: loaded (/lib/systemd/system/postgrespro-1c-13.service; enabled; vendor preset: enabled)

     Active: active (running) since Tue 2021-09-14 15:51:02 +05; 17s ago

    Process: 7404 ExecStartPre=/opt/pgpro/1c-13/bin/check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)

   Main PID: 7406 (postgres)

      Tasks: 8 (limit: 4679)

     Memory: 50. 5M

        CPU: 88ms

     CGroup: /system.slice/postgrespro-1c-13.service

             ├─7406 /opt/pgpro/1c-13/bin/postgres -D /var/lib/pgpro/1c-13/data

             ├─7408 postgres: logger

             ├─7410 postgres: checkpointer

             ├─7411 postgres: background writer

             ├─7412 postgres: walwriter

             ├─7413 postgres: autovacuum launcher

             ├─7414 postgres: stats collector

             └─7415 postgres: logical replication launcher

 

сен 14 15:51:00 test systemd[1]: Starting Postgres Pro 1c 13 database server…

сен 14 15:51:01 test postgres[7406]: 2021-09-14 15:51:01.021 +05 [7406] СООБЩЕНИЕ:  передача вывода в протокол процессу сбора протоколов

сен 14 15:51:01 test postgres[7406]: 2021-09-14 15:51:01.021 +05 [7406] ПОДСКАЗКА:  В дальнейшем протоколы будут выводиться в каталог «log».

сен 14 15:51:02 test systemd[1]: Started Postgres Pro 1c 13 database server.

С установкой postgres все. Теперь переходим непосредственно к настройке.

4. Настройка Postgres

Для начала нужно задать пароль для пользователя БД postgres, под которым будет работать 1С сервер.

sudo -u postgres /usr/bin/psql -U postgres -c «alter user postgres with password ‘superpassword’;»

sudo -u postgres /usr/bin/psql -U postgres -c «alter user postgres with password ‘superpassword’;»

Далее перенесём хранение временной статистики с жёсткого диска в память. Для этого создадим раздел в оперативной памяти на 512 Mb.

Создаем директорию куда будем монтировать Ram диск и даем ей права

mkdir /var/lib/pgsql_stats_tmp

mkdir /var/lib/pgsql_stats_tmp

chown postgres:postgres /var/lib/pgsql_stats_tmp

chown postgres:postgres /var/lib/pgsql_stats_tmp

Теперь добавляем /etc/fstab строчку

nano /etc/fstab

nano /etc/fstab

tmpfs /var/lib/pgsql_stats_tmp tmpfs size=512M,uid=postgres,gid=postgres 0 0

tmpfs /var/lib/pgsql_stats_tmp tmpfs size=512M,uid=postgres,gid=postgres 0 0

И монтируем

mount /var/lib/pgsql_stats_tmp

mount /var/lib/pgsql_stats_tmp

Открываем конфиг postgress и правим параметр

nano /var/lib/pgpro/1c-13/data/postgresql. conf

nano /var/lib/pgpro/1c-13/data/postgresql.conf

stats_temp_directory = ‘/var/lib/pgsql_stats_tmp’

stats_temp_directory = ‘/var/lib/pgsql_stats_tmp’

systemctl restart postgrespro-1c-13

systemctl restart postgrespro-1c-13

5. Установка и настройка HASP License Manager

Если используются аппаратные лицензии, то их нужно как-то раздавать, благо программные раздает сам сервер 1С. Вставляем ключ в USB и проверяем что система его видит.

lsusb | grep -i hasp

lsusb | grep -i hasp

Bus 002 Device 002: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle

Bus 002 Device 002: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle

Дальше идем на страницу https://download. etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Debian/ и выбираем нашу систему. В момент написания данной заметки, была версия только для 9 версии системы, но ничего страшного нам они подойдут. Скачиваем два файла:

wget https://rep.angald.ru/pool/main/h/haspd-modules/haspd-modules_7.90-eter2debian_amd64.deb

wget https://rep.angald.ru/pool/main/h/haspd-modules/haspd-modules_7.90-eter2debian_amd64.deb

wget https://rep.angald.ru/pool/main/h/haspd/haspd_7.90-eter2debian_amd64.deb

wget https://rep.angald.ru/pool/main/h/haspd/haspd_7.90-eter2debian_amd64.deb

И устанавливаем их в систему:

dpkg -i haspd*.deb

dpkg -i haspd*.deb

Запускаем и активируем автозагрузку:

systemctl start haspd

systemctl start haspd

systemctl enable haspd

systemctl enable haspd

6.

Настройка клиентских пк для поиска ключей в 1с

Создаем директорию

mkdir /opt/1C/v8.3/X86_64/conf

mkdir /opt/1C/v8.3/X86_64/conf

И создаем файл с настройками для поиска аппаратной защиты

nano /opt/1C/v8.3/X86_64/conf/nethasp.ini

nano /opt/1C/v8.3/X86_64/conf/nethasp.ini

[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled
[NH_IPX]
[NH_NETBIOS]
[NH_TCPIP]
NH_SERVER_ADDR = 10.85.66.5
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

[NH_COMMON]

 

NH_IPX = Disabled

NH_NETBIOS = Disabled

NH_TCPIP = Enabled

[NH_IPX]

 

[NH_NETBIOS]

 

[NH_TCPIP]

 

NH_SERVER_ADDR = 10. 85.66.5

 

NH_PORT_NUMBER = 475

 

 

NH_TCPIP_METHOD = UDP

 

NH_USE_BROADCAST = Disabled

Где:

10.85.66.5 — адрес сервера с установленным ключом

475 — порт

7. Бэкап и обслуживание баз 1С на сервере PostgreSQL

Бэкап вещь необходимая, ведь люди делятся на два вида, кто делает бэкапы, а кто бесстрашный. Смотрим какие базы у нас есть:

sudo -u postgres psql -U postgres -l

sudo -u postgres psql -U postgres -l

Список баз данных
Имя | Владелец | Кодировка | LC_COLLATE | LC_CTYPE | Права доступа
————+———-+————+————-+————-+————————
postgres | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |
template0 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ru_RU. UTF-8 | ru_RU.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
ut | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |
(4 строки)


1

2

3

4

5

6

7

8

9

10

11

                                  Список баз данных

    Имя    | Владелец | Кодировка | LC_COLLATE  |  LC_CTYPE   |     Права доступа    

————+———-+————+————-+————-+————————

postgres  | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 |

template0 | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +

           |          |           |             |             | postgres=CTc/postgres

template1 | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +

           |          |           |             |             | postgres=CTc/postgres

ut        | postgres | UTF8      | ru_RU. UTF-8 | ru_RU.UTF-8 |

(4 строки)



Нужная база у нас одна: ut

Для начала создадим директории где будем хранить бэкап и логи.

mkdir -p /var/lib/pgpro/service_logs

mkdir -p /var/lib/pgpro/service_logs

mkdir -p /var/lib/pgpro/backup

mkdir -p /var/lib/pgpro/backup

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

mkdir -p /opt/script

mkdir -p /opt/script

cd /opt/script

cd /opt/script

nano backup.bash

nano backup. bash

И копируем в наш файл сам скрипт

#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#Скрипт для бэкапа и обслуживания баз данныз postgres pro
#Текущий каталог
#Базы для бэкапа
BASES=(«basa0» «base1″)
#Переменная даты и времени
DATA=»$(date +%Y-%m-%d_%H-%M)»
#Директория для логов
LOGS=/var/lib/pgpro/service_logs/
#Директория для бэкапов
BACKUPDIR=/var/lib/pgpro/backup/
#Минимальное количество бэкапов
FILEBACK=»10″

CheckDir()
{
if touch «$1″/»$2».test > /dev/null 2>&1 ; then
rm «$1″/»$2».test
return 0
else
echo «Ошибка создания файла, нет директории или отсутвуют права»
return 1
fi
}

Backup()
{
CheckDir «$BACKUPDIR» «$DATA»
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Старт резервного копирования» «$1» >> «$LOGS»/»$DATA».log
if sudo -u postgres /opt/pgpro/1c-13/bin/pg_dump -U postgres «$1» > «$BACKUPDIR»/»$DATA»-«$1».sql ; then
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Старт сжатия файла» >> «$LOGS»/»$DATA».log
pigz «$BACKUPDIR»/»$DATA»-«$1». sql
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Резервное копирование закончено» «$1» >> «$LOGS»/»$DATA».log
return 0
else
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Ошибка создания резервной копии» «$1» >> «$LOGS»/»$DATA».log
exit
fi
}

ClearOldFiles()
{
local FILES
local NUM=»1″
FILES=$(find «$BACKUPDIR» -maxdepth 1 -type f -name «*.gz» | wc -l)
if [ «$FILES» -gt «$FILEBACK» ] ; then
FILEBACK=$((FILEBACK+NUM))
cd $BACKUPDIR || exit
ls -tp | grep -v ‘/$’ | tail -n +$FILEBACK | xargs -I {} rm — {}
cd $LOGS || exit
ls -tp | grep -v ‘/$’ | tail -n +$FILEBACK | xargs -I {} rm — {}
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Очистка старых файлов и логов» >> «$LOGS»/»$DATA».log
return 0
else
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Ошибка очистки старых файлов и логов» >> «$LOGS»/»$DATA».log
return 1
fi
}

Maintance()
{
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Старт vacuumdb» «$1» >> «$LOGS»/»$DATA».log
if sudo -u postgres /opt/pgpro/1c-13/bin/vacuumdb —full —analyze —username postgres —dbname «$1» > /dev/null 2>&1 ; then
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Конец vacuumdb» «$1» >> «$LOGS»/»$DATA». log
else
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Ошибка vacuumdb» «$1» >> «$LOGS»/»$DATA».log
exit
fi
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Старт переиндексации» «$1» >> «$LOGS»/»$DATA».log
if sudo -u postgres /opt/pgpro/1c-13/bin/reindexdb —username postgres —dbname «$1» > /dev/null 2>&1 ; then
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Конец переиндексации» «$1» >> «$LOGS»/»$DATA».log
else
exit
fi
return 0
}

for i in ${BASES[@]};
do
if Backup $i ; then
Maintance $i
else
exit
fi
done
ClearOldFiles $i
(date +%Y-%m-%d_%H-%M) > /var/log/timestamp
echo «$(date +%Y-%m-%d_%H-%M-%S)» «Создание файла для мониторинга» >> «$LOGS»/»$DATA».log

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

#!/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

#Скрипт для бэкапа и обслуживания баз данныз postgres pro

#Текущий каталог

#Базы для бэкапа

BASES=(«basa0» «base1»)

#Переменная даты и времени

DATA=»$(date +%Y-%m-%d_%H-%M)»

#Директория для логов

LOGS=/var/lib/pgpro/service_logs/

#Директория для бэкапов

BACKUPDIR=/var/lib/pgpro/backup/

#Минимальное количество бэкапов

FILEBACK=»10″

CheckDir()

{

if touch «$1″/»$2». test > /dev/null 2>&1 ; then

rm «$1″/»$2».test

return 0

else

echo «Ошибка создания файла, нет директории или отсутвуют права»

return 1

fi

}

Backup()

{

CheckDir «$BACKUPDIR» «$DATA»

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Старт резервного копирования» «$1» >> «$LOGS»/»$DATA».log

if sudo -u postgres /opt/pgpro/1c-13/bin/pg_dump -U postgres «$1» > «$BACKUPDIR»/»$DATA»-«$1».sql ; then

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Старт сжатия файла» >> «$LOGS»/»$DATA».log

pigz «$BACKUPDIR»/»$DATA»-«$1».sql

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Резервное копирование закончено» «$1» >> «$LOGS»/»$DATA».log

return 0

else

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Ошибка создания резервной копии» «$1» >> «$LOGS»/»$DATA».log

exit

fi

}

ClearOldFiles()

{

local FILES

local NUM=»1″

FILES=$(find «$BACKUPDIR» -maxdepth 1 -type f -name «*.gz» | wc -l)

if [ «$FILES» -gt «$FILEBACK» ] ; then

FILEBACK=$((FILEBACK+NUM))

cd $BACKUPDIR || exit

ls -tp | grep -v ‘/$’ | tail -n +$FILEBACK | xargs -I {} rm — {}

cd $LOGS || exit

ls -tp | grep -v ‘/$’ | tail -n +$FILEBACK | xargs -I {} rm — {}

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Очистка старых файлов и логов» >> «$LOGS»/»$DATA». log

return 0

else

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Ошибка очистки старых файлов и логов» >> «$LOGS»/»$DATA».log

return 1

fi

}

Maintance()

{

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Старт vacuumdb» «$1» >> «$LOGS»/»$DATA».log

if sudo -u postgres /opt/pgpro/1c-13/bin/vacuumdb —full —analyze —username postgres —dbname «$1» > /dev/null 2>&1 ; then

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Конец vacuumdb» «$1» >> «$LOGS»/»$DATA».log

else

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Ошибка vacuumdb» «$1» >> «$LOGS»/»$DATA».log

exit

fi

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Старт переиндексации» «$1» >> «$LOGS»/»$DATA».log

if sudo -u postgres /opt/pgpro/1c-13/bin/reindexdb —username postgres —dbname «$1» > /dev/null 2>&1 ; then

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Конец переиндексации» «$1» >> «$LOGS»/»$DATA».log

else

exit

fi

return 0

}

for i in ${BASES[@]};

do

if Backup $i ; then

Maintance $i

else

exit

fi

done

ClearOldFiles $i

(date +%Y-%m-%d_%H-%M) > /var/log/timestamp

echo «$(date +%Y-%m-%d_%H-%M-%S)» «Создание файла для мониторинга» >> «$LOGS»/»$DATA». log

В самом скрипте есть комментарии так что разобраться там не сложно

Теперь нужно сделать скрипт исполняемым

chmod +x backup.bash

chmod +x backup.bash

После этого запускаем скрипт для проверки нашего плана обслуживания, по окончании проверяем лог файл и сам файл бэкапа, учтите что процесс это не быстрый.

bash backup.bash

bash backup.bash

Если все хорошо, то добавляем задание в crontab

crontab -e

crontab -e

0 0 * * * bash /opt/script/backup.bash > /dev/null 2>&1

0 0 * * * bash /opt/script/backup.bash > /dev/null 2>&1

Задание будет запускаться каждый день в полночь.

1С:Предприятие

Увеличить максимальный размер сегментов памяти до 1 ГБ. Для менее мощных машин установлено от 64Мб до половины объема оперативной памяти (для теста изолируем 1Гб):
# Echo «kernel.shmmax = 1073741824» >> /etc/sysctl.conf
# Sysctl -p

Генерировать русскую локаль и установите переменную среды LANG, чтобы она запускала сценарий инициализации базы данных.
# Locale-gen en_US ru_RU ru_RU.UTF-8
# Export LANG=»ru_RU.UTF-8″

Установить необходимые зависимисти:
# Apt-get install libssl0.9.8 libossp- uuid16 libxslt1.1 libicu52 libt1-5 t1utils imagemagick ttf-mscorefonts-installer unixodbc texlive-base libgfs-1.3-2

Cкачать нужно с сайта пакеты Postgre 9.2.4 и установите их в следующем порядке:
# Dpkg -i libpq5_9.2.4-1.1C_amd64.deb
postgresql-client-common_154_all.deb (вместо postgresql-client-common_140 ~ lucid_all.deb)
postgresql-client- 9.2_9.2.4-1.1C_amd64.deb
postgresql-common_154_all. deb (на момент написания статьи на сайте была доступна только версия lucid, которая ломает логротацию, поэтому этот пакет скачивается отдельно)!
postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb
postgresql-9.2_9.2.4-1.1C_amd64.deb

Определяем расположение PostgreSQL:
где находится postgresql
postgresql: /etc/postgresql/usr/lib/ postgresql/usr/share/postgresql

Проверить, запущен ли сервер:
# Статус службы postgresql
Exhaust: 9.2 / main (порт 5433): онлайн

Для удобства администрация БД сменит порт на привычный нам со старой версии 5432. Для этого в файле: /etc/postgresql/9.2/main/postgresql .conf
изменить строку:
port = 5433 # (для изменения требуется перезагрузка)
на:
port = 5432 # (для изменения требуется перезагрузка)

Перезапустить службу:
# Service postgresql restart
* Перезапуск сервера базы данных PostgreSQL 9.2 [OK ]

Создать каталог для хранения БД 1С PostgreSQL:
# Mkdir /mnt/1s/db/
#Chown postgres: postgres /mnt/1c/db

Инициализация базы данных:
# Su postgres
postgres@test: /mnt/1c/db $ /usr/lib/postgresql /9. 2/bin/initdb -D /mnt/1c/db —locale=ru_RU.UTF- 8
postgres@test: /mnt/1c/db$psql -U postgres -c «изменить пользователя postgres с паролем ‘nash_parol’ ;»

При первом запуске Postgre должен быть инициализирован и запущен. Для того, чтобы иметь возможность подключиться к БД (не пользователь ОС, который создается вместе с установкой Postgre, пользователь с правами администратора на управление БД) необходимо указать пароль пользователя БД — postgres, для него в файле /mnt/1c/db/pg_hba.conf найдите строчку:
# Локальные соединения IPv4:
host all all 127.0.0.1/32 ident
# Локальные соединения IPv6:
host all all :: 1/128 ident
On:
# Локальные соединения IPv4:
host all all 127.0.0.1/32 md5
# Локальные соединения IPv6:
host all all :: 1/128 md5

Перезапустите службу и проверьте, запущен ли PostgreSQL:
# Служба postgresql restart

Вы должны получить сообщение, подобное следующему:
Остановка службы postgresql: ГОТОВО
Запуск службы postgresql: ГОТОВО

# Netstat -atn | grep 5432
Если ответ оказался, что такое выхлоп, то все в порядке:
tcp 0 0 0. 0.0.0:5432 0.0.0.0:* LISTEN

Установка PostgreSQL завершена. Приходите устанавливать сервер 1С 8.3.

Установить 1С:
Сделать библиотеку символьных ссылок:
ln -s /usr/lib/x86_64-linux-gnu/libMagickWand.so.5 /usr/lib/x86_64-linux-gnu/libMagickWand.so

Мы поставить все необходимые пакеты (1с брать их с офф.сайта):
dpkg -i 1c-enterprise83-common_8.3.4-476_amd64.deb
1c-enterprise83-server_8.3.4-476_amd64.deb
1c-enterprise83-ws_8.3.4-476_amd64.deb
_3.mon-enterprisel8.deb 476_amd64.deb
1c-enterprise83-server-nls_8.3.4-476_amd64.deb
1c-enterprise83-ws-nls_8.3.4-476_amd64.deb
ttf2pt1_3.4.4-1.4_amd64.deb 3 разрешение на запись
5 сервер

0 пользователям # Chown -R usr1cv8:grp1cv8 /opt/1C

Перезапуск сервера 1с:
# Служба srv1cv83 перезапуск
Остановка сервера 1С:Предприятия 8.3: Внимание: сервер не запущен!
ОК
Запуск сервера 1С:Предприятия 8.3: ОК

Проверить порты:
# Netstat -atn | grep 0. 0.0.0:15
tcp 0 0 0.0.0.0:1560 0.0.0.0:* ПРОСЛУШИВАТЬ
tcp 0 0 0.0.0.0:1540 0.0.0.0:* ПРОСЛУШАТЬ
tcp 0 0 0.0.0.0:1541 0:*0.0.0.0:* LISTEN

Также можно для профилактики проверить, все ли серверные процессы работают нормально:
ps aux | grep 1c

usr1cv8 28351 0,0 22664 1,1 264284? SSL 10:01 0:00 /opt/1C/v8.3/x86_64/ragent -daemon
usr1cv8 28354 0,3 41956 2,0 776216? Sl 10:01 0:00 /opt/1C/v8.3/x86_64/rmngr -port 1541 -host test -range 1560 1591
usr1cv8 28378 0.1 34076 1.6 323900? Sl 10:01 0:00 /opt/1C/v8.3/x86_64/rphost -range 1560 1591 1541 -reghost test -regport -pid f10fbd88-c9eb-11e3-0599-40618600e473
root 28439 0.0 0.0 13472 892 S + 10:03 0:00 grep —color = auto 1c

Установка Sentinel HASP USB:

Скачать по ссылке deb:
http://sentinelcustomer.safenet-inc.com/sentineldownloads/?s=&c =Конец+Пользователь&p=Sentinel+HASP&o=Linux&t=all&l=все

Добавить архитектуру i386, чтобы можно было установить 32-битные пакеты deb ::
# Dpkg —add-architecture i386
# Apt-получить обновление
Поскольку ia32-libs вырезали из системы, если 32 -bit пакет, теперь вы должны установить после пакета префикс: i386
# Apt-get install libc6: i386
# Dpkg -i aksusbd_2.