понедельник, 30 сентября 2019 г.

Сборка версия PostgreSQL 10.10 с патчами 1С Ubuntu 18.04

Сборка по Олегу Харину
How to Install PostgreSQL 10 Using Source Code in Linux
PostgreSQL 10.0 Compile/Install HOWTO

debian-9.11.0-amd64-netinst.iso

Последовательность сборки по шагам (работаем под пользователем не root):
  1. Ставим необходимые общие пакеты для сборки:
    sudo apt-get install build-essential fakeroot devscripts
  2. Распаковываем приложенный архив для сборки PostgreSQL:
    tar xvf build-10.10-5.1C.opt.tar
  3. Переходим в распакованный каталог:
    cd build-10.10-5.1C.opt
  4. Загружаем исходники PostgreSQL:
    wget ftp.postgresql.org/pub/s... »»
  5. и переименовываем архив с исходниками:
    mv postgresql-10.10.tar.bz2 postgresql-10_10.10.orig.tar.bz2
  6. Распаковываем и накладываем патчи:
    dpkg-source -x postgresql-10_10.10-5.1C.opt.dsc
  7. Переходим в каталог сборки:
    cd postgresql-10-10.10
  8. Устанавливаем пакеты, необходимые для сборки PostgreSQL:
    sudo mk-build-deps -i
    1. - для Ubuntu-сервер потребовалось ещё предварительно установить пакет equivs (для Debian нет надобности):
        sudo apt-get install equivs
  9. Запускаем сборку:
    debuild -b -uc -us
Если всё проходит нормально, то получаем в каталоге build-10.10-5.1C.opt файлы *.deb.

$ sudo adduser builder
$ sudo usermod -aG sudo builder
$ sudo su - builder
$ sudo apt-get install build-essential fakeroot devscripts
$ tar xvf build-10.10-5.1C.opt.tar
$ cd build-10.10-5.1C.opt
$ wget https://ftp.postgresql.org/pub/source/v10.10/postgresql-10.10.tar.bz2
$ mv postgresql-10.10.tar.bz2 postgresql-10_10.10.orig.tar.bz2
$ dpkg-source -x postgresql-10_10.10-5.1C.opt.dsc
$ cd postgresql-10-10.10
# for ubuntu 18.04.3
$ sudo apt-get install equivs 
$ sudo mk-build-deps -i
$ debuild -b -uc -us

$ grep -i failed build/src/test/regress/regression.out

libecpg6_10.10-5.1C.opt_amd64.deb           postgresql-client-10_10.10-5.1C.opt_amd64.deb
libecpg-compat3_10.10-5.1C.opt_amd64.deb    postgresql-doc-10_10.10-5.1C.opt_all.deb
libecpg-dev_10.10-5.1C.opt_amd64.deb        postgresql-plperl-10_10.10-5.1C.opt_amd64.deb
libpgtypes3_10.10-5.1C.opt_amd64.deb        postgresql-plpython-10_10.10-5.1C.opt_amd64.deb
libpq5_10.10-5.1C.opt_amd64.deb             postgresql-plpython3-10_10.10-5.1C.opt_amd64.deb
libpq-dev_10.10-5.1C.opt_amd64.deb          postgresql-pltcl-10_10.10-5.1C.opt_amd64.deb
postgresql-10_10.10-5.1C.opt_amd64.deb      postgresql-server-dev-10_10.10-5.1C.opt_amd64.deb
postgresql-10-dbg_10.10-5.1C.opt_amd64.deb


воскресенье, 29 сентября 2019 г.

Стенд pg 9.6.15 pg_probackup

ProBackup: быстро, надежно, инкрементально
EgorRogov_pg_probackup_script.txt
Резервное копирование PostgreSQL с помощью pg_probackup | Григорий Смолкин
pg_probackup
PGConf.Сибирь 2018 «PG_PROBACKUP. Резервное копирование и верификация PostgreSQL» Григорий Смолкин
Backup and recovery manager for PostgreSQL
pg_probackup
ubuntu-18.04.3-server-amd64.iso

В данной статье опишем установку сервера СУБД PostgreSQL 9.6.15  1C от PostgresPRO  на ubuntu 18.04.3 на виртуальную машину.

Устанавливаем ubuntu 18.04.3 виртуальную машину
RAM (16 GB)

Настройки ubuntu пользователь (привязка в скриптах) user пароль 12345, имя компьютера u1804

После установки, Ctrl +Alt + T (окно терминала)
$ sudo apt update -y
$ sudo apt upgrade -y
$ sudo apt autoremove -y
$ sudo apt install mc ssh samba -y

Возможно sudo apt upgrade -y не пройдет из за блокировки, тогда sudo reboot и повторите с начала.

$ lsusb

2. Настройка сети

Тестовый сервер будет использовать dhcp

Смотрим:
$ cat  /etc/hosts
127.0.0.1       localhost
.....


$ sudo nano /etc/hosts

Меняем:

127.0.0.1       localhost       test2


Сохранить.

$ cat /proc/cpuinfo | grep MHz
cpu MHz         : 800.111
cpu MHz         : 800.028
cpu MHz         : 800.377
cpu MHz         : 800.190


3. Тюнинг остального:

Сделаем еще один скрипт для настройки остального:

$ nano tuning.sh

#!/bin/bash
# отключим ipv6
sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
#sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
#тюнинг postgresql
#add a swap file to an Ubuntu 16.04
#sudo fallocate -l 1G /swapfile
#sudo chmod 600 /swapfile
#sudo mkswap /swapfile
#sudo swapon /swapfile
#sudo cp /etc/fstab /etc/fstab.bak
#sudo echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo /bin/su -c "echo 'vm.swappiness=1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.sched_migration_cost_ns = 5000000' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.sched_autogroup_enabled = 0' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.dirty_background_bytes = 67108864' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.dirty_bytes = 536870912' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.zone_reclaim_mode = 0' >> /etc/sysctl.conf"
sudo sysctl -p
# перезагрузим сеть
#sudo systemctl restart networking.service
#sudo systemctl start networking.service
#sudo systemctl enable networking.service
# Настройка sudo journalctl -b sudo journalctl -b -1 sudo journalctl --list-boots
sudo sed -i 's/#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf
# Отключение уведомлений службы Apport (/var/crash)
sudo sed -i 's/enabled=1/enabled=0/' /etc/default/apport
# Отключим службу ondemand# (для разгона cpu)
# cat /proc/cpuinfo | grep MHz
# systemctl status ondemand
sudo systemctl stop ondemand
sudo systemctl disable ondemand
# shutdown -r now

Сохраним файл tuning.sh

------------------------------------------
Сделаем исполняем
$ chmod +x tuning.sh
$  sudo ./tuning.sh

или
$  sudo sh tuning.sh
------------------------------------------

Перезагрузимся

$ sudo reboot

После перезагрузки по сети можно подключиться MobaXterm

$ cat /proc/cpuinfo | grep MHz 
cat /proc/cpuinfo | grep MHz
cpu MHz         : 4000.489
cpu MHz         : 4000.162
cpu MHz         : 4000.980
cpu MHz         : 4002.072

