Установка 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 — postgresql—12;
- для РЕД ОС 7.3 — postgresql—14.
Добавляем в этот файл переменные:
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.