$ free
              total        used        free      shared  buff/cache   available
Память:    16284616       95512    15944100        1312      245004    15870784
Подкачка:     1048572           0     1048572

$ sudo apt-get update -y
$ sudo apt-get install -y wget gnupg2
$ wget -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | sudo apt-key add -
$ sudo su -c "echo deb http://1c.postgrespro.ru/archive/2019_08_15/deb bionic main > /etc/apt/sources.list.d/postgrespro-1c.list"
$ sudo apt-get update -y
$ if dpkg -s libpq5 2>/dev/null; then sudo apt-get remove -y libpq5; fi
$ wget http://1c.postgrespro.ru/archive/2019_08_15/deb/pool/main/p/postgresql-pro-1c-9.6/libpq5_9.6.15-1.1C.bionic_amd64.deb
$ sudo dpkg -i libpq5_9.6.15-1.1C.bionic_amd64.deb
$ sudo apt-get install -y postgresql-pro-1c-9.6
$ sudo systemctl status postgresql.service
$ sudo su postgres -c "psql -c 'show data_checksums;'"
 data_checksums
----------------
 off
(1 строка)
$ sudo pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

Внимание ниже настройки не обратимы!
Будет снесен кластер postgresql /var/lib/postgresql/9.6/main
и его настройки /etc/postgresql/9.6/main

$ sudo pg_dropcluster --stop 9.6 main
$ sudo pg_createcluster --locale ru_RU.UTF-8 9.6 main --  --data-checksums

Creating new cluster 9.6/main ...
  config /etc/postgresql/9.6/main
  data   /var/lib/postgresql/9.6/main
  locale ru_RU.UTF-8
  socket /var/run/postgresql
  port   5432

$ sudo pg_ctlcluster 9.6 main start
#$ sudo systemctl start postgresql.service
$ sudo su postgres -c "psql -c 'show data_checksums;'"
 data_checksums
----------------
 on
(1 строка)

#Делаем проверки
$ sudo systemctl status postgresql.service
$ ss -tunpl | grep 5432
tcp    LISTEN     0      128       *:5432                  *:*
tcp    LISTEN     0      128      :::5432                 :::*
$ ps aux | grep postgres | grep -- -D
postgres  4123  0.0  0.1 315200 28236 ?        S    15:12   0:00 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf

$ sudo pg_lsclusters
$ sudo -u postgres psql -U postgres -c "alter user postgres with password 'pass';"
$ sudo cp /etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/postgresql.conf.bak

-----------------------------------------------------------------

Настройка postgresql.conf для 1С Total Memory (RAM): 16 GB

$ sudo nano /etc/postgresql/9.6/main/postgresql.conf
Добавить в конец:

# DB Version: 10
# OS Type: linux
# DB Type: oltp
# Total Memory (RAM): 16 GB
# Data Storage: ssd

max_connections = 1000
shared_buffers = 4GB
temp_buffers = 256MB
work_mem = 64MB
effective_cache_size = 8GB # 4GB for 1c
maintenance_work_mem = 1GB
wal_buffers = 16MB
min_wal_size = 2GB
max_wal_size = 4GB

default_statistics_target = 100
effective_io_concurrency = 2
random_page_cost = 1.1
autovacuum = on
autovacuum_max_workers = 4
autovacuum_naptime = 20s
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
synchronous_commit = off
checkpoint_completion_target = 0.9
ssl = off
fsync = on
commit_delay = 1000
commit_siblings = 5
row_security = off
max_files_per_process = 1000
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
#log_min_duration_statement = 0
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
#log_autovacuum_min_duration = 0
#log_duration = on
#log_statement = all
log_destination = stderr
plantuner.fix_empty_table = 'on'
online_analyze.table_type = 'temporary'
online_analyze.verbose = 'off'
 -----------------------------------------------------------------

Установка pg_probackup 

pg_probackup описание

$ sudo su -c "echo 'deb [arch=amd64] http://repo.postgrespro.ru/pg_probackup/deb/ $(lsb_release -cs) main-$(lsb_release -cs)' > /etc/apt/sources.list.d/pg_probackup.list" 
$ sudo su -c "wget -O - http://repo.postgrespro.ru/pg_probackup/keys/GPG-KEY-PG_PROBACKUP | apt-key add -" 
$ sudo apt-get update
$ sudo apt-get install pg-probackup-9.6
$ dpkg -l | grep pg-probackup-9.6 | awk -F' ' '{print $2}' | sudo xargs apt-mark hold
#pg-probackup-9.6 помечен как зафиксированный.
$ sudo -u postgres pg_probackup-9.6 version

Инициализация каталога резервных копий 1 экземпляр на примонтированом HDD


Каталог резервных копий /backup/pg_probackup расположено на hdd диске, в нем будем ежедневно сохранять backup за 30 дней без непрерывного архивирования.
Если нет дополнительного диска, выполняем закомментированые команды
$ sudo pg_probackup-9.6 init -B /backup
$ sudo mkdir /backup/copy
$ sudo mkdir /backup/log
$ sudo mkdir /backup/pg_dump
$ sudo chown -R postgres:postgres /backup/
#$ sudo chmod -R 777 /backup/pg_probackup
# /backups примонтированный диск для архивов
#$ sudo mkdir /backups/copy
#$ sudo mkdir /backups/pg_dump
#$ sudo chown -R postgres:postgres /backups/ 


Определение копируемого экземпляра 
$ sudo -u postgres pg_probackup-9.6 add-instance -B /backup -D /var/lib/postgresql/9.6/main --instance main


$ sudo nano /etc/postgresql/9.6/main/postgresql.conf

Добавить:

max_wal_senders = 10
wal_level = replica
unix_socket_directories='/var/run/postgresql'
# Для настройки архивного резервного копирования разкомментировать:
archive_mode = on
#archive_command ='test ! -f /wal/%f && cp %p /wal/%f' 
archive_command = '/usr/bin/pg_probackup-9.6 archive-push -B /backup --compress --instance main --wal-file-path %p --wal-file-name %f'

Сохранить.

$ sudo nano /etc/postgresql/9.6/main/pg_hba.conf

Раскоментировать:

local replication postgres peer

Сохранить.

$ sudo systemctl restart postgresql.service

Настройка политики сохранения 5 резервных копий

$ sudo -u postgres nano /backup/backups/main/pg_probackup.conf

Добавить:

retention-redundancy=5

Сохранить


Создание полной автономной резервной копии: 


$ sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b FULL --stream --compress --delete-wal --expired

Сделаем несколько инкрементальных копий

$ sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b DELTA --stream --compress --delete-wal --expired

$ sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b DELTA --stream --compress --delete-wal --expired

$ sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b DELTA --stream --compress --delete-wal --expired 



Просмотр:

$ sudo -u postgres pg_probackup-9.6 show -B /backup




Объединим последнюю икрементальную копию PYLG52 её родительской полной копией (PYLFNY), вместе со всеми инкрементальными копиями между ними.


$ sudo -u postgres pg_probackup-9.6 merge -B /backup --instance main -i PYLG52
 $ sudo -u postgres pg_probackup-9.6 show -B /backup




Проверка backup:

Проверка файлов:
Проверяет правильность кластера базы данных PostgreSQL, обнаруживая физическое и логическое повреждение.
Проверяет все файлы данных, расположенные в заданном каталоге данных, проводя проверку контрольных сумм на уровне блоков и проверку корректности заголовков страниц. При запуске с ключом --amcheck эта команда также выполняет логическую проверку всех индексов в указанном экземпляре Postgres Pro, используя расширение amcheck.
$ sudo -u postgres pg_probackup-9.6 checkdb -B /backup --instance main
INFO: Start checking data files
INFO: Data files are valid

Проверка backup:
Проверяет наличие и целостность всех файлов, необходимых для восстановления кластера. 
$ sudo -u postgres pg_probackup-9.6 validate -B /backup

-------------------------------------------------------------------------------------------------------
Ниже не адаптировалось под 9.6

Пример восстановления из полной автономной резервной копии (замена кластера на резервную копию)


Сделали копию:
 $ sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b FULL --stream --compress --delete-wal --expired 

Перед восстановлением

Просмотр:

$ sudo -u postgres pg_probackup-9.6 show -B

Проверка backup:
$ sudo -u postgres pg_probackup-9.6 validate -B /backup

INFO: Validate backups of the instance 'main'
INFO: Validating backup PRP29I
INFO: Backup PRP29I data files are valid
INFO: Backup PRP29I WAL segments are valid

Можно восстанавливать.

Останавливаем 1с
$ sudo systemctl stop srv1cv83.service

Останавливаем postgresql
$ sudo systemctl stop postgresql.service

Удалим данные кластера main
$ sudo /bin/su postgres -c "rm -rf /var/lib/postgresql/9.6/main/*"

Восстановим кластер main
$ sudo -u postgres pg_probackup-9.6 restore -B /backup --instance main -i PRP29I
INFO: Validating backup PRP29I
INFO: Backup PRP29I data files are valid
INFO: Backup PRP29I WAL segments are valid
INFO: Backup PRP29I is valid.
INFO: Restore of backup PRP29I completed.


Запускаем postgresql
$ sudo systemctl start postgresql.service

Запускаем 1с
$ sudo systemctl start srv1cv83.service


------------------------------------------------------------------------------------------------------- 

Пример восстановления из полной автономной резервной копии c непрерывным архивированием (замена кластера на резервную копию)


$ sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b FULL --stream --compress --delete-wal --expired


Просмотр:

$ sudo -u postgres pg_probackup-9.6 show -B /backup


Проверка backup:
$ sudo -u postgres pg_probackup-9.6 validate -B /backup

INFO: Validate backups of the instance 'main'
INFO: Validating backup PRP6Q5
INFO: Backup PRP6Q5 data files are valid
INFO: Backup PRP6Q5 WAL segments are valid
 Можно восстанавливать, но проверим непрерывность архивирования:


Войти в 1с создать документ, провести, выйти из 1с.


$ sudo -u postgres pg_probackup-9.6 validate -B /backup   --instance main -i PRP6Q5 --time='2042-04-16 12:26:00'
INFO: Validating backup PRP6Q5
INFO: Backup PRP6Q5 data files are valid
WARNING: Thread [1]: Could not read WAL record at 1/88000000
ERROR: Thread [1]: WAL segment "/backupwal/wal/main/000000010000000100000088" is absent
WARNING: Recovery can be done up to time 2019-05-18 14:36:30+03, xid 0 and LSN 1/2A000198
ERROR: Not enough WAL records to time 2042-04-16 12:26:00+03



Останавливаем 1с
$ sudo systemctl stop srv1cv83.service

Останавливаем postgresql
$ sudo systemctl stop postgresql.service

Удалим данные кластера main
$ sudo /bin/su postgres -c "rm -rf /var/lib/postgresql/9.6/main/*"

Чтобы безопасно запустить восстановленный сервер, надо отключить непрерывное архивирование - иначе новые файлы WAL попадут в тот же каталог.



Восстановим кластер main
$ sudo -u postgres pg_probackup-9.6 restore -B /backup --instance main -i PRP6Q5 --recovery-target='latest'


INFO: Validating backup PRP6Q5
INFO: Backup PRP6Q5 data files are valid
INFO: Backup PRP6Q5 WAL segments are valid
INFO: Backup PRP6Q5 is valid.
INFO: Restore of backup PRP6Q5 completed.


Запускаем postgresql
$ sudo systemctl start postgresql.service

Запускаем 1с
$ sudo systemctl start srv1cv83.service

После проверки восстановления нужно включить непрерывное архивирование.

 -------------------------------------------------------------------------------------------------------

Создание дополнительного кластера
#$ sudo pg_dropcluster --stop 9.6 beta
$ sudo pg_createcluster --locale ru_RU.UTF-8 9.6 beta --  --data-checksums
[sudo] пароль для user:
Creating new cluster 9.6/beta ...
  config /etc/postgresql/9.6/beta
  data   /var/lib/postgresql/9.6/beta
  locale ru_RU.UTF-8
  socket /var/run/postgresql
  port   5433

#$ sudo pg_ctlcluster 9.6 beta start 
#$ sudo pg_ctlcluster 9.6 beta stop
#$ sudo sudo systemctl status postgresql@9.6-beta.service

Удалим данные кластера beta
$ sudo /bin/su postgres -c "rm -rf /var/lib/postgresql/9.6/beta/*"


$ time sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b FULL --stream --compress --delete-wal --expired -j4

.....
INFO: Backup start, pg_probackup version: 2.1.5, instance: main, backup ID: PYRFBC, backup mode: FULL, wal-method: STREAM, remote: false, replica: false, compress-algorithm: zlib, compress-level: 1
......
INFO: Validating backup PYRFBC
.....

Восстановление конкретного экземпляра:

$ sudo -u postgres pg_probackup-9.6 restore -B /backup --instance main -D /var/lib/postgresql/9.6/beta -i PYRFBC

или восстановление последней копии

$ sudo -u postgres pg_probackup-9.6 restore -B /backup --instance main -D /var/lib/postgresql/9.6/beta


=====================================================================
Определение копируемого экземпляра если будем сохранять кластер beta, вообщем то нам это не надо.


$ sudo -u postgres pg_probackup-9.6 add-instance -B /backup -D /var/lib/postgresql/9.6/beta --instance beta

Проверка:
$ time sudo -u postgres pg_probackup-9.6 backup -B /backup --instance beta -b FULL --stream --compress --delete-wal --expired -j4
=====================================================================

Откорректировать  postgresql.conf для кластера beta

$ sudo cp /etc/postgresql/9.6/beta/postgresql.conf /etc/postgresql/9.6/beta/postgresql.conf.bak

$ sudo nano /etc/postgresql/9.6/beta/postgresql.conf

$ sudo pg_ctlcluster 9.6 beta start


Подключение 1с  ко второму кластеру PostgreSQL




 -------------------------------------------------------------------------------------------------------

Для проверки стандартной wal архивации:

$ sudo mkdir -p /wal
$ sudo chown -R postgres:postgres /wal


$ sudo nano /etc/postgresql/9.6/main/postgresql.conf

расскоментировать:
archive_command ='test ! -f /wal/%f && cp %p /wal/%f'

Сохранить.

$ sudo systemctl restart postgresql.service


В папку /test положить файлы:
deb64_8_3_15_1656.tar.gz

# установка 1с
$ mkdir -p /tmp/1ctmp
$ cd /tmp/1ctmp
$ sudo apt install imagemagick -y
#$sudo apt install -y unixodbc libgsf-1-114 libglib2.0
$ sudo apt install libfreetype6 libgsf-1-common unixodbc glib2.0
#ubuntu
$ sudo  apt install -y xfonts-utils cabextract
$ sudo apt install ttf-mscorefonts-installer -y
#$ sudo dpkg -i fonts-ttf-ms_1.0-eter4ubuntu_all.deb
#$ sudo fc-cache -fv
$  ls /home/user/test/
$ cp /home/user/test/deb64_8_3_15_1656.tar.gz /tmp/1ctmp
$ tar xvzf deb64_8_3_15_1656.tar.gz
$ sudo dpkg -i 1c-enterprise83-common_8.3.15-1656_amd64.deb
$ sudo dpkg -i 1c-enterprise83-server_8.3.15-1656_amd64.deb
#$ sudo dpkg -i 1c-enterprise83-ws_8.3.15-1656_amd64.deb
#$ sudo dpkg -i 1c-enterprise83-crs_8.3.15-1656_amd64.deb
#$ sudo apt -f -y install
$ sudo chown -R usr1cv8:grp1cv8 /opt/1C
#$ sudo echo -e "pass\npass\n" | sudo passwd usr1cv8
$ sudo service srv1cv83 start
$ sudo service srv1cv83 status
#$ sudo usermod -aG sudo usr1cv8

$ sudo  apt install -y libc6-i386
$ cd ~/test
$ wget http://download.etersoft.ru/pub/Etersoft/HASP/last/x86_64/Ubuntu/18.04/haspd-modules_7.90-eter2ubuntu_amd64.deb
$ wget http://download.etersoft.ru/pub/Etersoft/HASP/last/x86_64/Ubuntu/18.04/haspd_7.90-eter2ubuntu_amd64.deb
$ sudo dpkg -i *.deb
#$ sudo apt-get install -f -y
$ sudo service haspd start
$ sudo service haspd status
#$ sudo reboot

$ sudo service srv1cv83 status
$ ss -tlnp | grep :15
LISTEN     0      128          *:1560                     *:*
LISTEN     0      128          *:1540                     *:*
LISTEN     0      128          *:1541                     *:*
LISTEN     0      128         :::1560                    :::*
LISTEN     0      128         :::1540                    :::*
LISTEN     0      128         :::1541                    :::*


Для программной лицензии (прявязанной к hasp)

в /var/1C/licenses
Положить лицензию

$ sudo mv 20190207114003.lic /var/1C/licenses

или вставить hasp

После установки

$ sudo reboot

Запуск службы сервера администрирования RAS

$ sudo nano /etc/systemd/system/srv1cv8-ras.service

Вставить:

[Unit]
Description=1C:Enterprise Remote Administration Service
After=network.target remote-fs.target nss-lookup.target
Requires=srv1cv83.service

[Service]
Type=simple
ExecStart=/opt/1C/v8.3/x86_64/ras cluster --port=1545
KillSignal=SIGINT
PrivateTmp=true
Restart=on-failure
RestartSec=5
User=usr1cv8
Group=grp1cv8

[Install]
WantedBy=multi-user.target

Сохранить.


#$ sudo systemctl daemon-reload
$ sudo systemctl enable srv1cv8-ras.service
$ sudo systemctl start srv1cv8-ras.service
$ sudo systemctl status srv1cv8-ras.service


 $ sudo su postgres -c "psql -c \"select pg_size_pretty( pg_database_size('demo'))\""
 pg_size_pretty
----------------
 9193 MB
(1 строка)

$ time sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b FULL --stream --compress --delete-wal --expired

real    2m37,066s
user    1m40,382s
sys     0m34,089s


$ time sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b FULL --stream --compress --delete-wal --expired -j 2

real    1m44,581s
user    1m43,316s
sys     0m57,534s



$ time sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b FULL --stream --compress --delete-wal --expired -j4

real    1m8,021s
user    1m50,815s
sys     1m12,284s


$ time sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b DELTA --stream --compress --delete-wal --expired -j4

real    0m10,455s
user    0m2,287s
sys     0m2,436s
 




$ time sudo su postgres -c "pg_dump -Fc demo"  > ~/demo.dump

Создадим несколько баз:
$ sudo su postgres -c "createdb --username postgres -T template0 demo1"
....
$ sudo su postgres -c "createdb --username postgres -T template0 demo10"

Восстановим указав резервную копию
$ sudo su postgres -c "pg_restore -d demo1 /home/user/demo.dump"
.....
$ sudo su postgres -c "pg_restore -d demo10 /home/user/demo.dump"

$ sudo su postgres -c "psql -c \"select sum(pg_catalog.pg_database_size(d.datname)) from pg_catalog.pg_database d;\""
     sum
--------------
 103128915240
(1 строка)

$ time sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b FULL --stream --compress --delete-wal --expired -j4

real    10m58,273s
user    19m34,595s
sys     11m39,389s




$ time sudo -u postgres pg_probackup-9.6 backup -B /backup --instance main -b DELTA --stream --compress --delete-wal --expired -j4

real    4m34,368s
user    0m32,296s
sys     0m52,805s



$ sudo -u postgres pg_probackup-9.6 show -B /backup


$ time sudo -u postgres pg_probackup-9.6 merge -B /backup --instance main -i PYNHKF -j 4



 

pg_dumpall > db.out
 
$ time sudo su postgres -c "pg_dumpall"  > ~/dump100G.dump

real    11m7,245s
user    1m9,058s
sys     2m0,203s

$ psql -f db.out postgres


 

суббота, 28 сентября 2019 г.

Справочник основных команд Linux с примерами

numactl

PostgreSQL NVMe диски

четверг, 26 сентября 2019 г.

Astra Linux orel 2.12 Сжатие pdf

Сжатие PDF файлов в Ubuntu linux
Ghostscript Downloads
ghostscript уже установлен
#$ sudo apt-get install ghostscript
 

$ gs -dBATCH -dNOPAUSE  -sDEVICE=pdfwrite -dPDFSETTINGS=/screen -sOutputFile=2.pdf 1.pdf
$ gs -dBATCH -dNOPAUSE  -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile=3.pdf 1.pdf
$ gs -dBATCH -dNOPAUSE  -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -sOutputFile=4.pdf 1.pdf
$ gs -dBATCH -dNOPAUSE  -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=5.pdf 1.pdf
$ gs -dBATCH -dNOPAUSE  -sDEVICE=pdfwrite -dPDFSETTINGS=/default -sOutputFile=5.pdf 1.pdf

Сжать файлы pdf в папке и поместить в ./compressed

$ nano pdfcomp.sh

#!/bin/bash
mkdir ./compressed
for file in *.pdf; do
 echo $file
 gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=./compressed/"$file" "$file"
done

$ sh pdfcomp.sh

Перезапуск службы srv1cv83.service по превышению пользователем usr1cv8 заданной величины MAXRSS

Automatically kill processes that over time uses 95%+ of resources? Ubuntu
Bash script that automatically kills processes when CPU/memory usage gets too high
Команда TOP: Отличие между VIRT, RES и SHR столбцами
Задание Cron и сценарий оболочки, чтобы убить процесс, если память становится слишком высокой
Automatically kill processes that over time uses 95%+ of resources? Ubuntu
Find memory used by Services.
How to find user memory usage in linux
How to Configure the Linux Out-of-Memory Killer
Surviving the Linux OOM Killer
Как сравнивать числа в оболочке Bash в Linux

ссылка на форум
 



$ echo "USER                 RSS      PROCS" ; echo "-------------------- -------- -----" ; ps hax -o rss,user | awk '{rss[$2]+=$1;procs[$2]+=1;}END{for(user in rss) printf "%-20s %8.0f %5.0f\n", user, rss[user]/1024, procs[user];}' | sort -rnk2



$ ps hax -o rss,user | awk '{a[$2]+=$1;}END{for(i in a)print i" "int(a[i]/1024+0.5);}' | sort -rnk2

postgres 1689
usr1cv8 1459
root 215
user 46
messagebus 4
syslog 3
systemd-timesync 2
daemon 2


Готовый скрипт:
$ sudo nano /root/restart1c.sh

#!/bin/bash
MAXRSS=2000 #Mb for user usr1cv8
echo MAXRSS: $MAXRSS
RSS=`ps hax -o rss,user | awk '{a[$2]+=$1;}END{for(i in a)print i" "int(a[i]/1024+0.5);}' | grep usr1cv8 | awk '{ print $2}'`
#RSS=3000
echo RSS: $RSS
if [ $RSS -ge $MAXRSS ]
then
   sudo systemctl start  srv1cv83.service
else
echo "RSS<MAXRSS"
fi


среда, 25 сентября 2019 г.

сервер 1С ПРОФ: 8.3.15 отсутствие управления потреблением памяти процессами сервера

systemd ubuntu 16.04
systemd man
systemd для администраторов
LINUX CGROUPS ДЛЯ POSTGRESQL
Check-list по настройке рабочих серверов в продукционной зоне

ссылка на форум



Платформа 8.3 → Ручной запуск второй копии сервера 1С на linux ubuntu 16.04
Вариант от Самарина Александра (Эника, Ивантеевка)
За что Александру огромное спасибо!



user@u1604:~$ systemctl --version
systemd 229



$ service srv1cv83 status
$ sudo  systemctl stop srv1cv83

$ sudo nano /etc/systemd/system/1cv83-something.service

#
# 1cv83.service
#

[Unit]
Description=1C:Enterprise Server
Wants=network.target
After=network.target

[Service]
MemoryAccounting=true
MemoryLimit=3G
#MemoryMax=3G 
Type=simple
Environment=LANG=ru_RU.UTF-8
Environment=TZ=Europe/Moscow
ExecStart=/opt/1C/v8.3/x86_64/ragent -d /home/usr1cv8/.1cv8/1C/1cv8 -port 1540 -regport 1541 -range 1560:1590 -seclev 0 -debug
Restart=always
RestartSec=3
User=usr1cv8

[Install]
WantedBy=multi-user.target


Сохранить.

Команды:

$ sudo systemctl daemon-reload  # запускать после изменений файла
$ sudo systemctl start 1cv83-something.service
$ sudo systemctl stop 1cv83-something.service
$ sudo systemctl restart 1cv83-something.service
$ sudo systemctl status 1cv83-something.service

Если хочется автоматический запуск:

$ sudo  systemctl enable 1cv83-something.service

Если хочется при этом отказаться от оригинального скрипта:
$ sudo  systemctl disable srv1cv83  # отключить автоматический запуск
$ sudo  systemctl mask srv1cv83  # запретить запуск вообще

Failover for PostgreSQL

четверг, 19 сентября 2019 г.

Обновление PostgreSQL от 1С ubuntu 18.04

Обновление кластера PostgreSQL

Делаем dump баз, останавливаем 1с :
$ sudo nano /root/backup1.sh

#!/bin/sh -e
BACKUP_DIR="/backup/pg_dump"
#BACKUP_DIR="/backups/pg_dump"
cd $BACKUP_DIR
echo "====================================================================" > $BACKUP_DIR/backup.log
# останавливаем сервер 1С
echo "останавливаем сервер 1С"
sudo systemctl stop srv1cv8-ras.service
sudo systemctl stop  srv1cv83.service
echo "состояние сервера 1С"  >> $BACKUP_DIR/backup.log
sudo systemctl status  srv1cv83.service | grep 'Active:' >> $BACKUP_DIR/backup.log
echo "--------------------------------------------------------------------" >> $BACKUP_DIR/backup.log
# Устанавливаем дату
DATA=`date +"%Y-%m-%d_%H-%M-%S"`
DATA_NAME=`date +"%Y-%m-%d_%H-%M-%S"`
echo "$DATA Size database file: " >> $BACKUP_DIR/backup.log
sudo du -h -s /var/lib/postgresql/10/main/base  >> $BACKUP_DIR/backup.log
echo "--------------------------------------------------------------------" >> $BACKUP_DIR/backup.log
# делаем  backup
DB_BASE=`sudo /bin/su postgres -c "/usr/bin/psql -qAt -c 'SELECT * FROM pg_database;'" | \
     cut -d"|" -f1 | /bin/grep -v template | /bin/grep -v postgres`
#DB_BASE="demo test" #конкретные базы
#DB_BASE="" #пропустить
echo $DB_BASE
for DB_NAME in $DB_BASE
 do
     DATA=`date +"%Y-%m-%d_%H-%M-%S"`
     # Записываем информацию в лог с секундами
     echo "$DATA Начало backup базы ${DB_NAME}" >> $BACKUP_DIR/backup.log
     # Бэкапим базу данных demo и сразу сжимаем
     echo "$DATA Начало backup базы ${DB_NAME}"
     sudo /bin/su postgres -c "pg_dump -Fc ${DB_NAME}"  > $BACKUP_DIR/${DB_NAME}_$DATA_NAME.dump
     DATA=`date +"%Y-%m-%d_%H-%M-%S"`
     if [ $? -ne 0 ]
     then
         echo "$DATA Ошибка завершения backup для базы ${DB_NAME}"
         echo "$DATA Ошибка завершения backup для для базы ${DB_NAME}" >> $BACKUP_DIR/backup.log
         exit
     else
          echo "$DATA Успешное завершение backup для базы ${DB_NAME}"
          echo "$DATA Успешное завершение backup для базы ${DB_NAME}" >> $BACKUP_DIR/backup.log
     fi
     echo "--------------------------------------------------------------------" >> $BACKUP_DIR/backup.log
done
# запускаем сервер 1С
#echo "Запускаем сервер 1С"
#sudo systemctl start  srv1cv83.service
#sudo systemctl start srv1cv8-ras.service
echo "Состояние сервера 1С"  >> $BACKUP_DIR/backup.log
sudo systemctl status  srv1cv83.service | grep 'Active:' >> $BACKUP_DIR/backup.log
echo "--------------------------------------------------------------------" >> $BACKUP_DIR/backup.log
echo "Закончено"
cat $BACKUP_DIR/backup.log >> $BACKUP_DIR/backupall.log
cat $BACKUP_DIR/backup.log | mutt -s "backup" root

Сохранить.

$ sudo sh /root/backup1.sh

$ sudo systemctl status  srv1cv83.service


$ dpkg -l | grep postgresql-client-10
hi  postgresql-client-10                  10.8-18.1C                        amd64        front-end program                                    s for PostgreSQL 10

$ sudo systemctl stop postgresql.service
$ mkdir /home/user/test
В папку /test положить файлы:

 postgresql_10.9_5.1C_amd64_deb.tar.bz2

$ mkdir -p /tmp/post
$ cp /home/user/test/postgresql_10.9_5.1C_amd64_deb.tar.bz2 /tmp/post/
$ cd /tmp/post
$ tar -xvf postgresql_10.9_5.1C_amd64_deb.tar.bz2
$ ls 
$ cd postgresql-10.9-5.1C_amd64_deb
$ ls
# список файлов:
#libpq5_10.9-5.1C_amd64.deb  postgresql-10_10.9-5.1C_amd64.deb  postgresql-client-10_10.9-5.1C_amd64.deb

$ sudo dpkg -i *.deb
$ dpkg -l | grep 10.9-5.1C | awk -F' ' '{print $2}' | sudo xargs apt-mark hold
#libpq5 помечен как зафиксированный.
#postgresql-10 помечен как зафиксированный.
#postgresql-client-10 помечен как зафиксированный.

$ sudo systemctl start postgresql.service
$ sudo systemctl status postgresql.service
$ sudo -u postgres reindexdb --all
$ sudo -u postgres vacuumdb --all --analyze --full

$ sudo systemctl start  srv1cv83.service
$ sudo systemctl status  srv1cv83.service
$ sudo systemctl start srv1cv8-ras.service
$ sudo systemctl status srv1cv8-ras.service





# обновление 1с
$ sudo systemctl stop srv1cv83.service
$ sudo systemctl stop srv1cv8-ras.service 
$ mkdir -p /tmp/1ctmp
$ cd /tmp/1ctmp
$ ls /home/user/test/
$ cp /home/user/test/deb64_8_3_15_1656.tar.gz /tmp/1ctmp
$ tar xvzf deb64_8_3_15_1656.tar.gz
$ sudo dpkg -i 1c-enterprise83-common_8.3.15-1656_amd64.deb
$ sudo dpkg -i 1c-enterprise83-server_8.3.15-1656_amd64.deb
#$ sudo dpkg -i 1c-enterprise83-ws_8.3.15-1656_amd64.deb
#$ sudo dpkg -i 1c-enterprise83-crs_8.3.15-1656_amd64.deb
$ sudo systemctl start  srv1cv83.service
$ sudo systemctl status  srv1cv83.service
$ sudo systemctl start srv1cv8-ras.service
$ sudo systemctl status srv1cv8-ras.service


Для 8.3.15 делается один раз

Запуск службы сервера администрирования RAS

$ sudo nano /etc/systemd/system/srv1cv8-ras.service

Вставить:

[Unit]
Description=1C:Enterprise Remote Administration Service
After=network.target remote-fs.target nss-lookup.target
Requires=srv1cv83.service

[Service]
Type=simple
#Если нужно несколько серверов, нужно задать адрес агента сервиса
#ExecStart=/opt/1C/v8.3/x86_64/ras cluster --port=1545 localhost:1540
ExecStart=/opt/1C/v8.3/x86_64/ras cluster --port=1545
KillSignal=SIGINT
PrivateTmp=true
Restart=on-failure
RestartSec=5
User=usr1cv8
Group=grp1cv8

[Install]
WantedBy=multi-user.target

Сохранить.


#$ sudo systemctl daemon-reload
$ sudo systemctl enable srv1cv8-ras.service
$ sudo systemctl start srv1cv8-ras.service
$ sudo systemctl status srv1cv8-ras.service


Удаление кластера 1с

$ sudo systemctl stop srv1cv83.service
$ sudo systemctl stop srv1cv8-ras.service
$ sudo rm -R /home/usr1cv8/.1cv8/1C/1cv8
$ sudo systemctl start  srv1cv83.service
$ sudo systemctl status  srv1cv83.service
$ sudo systemctl start srv1cv8-ras.service
$ sudo systemctl status srv1cv8-ras.service

Удаление баз PostgreSQL

$ sudo su postgres -c "psql -c 'DROP DATABASE demo;'"
$ sudo su postgres -c "psql -c 'DROP DATABASE demo1;'"   


 


Astra Linux Wine (Playonlinux)

понедельник, 16 сентября 2019 г.

Файловый backup 1c

Бэкап 1С: Семь маленьких путешествий в поисках одной большой утилиты
Бэкапер-1С: резервные копии бухгалтерии 1С (8.3, 8.2, 8.1, 7.7)



В планировщике событие при воде в систему
Программа или сценарий:
"C:\Program Files (x86)\Backuper-1C-Pro\Backuper-1C-Pro.exe"
Добавить аргументы:
-Schedule -CloseAnyway

Архивы будем класть на сервер Ubuntu

Настройка Ubuntu 16.04, 18.04

$ sudo nano /etc/default/rsync

#RSYNC_ENABLE=false
RSYNC_ENABLE=true

Сохранить.


$ sudo nano /etc/rsyncd.conf
# create new
# any name you like

[backup]
# destination directory to copy

path = /backup/rsync
# hosts you allow to access

hosts allow = 192.168.0.0/255.255.255.0
hosts deny = *
list = true
uid = root
gid = root
read only = false


Сохранить.

$ sudo mkdir /backup/rsync
$ sudo systemctl enable rsync
$ sudo systemctl start rsync


Под windows 10 :

g:\rsync>rsync -avz  /cygdrive/G/arhiv 192.168.0.134::backup --progress

Можно сделать один скрипт и поставить в планировщик:

CALL "c:\Program Files (x86)\Backuper-1C-Pro\Backuper-1C-Pro.exe" -Schedule -CloseAnyway
REM Смена диска и переход в папку из которой запущен bat-файл
%~d0
CD %~dp0
CALL e:\rsync\rsync -avz  /cygdrive/E/raisa 192.168.10.24::backup --progress

Можно проверит доступность сервера по ping :

ping -n 1 -w 1000 192.168.0.5|Find "TTL=">nul
If %ErrorLevel%==0 (
CALL d:\Copy\rsync\rsync -avz  /cygdrive/D/Copy/Archiv 192.168.0.5::backup --progress
) Else (
Echo Offline
)

воскресенье, 15 сентября 2019 г.

Госзакупки

ФАС База решений и правовых актов
Про требования к исполнителю
Закупаем услуги по сопровождению систем автоматизации учетной деятельности
---------------------------------------------------------------------------------------
Закупка № 0151300011519000018
Решение №054/06/33-659/2019 жалоба ООО «Внедренчиский Центр ЛИС С» на действия заказчика... от 15 апреля 2019 г.
---------------------------------------------------------------------------------------
Закупка №0349200010114000012
Решение б/н Решение и предписание по жалобе ООО "Корунд-Сервис" № 06-10/... от 3 марта 2014 г.
---------------------------------------------------------------------------------------
Закупка №0318100021216000009
РЕШЕНИЕ по делу № ЭА – 577/2016 о нарушении
---------------------------------------------------------------------------------------
Примеры закупок:
Закупка №0172100005919000027
---------------------------------------------------------------------------------------





четверг, 12 сентября 2019 г.

How to Use Stubby to Configure DNS over TLS on Linux

Configure DNS over TLS on Linux Mint to Protect DNS Privacy
Protect Your DNS Privacy on Ubuntu 18.04 with DNS over TLS
Как спрятать DNS-запросы от любопытных глаз провайдера
Почему Mozilla назвали «главным злодеем интернета»?
Как включить DNS over HTTPS в браузере Firefox
Стандарт Encrypted SNI реализован в Firefox Nightly
Rutracker включил eSNI

Astra Linux (debian 9) 
DNS Privacy with Stubby 

$ sudo apt install debian-archive-keyring dirmngr
$ sudo nano /etc/apt/sources.list
Добавить:
deb https://mirror.yandex.ru/debian/ stretch main contrib non-free
Сохранить.
$ sudo apt update
 
 

$ sudo apt install build-essential git libtool autoconf libssl-dev libyaml-dev
$ git clone https://github.com/getdnsapi/getdns.git
$ cd getdns
$ git tag
Берем версию 1.4.2 (1.5.2 служба не запускается)
$ git checkout v1.4.2
$ git submodule update --init
$ libtoolize -ci
$ autoreconf -fi
$ mkdir build
$ cd build/
$ ../configure --prefix=/usr/local --without-libidn --without-libidn2 --enable-stub-only --with-stubby

$ make
$ sudo make install

$ cd ..
$ cd stubby/systemd/
$ sudo cp stubby.service /lib/systemd/system/
$ sudo nano /lib/systemd/system/stubby.service

[Unit]
Description=stubby DNS resolver

[Service]
User=stubby
DynamicUser=yes
CacheDirectory=stubby
WorkingDirectory=/var/cache/stubby
#ExecStart=/usr/bin/stubby

# Добавить строчку ниже:
ExecStart=/usr/local/bin/stubby
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target



Сохранить.

$ sudo mkdir /var/cache/stubby
$ sudo ldconfig -v
$ sudo nano /usr/local/etc/stubby/stubby.yml

Заменить:

listen_addresses:
# - 127.0.0.1
# - 0::1
  - 127.0.0.1@53000
  - 0::1@53000
 

Сохранить.

$ sudo systemctl list-unit-files | grep -i stubby
$ sudo systemctl enable stubby
$ sudo systemctl start stubby

$ sudo apt install dnsutils
$ sudo dig @127.0.0.1 -p 53000 www.wagemakers.be

; <<>> DiG 9.11.3-1ubuntu1.5-Debian <<>> @127.0.0.1 -p 53000 www.wagemakers.be
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58292
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: c4ac9fd30dc88b65f29679e45d7bb1e4937962e995313850 (good)
;; QUESTION SECTION:
;www.wagemakers.be.             IN      A

;; ANSWER SECTION:
www.wagemakers.be.      86000   IN      CNAME   wagemakers.be.
wagemakers.be.          86000   IN      A       95.215.185.144

;; Query time: 286 msec
;; SERVER: 127.0.0.1#53000(127.0.0.1)
;; WHEN: Fri Sep 13 18:12:36 MSK 2019
;; MSG SIZE  rcvd: 147
 



$ sudo apt install dnsmasq
$ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf_org
$ sudo nano /etc/dnsmasq.conf
Вставить:
server=127.0.0.1#53000
listen-address=127.0.0.1
interface=lo  
bind-interfaces
Сохранить.




$ sudo systemctl enable dnsmasq
$ sudo systemctl restart dnsmasq
$ sudo dig @127.0.0.1 www.wagemakers.be

; <<>> DiG 9.11.3-1ubuntu1.5-Debian <<>> @127.0.0.1 www.wagemakers.be
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27580
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;www.wagemakers.be.             IN      A

;; ANSWER SECTION:
www.wagemakers.be.      86000   IN      CNAME   wagemakers.be.
wagemakers.be.          86000   IN      A       95.215.185.144

;; Query time: 169 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Sep 13 18:21:38 MSK 2019
;; MSG SIZE  rcvd: 76



$ sudo nano /etc/resolv.conf

# Generated by NetworkManager
#nameserver 192.168.0.1
nameserver 127.0.0.1

Сохранить.

проверка dns


How to Add CloudFlare DNS to Stubby

$ sudo nano /usr/local/etc/stubby/stubby.yml

Закомментировать тестовые DNS и расскоментировать:

#CloudFlare servers
  - address_data: 1.1.1.1
    tls_auth_name: "cloudflare-dns.com"
  - address_data: 1.0.0.1
    tls_auth_name: "cloudflare-dns.com"

Сохранить.

$ sudo systemctl start stubby

проверка dns






 .

Astra Linux orel установка telegram

3 Ways to Install Telegram Messenger on Debian 9 Stretch

$ wget https://updates.tdesktop.com/tlinux/tsetup.1.8.8.tar.xz
$ tar xvf tsetup*.tar.xz
$ cd Telegram
$ ./Telegram



воскресенье, 8 сентября 2019 г.

Astra Linux orel 2.12 printer-driver-cups-pdf

Устанавливаем систему печати в PDF
Печать pdf

$ sudo apt update
$ sudo apt install samba
$ sudo apt install printer-driver-cups-pdf

Создаем каталог для печати, который потом сделаем доступным для виндовых клиентов, и делаем его доступным для всех.

$ sudo mkdir -p /var/spool/cups-pdf/

$ sudo chmod -R 2777 /var/spool/cups-pdf/

$ sudo chown -R root:sambashare /var/spool/cups-pdf/


$ sudo cp /etc/cups/cups-pdf.conf /etc/cups/cups-pdf.conf.bak

$ sudo nano /etc/cups/cups-pdf.conf

Меняем в секции ### Key: Out :
Out /var/spool/cups-pdf/${USER}


Раскоментируем в секции ### Key: AnonUMask :
#AnonUMask 0000
AnonUMask 0000


Раскоментируем и меняем в секции ### Key: UserUMask :
#UserUMask 0077
UserUMask 0000

Этим мы даем права всем пользователям

Сохраняем файл и рестартуем cups.

$ sudo service cups restart


Сохраняем конфигурацию samba

$ sudo cp -b -f /etc/samba/smb.conf /etc/samba/smb.conf.bak

Восстановить $ sudo cp -b -f /etc/samba/smb.conf.bak /etc/samba/smb.conf


Отредактируем конфигурационный файл:

$ sudo nano /etc/samba/smb.conf

Добавить в конец

[pdf]
path = /var/spool/cups-pdf/
comment = No comment
read only = no
available = yes
browseable = yes
writable = yes
guest ok = yes
public = yes
printable = no
locking = no
strict locking = no

Сохранить
Перезагрузить службу
$ sudo service smbd restart

суббота, 7 сентября 2019 г.

Astra Orel 2.12 установка openconnect

Установка openconnect

$ sudo apt install debian-archive-keyring dirmngr
$ sudo nano /etc/apt/sources.list

Добавить:

deb http://deb.debian.org/debian/ stretch main
#deb https://mirror.yandex.ru/debian/ stretch main contrib non-free


Сохранить.

$ sudo apt update
$ sudo apt install openconnect

пятница, 6 сентября 2019 г.

Astra Orel 2.12 установка 1С терминальный сервер

Установка и настройка 1С
Установка и настройка 1С на ОС СН Смоленск 1.6

Orel 2.12 соответствует debian 9.4

$ sudo apt install samba
$ sudo apt install xrdp
#$ wget http://ftp.etersoft.ru/pub/Etersoft/HASP/7.90/x86_64/AstraLinux/orel/dkms-aksparlnx_7.90-eter1astra_all.deb
$ wget http://ftp.etersoft.ru/pub/Etersoft/HASP/7.90/x86_64/AstraLinux/orel/haspd-modules_7.90-eter2astra_amd64.deb
$ wget http://ftp.etersoft.ru/pub/Etersoft/HASP/7.90/x86_64/AstraLinux/orel/haspd_7.90-eter2astra_amd64.deb

$ sudo dpkg -i haspd_7.90-eter2astra_amd64.deb
$ sudo dpkg -i haspd-modules_7.90-eter2astra_amd64.deb
$ sudo apt install -f

$ sudo service haspd restart
$ sudo service haspd status
$ sudo apt install ttf-mscorefonts-installer
$ sudo  fc-cache -fv
$ sudo apt install libfreetype6 libgsf-1-common unixodbc glib2.0 
$ tar xvzf deb64_8_3_15_1656.tar.gz
$ tar xvzf client_8_3_15_1656.deb64.tar.gz

$ sudo dpkg -i 1c-enterprise83-common_8.3.15-1656_amd64.deb
$ sudo dpkg -i 1c-enterprise83-server_8.3.15-1656_amd64.deb
$ sudo dpkg -i 1c-enterprise83-client_8.3.15-1656_amd64.deb
$ sudo apt install -f 
$ sudo chown -R usr1cv8:grp1cv8 /opt/1C

Для debian и astra:

$ sudo nano /etc/pam.d/common-session

Добавить в конец файла:

session optional pam_umask.so umask=0002

Сохранить.

$ sudo reboot 

Всех пользователей 1с нужно добавить в группу grp1cv8
$ sudo usermod -a -G grp1cv8 user
$ sudo usermod -a -G grp1cv8 user01 
.......
$ sudo usermod -a -G grp1cv8 user10


$ sudo mkdir -p /opt/1C_bases
Можно создать папку для конфигурации сразу, а можно потом, после установки прав
#$ sudo mkdir -p /opt/1C_bases/demo
$ sudo chown -R usr1cv8:grp1cv8 /opt/1C_bases
#$ sudo chmod -R 777 /opt/1C_bases
$ sudo chmod -R g+sw /opt/1C_bases




Резюме:
xrdp работает из коробки.

x2go медленее, с артефактами, проблемами с клавиатурой и т.п.

Установка сервера x2go
RemoteApp на Linux для 1С [Часть 1]
RemoteApp на Linux для 1С [Часть 2]
Терминальный сервер X2Go на Debian 9
Терминальный сервер на Linux CentOS-6 - X2Go terminal server
Добавление дополнительной локали(языка) и раскладки клавиатуры
Терминальные решения

$ sudo apt-get install x2goserver cups-x2go x2goserver-xsession openssh-server
$ sudo adduser client1

Далее нужно добавить виртуальный принтер x2GO:
Открыть "Панель управления" - "Оборудование" - "Принтеры" - нажать "Добавить новый принтер" - выбрать "Virtual X2Go Printer" - драйвер выбрать "Generic" - "Generic CUPS-X2Go Printer"

X2GoClient_latest_mswin32-setup.exe
 
fly-wm

Настройка клавиатуры

$ nano start.sh

#!/bin/bash
setxkbmap -rules xorg -model pc105 -layout "ru(winkeys),us" -option "grp:ctrl_shift_toggle" 
#setxkbmap -layout "us,ru" -model "pc105" -option "grp:alt_shift_toggle,grp_led:scroll"


Сохранить.


Скрипт в автозагрузку.

Foxit-Reader_6.1.5.0624

"c:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe" /p


 



.






среда, 4 сентября 2019 г.

pg_repack ubuntu 18.04

русское описание
  
pg_repack — утилита и расширение для реорганизации таблиц
 
 
$ sudo apt-get update
$ sudo apt-get install postgresql-10-repack
 
$ sudo su postgres
Для каждой базы, в примере demo создать расширение:

$ psql -c "CREATE EXTENSION pg_repack" -d demo
CREATE EXTENSION

Сделать vacuum full всех баз в кластере (где установлены расширения)

$ pg_repack -na

для базы demo
$ time pg_repack -n -d demo

тоже с перестроением индексов в 4 потока
$ time pg_repack -d demo -n -j 4


postgres=# \c demo
Вы подключены к базе данных "demo" как пользователь "postgres".
demo=# select * from pg_available_extensions where installed_version is not null;






$ sudo nano /root/pg_repack.sh

#!/bin/sh -e
DB_BASE=`sudo /bin/su postgres -c "/usr/bin/psql -qAt -c 'SELECT * FROM pg_database;'| \
     cut -d'|' -f1 | /bin/grep -v template | /bin/grep -v postgres"`
echo $DB_BASE
for DB_NAME in $DB_BASE
do
    #echo $DB_NAME
    sudo /bin/su postgres -c "/usr/bin/psql -c 'CREATE EXTENSION IF NOT EXISTS pg_repack'\
        -d $DB_NAME"
    sudo su postgres -c "pg_repack -d $DB_NAME -n"
done