вторник, 30 мая 2017 г.

настройка webdav 1

WebDAV server setup on Ubuntu Linux  
# lxc-clone -o xenial_lxc -n webdav1
# lxc-start -n webdav1 -d
# lxc-ls -f
$ sudo -i
# apt update
# apt upgrade
# apt install mc wget nano
# apt install apache2
# wget 127.0.0.1
# cd /var/www
# mkdir webdav
# chown www-data.www-data /var/www/webdav
# cd /etc/apache2/sites-available/
# cp 000-default.conf webdav.local.conf
# nano webdav.local.conf
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>
Сохранить.
# a2dissite 000-default.conf
# a2ensite webdav.local
# sh -c 'echo "Welcome from WebDAV.local" > /var/www/webdav/index.html'
# service apache2 reload

# a2enmod dav_fs
Considering dependency dav for dav_fs:
Enabling module dav.
Enabling module dav_fs.
#  service apache2 restart
# mkdir /var/www/webdav/svn
# chown www-data.www-data /var/www/webdav/svn/

# mkdir /usr/local/apache2/
# htpasswd -c /usr/local/apache2/webdav.passwords user



# nano webdav.local.conf
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /usr/local/apache2/webdav.passwords
        Require valid-user
</Location>
</VirtualHost>

# apt-get install cadaver
# cadaver http://localhost/svn
Authentication required for webdav on server `localhost':
Username: user
Password:
dav:/svn/> ls
http://blog.xsk.in/it/sozdanie-sobstvennogo-webdav-servera/435

настройка webdav

# lxc-clone -o xenial_lxc -n webdav
# lxc-start -n webdav -d
# lxc-ls -f
$ sudo -i
# dpkg-reconfigure tzdata
# apt update
# apt upgrade
# apt install mc wget nano
# apt-get install apache2
# wget 127.0.0.1
 должен быть доступен http://192.168.0.204/
-----------------------------------------------------------------------------------
SSL-сертификаты. Что это такое ? зачем это нужно?
Create SSL Certificates
# cd /etc/ssl/private
# openssl genrsa -aes256 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
Enter pass phrase for server.key: passphrase
Verifying - Enter pass phrase for server.key: passphrase

# openssl req -new -days 3650 -key server.key -out server.csr

# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
# chmod 400 server.*

Убрать pass phrase из файла
# cd /etc/ssl/private
# mv server.key old-server.key
# openssl rsa -in old-server.key -out server.key
# chmod 400 server.*
!!!# reboot

Use WebDAV
# mkdir /home/webdav# chown ubuntu:www-data /home/webdav
# chmod 770 /home/webdav

SSL Settings

# nano /etc/apache2/sites-available/default-ssl.conf
Заменить содержимое:
<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster@localhost
                #DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
                SSLEngine on
                SSLCertificateFile /etc/ssl/private/server.crt
                SSLCertificateKeyFile /etc/ssl/private/server.key

                Alias /webdav /home/webdav

                <Location /webdav>
                    DAV On
                    SSLrequireSSL
                    Options None
                    AuthType Basic
                    AuthName WebDAV
                    AuthUserFile /etc/apache2/.htpasswd
                    Require valid-user
                </Location>
        </VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Сохранить.

# a2enmod dav*
Considering dependency dav for dav_fs:
Enabling module dav.
Enabling module dav_fs.
# a2ensite default-ssl
# a2enmod ssl
# service apache2 reload

!!!# systemctl restart apache2# htpasswd -c /etc/apache2/.htpasswd ubuntu

Загрузить CarotDAV
Загрузить directnet-drive

https://192.168.0.204/webdav/
.


понедельник, 29 мая 2017 г.

Виртуальный образ kvm ubuntu 16.04.2 db2 11.1 trial server

Клонируем /db2111/Base_01 в base
a base  в db2s
 $ sudo -i
# nano /etc/network/interfaces
address 192.168.0.215
Сохранить.
# nano /etc/hosts
Изменить:
127.0.0.1       localhost
127.0.1.1       db2111
Сохранить.
# nano /etc/hostname
Изменить
db2111
Сохранить.
!!!# service hostname restart
!!!# service networking restart
# reboot
Проверить из под windows
ping db2111
# poweroff

Сохраним образ в /db2s/Base_01

Установка db2 утилитой db2_install
Зададим пользователей:

$ sudo -i
# groupadd db2iadm1
# useradd -g db2iadm1 -m -d /home/db2inst1 db2inst1
# passwd db2inst1

# groupadd db2fadm1
# useradd -g db2fadm1 -m -d /home/db2fenc1 db2fenc1
# passwd db2fenc1

!# dpkg --add-architecture i386
!# apt-get update
 Пакет libaio1 есть.
# apt-get install libx32stdc++6 -y
# apt-get install libpam0g:i386 -y
# apt-get install binutils -y
# apt-get install libnuma-dev -y
Пакет  libstdc++6 есть.
!!!# apt-get install libstdc++6 -y
# apt-get install libstdc++5 -y
# apt-get install ksh -y
# apt-get install rpm -y


Используем пакет v11.1.1fp1_linuxx64_universal_fixpack.tar.gz
# cd /home/user/universal
# ./db2prereqcheck -v 11.1.1.1

инсталляция выбираем SERVER
# ./db2_install
Не указан сервер SMTP уведомлений. Пока он не задан, нельзя послать уведомления адресатам, указанным в вашем списке адресатов.
#  rm -R /home/ubuntu/universal
Настройка db2 для работы с 1С

# cd /opt/ibm/db2/V11.1/instance
# ./db2icrt -u db2fenc1 db2inst1

# su - db2inst1

Конфигурируем DB2 для работы с 1С:

$ db2set DB2_WORKLOAD=1C

Запускаем экземпляр DB2:

При установке db2setup экземпляр db2 уже запущен, пропускаем

$ db2start
!!!без apt-get install libnuma-dev -y
!!!db2start: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No !!!such file or directory

Посмотреть версию DB2

$ db2ls

Посмотреть БД
$ db2ilist

$ db2licm -l
Product name:                     "DB2 Enterprise Server Edition"
License type:                     "License not registered"
Expiry date:                      "License not registered"
Product identifier:               "db2ese"
Version information:              "11.1"

$ exit

# cd /opt/ibm/db2/V11.1/instance
# ./db2iauto -on db2inst1
# reboot

$ sudo -i
 # ps -eaf|grep -i db2sysc
root      1306  1286  0 15:35 pts/0    00:00:00 grep --color=auto -i db2sysc

# su - db2inst1
$ db2start
$ exit
# ps -eaf|grep -i db2sysc
db2inst1  1784  1782  2 15:37 pts/0    00:00:00 db2sysc
root      1809  1286  0 15:37 pts/0    00:00:00 grep --color=auto -i db2sysc

Итог db2 не запускается автоматом.
DB2 AutoStart is not supported on Red Hat Enterprise Linux version 7

Вариант 1 пропускаем идем к Вариант 2.
Вариант 1. оформим автозагрузку с помощью update-rc.d в стиле System-V
update-rc.d - install and remove System-V style init script links
Для запуска воспользуемся скриптом:
# nano /etc/init.d/db2autostart
Добавим:
#! /bin/sh
# /etc/init.d/db2autostart
#
case "$1" in
  start)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2start
    ;;
  stop)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2stop
    ;;
  *)
    echo "Usage: /etc/init.d/db2autostart {start|stop}"
    exit 1
    ;;
esac
exit 0

Сохраним.
# chmod +x /etc/init.d/db2autostart
поставим в автозагрузку
# update-rc.d db2autostart defaults
warning: script 'db2autostart' missing LSB tags and overrides
Проверим
# ps -eaf|grep -i db2sysc
# /etc/init.d/db2autostart start
# ps -eaf|grep -i db2sysc 
# /etc/init.d/db2autostart stop
# reboot
$ sudo -i
# ps -eaf|grep -i db2sysc
db2inst1  1125  1123  0 15:52 ?        00:00:00 db2sysc
root      1323  1309  0 15:52 pts/0    00:00:00 grep --color=auto -i db2sysc
# reboot
работает.
$ sudo -i
# ps -eaf|grep -i db2sysc
db2inst1  1275  1242  0 11:41 ?        00:00:00 db2sysc
root      1565  1551  0 11:45 pts/0    00:00:00 grep --color=auto -i db2sysc

!!!Удаление (если использовать 2 вариант)
!!! # update-rc.d db2autostart remove
!!! # rm /etc/init.d/db2autostart -y
Конец Вариант 1.

Вариант 2. с использованием systemd:
SystemdForUpstartUsers
Шпаргалка по управлению сервисами CentOS 7 с systemd

Для запуска воспользуемся скриптом:
# nano /usr/local/bin/db2autostart.sh
Добавим:
#! /bin/sh
# /etc/init.d/db2autostart
#
case "$1" in
  start)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2start
    ;;
  stop)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2stop
    ;;
  *)
    echo "Usage: /etc/init.d/db2autostart {start|stop}"
    exit 1
    ;;
esac
exit 0
Сохраним.
# chmod +x /usr/local/bin/db2autostart.sh

# nano  /lib/systemd/system/db2autostart.service

[Unit]
Description = db2 db2autostart daemon

[Service]
Type=forking
ExecStart=/usr/local/bin/db2autostart.sh start
ExecStop =/usr/local/bin/db2autostart.sh stop

[Install]
WantedBy=multi-user.target

Сохранить.

# chmod +x /lib/systemd/system/db2autostart.service

# systemctl daemon-reload
# systemctl enable db2autostart.service
# systemctl status db2autostart.service
# ps -eaf|grep -i db2sysc
root      2849  2775  0 11:37 pts/0    00:00:00 grep --color=auto -i db2sysc
# systemctl start db2autostart.service
# ps -eaf|grep -i db2sysc
db2inst1  2864  2862  1 11:39 ?        00:00:00 db2sysc
root      2888  2775  0 11:39 pts/0    00:00:00 grep --color=auto -i db2sysc
# systemctl stop db2autostart.service
# ps -eaf|grep -i db2sysc
root      2901  2775  0 11:40 pts/0    00:00:00 grep --color=auto -i db2sysc
# systemctl start db2autostart.service
db2inst1  2913  2911  2 11:40 ?        00:00:00 db2sysc
root      2943  2775  0 11:40 pts/0    00:00:00 grep --color=auto -i db2sysc 
# reboot
Конец Вариант 2.
------------------------------------------------ 
$ sudo -i

Проверка
#  ps -eaf|grep -i db2sysc
db2inst1   694   692  0 09:41 ?        00:00:00 db2sysc
root       771   760  0 09:42 pts/4    00:00:00 grep --color=auto -i db2sysc

# apt-get install  imagemagick -y

Строка ниже срабатывает далеко не всегдаю
# apt-get install ttf-mscorefonts-installer -y
------------------------------------------------------------
Альтернативно:
# apt-get install wget -y
# mkdir /home/ubuntu/Downloads
# wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb -P /home/ubuntu/Downloads
# apt install /home/ubuntu/Downloads/ttf-mscorefonts-installer_3.6_all.deb
# fc-cache -f -v
------------------------------------------------------------
Дистрибутивы  в папке soft
!!!# ln -s /usr/lib/x86_64-linux-gnu/libMagickWand.so.5 /usr/lib/x86_64-linux-gnu/libMagickWand.so

# cd /home/user/soft/8.3.10.2252/
# tar xvzf deb64.tar.gz
# dpkg -i 1c*.deb
# apt-get -f install
# apt autoremove -y
# cd .. 
# rm -R  /home/ubuntu/8.3.10.2168
# chown -R usr1cv8:grp1cv8 /opt/1C
Зададим пароль pass
# passwd usr1cv8
 Теперь создадим базу 1С на сервере DB2.
добавим пользователя usr1cv8 в группу доступа db2iadm1
# usermod -aG db2iadm1 usr1cv8
# echo ". /home/db2inst1/sqllib/db2profile" >> /home/usr1cv8/.profile
# service srv1cv83 start
# service srv1cv83 status
!!!# service srv1cv83 restart
# poweroff

Сохраним образ в /db2s/Base02
Теперь создадим базу.


.

Запуск машины на хосте
 # virsh start db2s
Домен db2s запущен

Запущенные машины:
 # virsh list

Выключение машины
# virsh shutdown db2s

 

воскресенье, 28 мая 2017 г.

Виртуальный образ vbx ubuntu 16.04.2 db2 11.1

Без файла подкачи!
Предустановки 4 ядра, 8 Гб RAM,  Ubuntu 16.04.2
При инсталляции  установить ssh, samba
Название db2
 $ sudo -i
# apt update -y
# apt upgrade -y
# apt install mc htop -y
# reboot
$ sudo -i
How To Add Swap Space on Ubuntu 16.04

Создание:
# fallocate -l 8G /swapfile
Проверка:
# ls -lh /swapfile
-rw-r--r-- 1 root root 8,0G май 13 13:14 /swapfile
Подключение:
# chmod 600 /swapfile
Проверка:
# ls -lh /swapfile
-rw------- 1 root root 8,0G май 13 13:14 /swapfile
# mkswap /swapfile
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
без метки, UUID=870205f2-31db-4977-a89e-f3e283ff91f9

Старт:
# swapon /swapfile
Посмотрим:
# swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   8G   0B   -1
# free -h
              total        used        free      shared  buff/cache   available
Память:        7,8G        524M        5,4G         56M        1,9G        7,0G
Подкачка:        8,0G          0B        8,0G

Сделать перманентным:

# cp /etc/fstab /etc/fstab.bak
# echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Посмотреть:
# nano /etc/fstab
В конце файла:
/swapfile none swap sw 0 0
# cat /proc/sys/vm/swappiness
60
По умолчанию установлено значение 60. Если это значение ближе к 100, система будет пытаться поместить в подкачку больше данных и сберечь память, при значениях близких к нулю, ядро не переносит данные на диск, если в этом нет крайней необходимости.

 Другой параметр, который влияет на количество используемой памяти - это vfs_cache_pressure. Он указывает системе какое время нужно хранить открытые файлы в кэше оперативной памяти. Значение 100 заставляет систему удалять такие файлы очень быстро, 0 - держать их в памяти как можно дольше. Посмотрите текущее состояние:

# cat /proc/sys/vm/vfs_cache_pressure
100


 
# nano /etc/sysctl.conf
В конец
vm.swappiness=0
vm.vfs_cache_pressure = 100
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Сохранить.
Применить сразу:
# sysctl -p

Отключим службу ondemand
(для разгона cpu)

# cat /proc/cpuinfo | grep MHz
# systemctl status ondemand
# systemctl stop ondemand
# systemctl disable ondemand
# reboot

$ sudo -i
Проверки:
# cat /proc/cpuinfo | grep MHz
# hdparm -Tt /dev/sda1
# free -h
# cat /proc/sys/vm/swappiness
# cat /proc/sys/vm/vfs_cache_pressure
----------------------------------------------------------------
Установка db2 утилитой db2_install
Зададим пользователей:

$ sudo -i
# groupadd db2iadm1
# useradd -g db2iadm1 -m -d /home/db2inst1 db2inst1
# passwd db2inst1

# groupadd db2fadm1
# useradd -g db2fadm1 -m -d /home/db2fenc1 db2fenc1
# passwd db2fenc1

# dpkg --add-architecture i386
# apt-get update
 Пакет libaio1 есть.
# apt-get install libx32stdc++6 -y
# apt-get install libpam0g:i386 -y
# apt-get install binutils -y
# apt-get install libnuma-dev -y

# cd /home/user/expc
# ./db2prereqcheck -v 11.1.0.0
инсталляция
# ./db2_install
Не указан сервер SMTP уведомлений. Пока он не задан, нельзя послать уведомления адресатам, указанным в вашем списке адресатов.
#  rm -R /home/ubuntu/expc
Настройка db2 для работы с 1С

# cd /opt/ibm/db2/V11.1/instance
# ./db2icrt -u db2fenc1 db2inst1

# su - db2inst1

Конфигурируем DB2 для работы с 1С:

$ db2set DB2_WORKLOAD=1C
$  db2licm -l

Запускаем экземпляр DB2:

При установке db2setup экземпляр db2 уже запущен, пропускаем

$ db2start
!!!без apt-get install libnuma-dev -y
!!!db2start: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No !!!such file or directory

Посмотреть версию DB2

$ db2ls

Посмотреть БД
$ db2ilist

$ exit
# cd /opt/ibm/db2/V11.1/instance
# ./db2iauto -on db2inst1
# ps -eaf|grep -i db2sysc
db2inst1  6753  6751  0 15:33 pts/0    00:00:00 db2sysc
root      7294  1286  0 15:35 pts/0    00:00:00 grep --color=auto -i db2sysc

# su - db2inst1
$ db2stop
$ /d
# reboot

$ sudo -i
 # ps -eaf|grep -i db2sysc
root      1289  1274  0 15:39 pts/0    00:00:00 grep --color=auto -i db2sysc

Т.е. не происходит автозагрузка db2 instance после перезагрузки системы
Autostart of DB2 instance on reboot does not work on RHEL6/CentOS systems  

Для запуска воспользуемся скриптом:
# nano /etc/init.d/db2autostart
Добавим:
#! /bin/sh
# /etc/init.d/db2autostart
#
case "$1" in
  start)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2start
    ;;
  stop)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2stop
    ;;
  *)
    echo "Usage: /etc/init.d/db2autostart {start|stop}"
    exit 1
    ;;
esac
exit 0

Сохраним.
# chmod +x /etc/init.d/db2autostart

Вариант 1. оформим автозагрузку с помощью update-rc.d в стиле System-V
update-rc.d - install and remove System-V style init script links
поставим в автозагрузку

# update-rc.d db2autostart defaults
warning: script 'db2autostart' missing LSB tags and overrides
Проверим
# ps -eaf|grep -i db2sysc
# /etc/init.d/db2autostart start
# ps -eaf|grep -i db2sysc 
# /etc/init.d/db2autostart stop
# reboot
$ sudo -i
# ps -eaf|grep -i db2sysc
db2inst1  1125  1123  0 15:52 ?        00:00:00 db2sysc
root      1323  1309  0 15:52 pts/0    00:00:00 grep --color=auto -i db2sysc
# reboot
работает.

Удаление (если использовать 2 вариант)
!!! # update-rc.d db2autostart remove
!!! # rm /etc/init.d/db2autostart -y

Вариант 2. с использованием systemd:
SystemdForUpstartUsers
Шпаргалка по управлению сервисами CentOS 7 с systemd

# nano  /lib/systemd/system/db2autostart.service

[Unit]
Description = db2 db2autostart daemon

[Service]
Type=forking
ExecStart=/etc/init.d/db2autostart start
ExecStop =/etc/init.d/db2autostart stop

[Install]
WantedBy=multi-user.target

Сохранить.

# chmod +x /lib/systemd/system/db2autostart.service

# systemctl daemon-reload
# systemctl enable db2autostart.service  
# systemctl status db2autostart.service 
# ps -eaf|grep -i db2sysc
# systemctl stop db2autostart.service
# ps -eaf|grep -i db2sysc
# systemctl start db2autostart.service
# systemctl status db2autostart.service

$ sudo -i
# ps -eaf|grep -i db2sysc
db2inst1   754   752  0 15:42 pts/4    00:00:00 db2sysc
root       779   272  0 15:43 pts/4    00:00:00 grep --color=auto -i db2sysc

# apt-get install  imagemagick -y
Строка ниже срабатывает далеко не всегдаю
# apt-get install ttf-mscorefonts-installer -y
------------------------------------------------------------
Альтернативно:
# apt-get install wget -y
# mkdir /home/ubuntu/Downloads
# wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb -P /home/ubuntu/Downloads
# apt install /home/ubuntu/Downloads/ttf-mscorefonts-installer_3.6_all.deb
# fc-cache -f -v
------------------------------------------------------------
Дистрибутивы  в папке soft
!!!# ln -s /usr/lib/x86_64-linux-gnu/libMagickWand.so.5 /usr/lib/x86_64-linux-gnu/libMagickWand.so

# cd /home/user/soft/8.3.10.2252/
# tar xvzf deb64.tar.gz
# dpkg -i 1c*.deb
# apt-get -f install
# apt autoremove -y
# cd .. 
# rm -R  /home/ubuntu/8.3.10.2168
# chown -R usr1cv8:grp1cv8 /opt/1C
Зададим пароль pass
# passwd usr1cv8
 Теперь создадим базу 1С на сервере DB2.
добавим пользователя usr1cv8 в группу доступа db2iadm1
# usermod -aG db2iadm1 usr1cv8
# echo ". /home/db2inst1/sqllib/db2profile" >> /home/usr1cv8/.profile
# service srv1cv83 start
# service srv1cv83 status
!!!# service srv1cv83 restart
# poweroff 

Сохраняем db2.ova .
------------------------------------------------------------------------------

Действия после восстановления виртуальной машины из образа db2.ova

в VirtualBox 1. Импортировать файл db2.ova 2. Перед запуском изменить настройки сети перевыбрать сетевой мост и имя адаптера.



.


3. Система -> материнская плата установить 16 GB.
4. Система -> процессор установить 8 ядер.
5. Запустить виртуальную машину.
6. Через консоль настроить сеть:
$ sudo nano /etc/network/interfaces

Пример:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

#source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto enp0s3
#iface enp0s3 inet dhcp

iface enp0s3 inet static
address 192.168.0.77
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1 8.8.8.8
auto enp0s3
 
Сохранить. 
Перезагрузка 
$ sudo reboot
 
 
Кластер 1с не создан. 
После перезагрузки
Подключение 1с
 
 
Тест Гилёва
 
 Многопоточный тест производительности 1с - результаты
.

суббота, 27 мая 2017 г.

Виртуальный образ kvm ubuntu 16.04.2 db2 11.1

Склонируем две машины:
ubuntu16.04-d для db2
Машины получились с одинаковыми статическими адресами и именами, поэтому изменим.
--------------------------------------------------------------------------------------------------
 запустим ubuntu16.04-p для postgres.
 $ sudo -i
# nano /etc/network/interfaces
address 192.168.0.203
Сохранить.
# nano /etc/hosts
Изменить:
127.0.0.1       localhost
127.0.1.1       db2111
Сохранить.
# nano /etc/hostname
Изменить
db2111
Сохранить.
!!!# service hostname restart
!!!# service networking restart
# reboot
Проверить из под windows
ping db2111
# poweroff

Сохраним образ в /db2111/Base_01

Установка db2 утилитой db2_install
Зададим пользователей:

$ sudo -i
# groupadd db2iadm1
# useradd -g db2iadm1 -m -d /home/db2inst1 db2inst1
# passwd db2inst1

# groupadd db2fadm1
# useradd -g db2fadm1 -m -d /home/db2fenc1 db2fenc1
# passwd db2fenc1

!# dpkg --add-architecture i386
!# apt-get update
 Пакет libaio1 есть.
# apt-get install libx32stdc++6 -y
# apt-get install libpam0g:i386 -y
# apt-get install binutils -y
# apt-get install libnuma-dev -y

# cd /home/user/expc
# ./db2prereqcheck -v 11.1.0.0

инсталляция
# ./db2_install
Не указан сервер SMTP уведомлений. Пока он не задан, нельзя послать уведомления адресатам, указанным в вашем списке адресатов.
#  rm -R /home/ubuntu/expc
Настройка db2 для работы с 1С

# cd /opt/ibm/db2/V11.1/instance
# ./db2icrt -u db2fenc1 db2inst1

# su - db2inst1

Конфигурируем DB2 для работы с 1С:

$ db2set DB2_WORKLOAD=1C

Запускаем экземпляр DB2:

При установке db2setup экземпляр db2 уже запущен, пропускаем

$ db2start
!!!без apt-get install libnuma-dev -y
!!!db2start: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No !!!such file or directory

Посмотреть версию DB2

$ db2ls

Посмотреть БД
$ db2ilist

$ exit

# cd /opt/ibm/db2/V11.1/instance
# ./db2iauto -on db2inst1

# reboot

$ sudo -i
 # ps -eaf|grep -i db2sysc
root      1306  1286  0 15:35 pts/0    00:00:00 grep --color=auto -i db2sysc

# su - db2inst1
$ db2start
$ exit
# ps -eaf|grep -i db2sysc
db2inst1  1784  1782  2 15:37 pts/0    00:00:00 db2sysc
root      1809  1286  0 15:37 pts/0    00:00:00 grep --color=auto -i db2sysc

Итог db2 не запускается автоматом.
DB2 AutoStart is not supported on Red Hat Enterprise Linux version 7

Вариант 1 пропускаем идем к Вариант 2.
Вариант 1. оформим автозагрузку с помощью update-rc.d в стиле System-V
update-rc.d - install and remove System-V style init script links
Для запуска воспользуемся скриптом:
# nano /etc/init.d/db2autostart
Добавим:
#! /bin/sh
# /etc/init.d/db2autostart
#
case "$1" in
  start)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2start
    ;;
  stop)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2stop
    ;;
  *)
    echo "Usage: /etc/init.d/db2autostart {start|stop}"
    exit 1
    ;;
esac
exit 0

Сохраним.
# chmod +x /etc/init.d/db2autostart
поставим в автозагрузку
# update-rc.d db2autostart defaults
warning: script 'db2autostart' missing LSB tags and overrides
Проверим
# ps -eaf|grep -i db2sysc
# /etc/init.d/db2autostart start
# ps -eaf|grep -i db2sysc 
# /etc/init.d/db2autostart stop
# reboot
$ sudo -i
# ps -eaf|grep -i db2sysc
db2inst1  1125  1123  0 15:52 ?        00:00:00 db2sysc
root      1323  1309  0 15:52 pts/0    00:00:00 grep --color=auto -i db2sysc
# reboot
работает.
$ sudo -i
# ps -eaf|grep -i db2sysc
db2inst1  1275  1242  0 11:41 ?        00:00:00 db2sysc
root      1565  1551  0 11:45 pts/0    00:00:00 grep --color=auto -i db2sysc

!!!Удаление (если использовать 2 вариант)
!!! # update-rc.d db2autostart remove
!!! # rm /etc/init.d/db2autostart -y
Конец Вариант 1.

Вариант 2. с использованием systemd:
SystemdForUpstartUsers
Шпаргалка по управлению сервисами CentOS 7 с systemd

Для запуска воспользуемся скриптом:
# nano /usr/local/bin/db2autostart.sh
Добавим:
#! /bin/sh
# /etc/init.d/db2autostart
#
case "$1" in
  start)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2start
    ;;
  stop)
    sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2stop
    ;;
  *)
    echo "Usage: /etc/init.d/db2autostart {start|stop}"
    exit 1
    ;;
esac
exit 0
Сохраним.
# chmod +x /usr/local/bin/db2autostart.sh

# nano  /lib/systemd/system/db2autostart.service

[Unit]
Description = db2 db2autostart daemon

[Service]
Type=forking
ExecStart=/usr/local/bin/db2autostart.sh start
ExecStop =/usr/local/bin/db2autostart.sh stop

[Install]
WantedBy=multi-user.target

Сохранить.

# chmod +x /lib/systemd/system/db2autostart.service

# systemctl daemon-reload
# systemctl enable db2autostart.service
# systemctl status db2autostart.service  
# ps -eaf|grep -i db2sysc
root      2849  2775  0 11:37 pts/0    00:00:00 grep --color=auto -i db2sysc
# systemctl start db2autostart.service
# ps -eaf|grep -i db2sysc
db2inst1  2864  2862  1 11:39 ?        00:00:00 db2sysc
root      2888  2775  0 11:39 pts/0    00:00:00 grep --color=auto -i db2sysc
# systemctl stop db2autostart.service
# ps -eaf|grep -i db2sysc
root      2901  2775  0 11:40 pts/0    00:00:00 grep --color=auto -i db2sysc
# systemctl start db2autostart.service
db2inst1  2913  2911  2 11:40 ?        00:00:00 db2sysc
root      2943  2775  0 11:40 pts/0    00:00:00 grep --color=auto -i db2sysc 
# reboot
Конец Вариант 2.
------------------------------------------------
$ sudo -i

Проверка
#  ps -eaf|grep -i db2sysc
db2inst1   694   692  0 09:41 ?        00:00:00 db2sysc
root       771   760  0 09:42 pts/4    00:00:00 grep --color=auto -i db2sysc

# apt-get install  imagemagick -yСтрока ниже срабатывает далеко не всегдаю
# apt-get install ttf-mscorefonts-installer -y
------------------------------------------------------------
Альтернативно:
# apt-get install wget -y
# mkdir /home/ubuntu/Downloads
# wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb -P /home/ubuntu/Downloads
# apt install /home/ubuntu/Downloads/ttf-mscorefonts-installer_3.6_all.deb
# fc-cache -f -v
------------------------------------------------------------
Дистрибутивы  в папке soft
!!!# ln -s /usr/lib/x86_64-linux-gnu/libMagickWand.so.5 /usr/lib/x86_64-linux-gnu/libMagickWand.so

# cd /home/user/soft/8.3.10.2252/
# tar xvzf deb64.tar.gz
# dpkg -i 1c*.deb
# apt-get -f install
# apt autoremove -y
# cd .. 
# rm -R  /home/ubuntu/8.3.10.2168
# chown -R usr1cv8:grp1cv8 /opt/1C
Зададим пароль pass
# passwd usr1cv8
 Теперь создадим базу 1С на сервере DB2.
добавим пользователя usr1cv8 в группу доступа db2iadm1
# usermod -aG db2iadm1 usr1cv8
# echo ". /home/db2inst1/sqllib/db2profile" >> /home/usr1cv8/.profile
# service srv1cv83 start
# service srv1cv83 status
!!!# service srv1cv83 restart
# poweroff

Сохраним образ в /db2111/Base_02
Теперь создадим базу.

.
Запуск машины на хосте
 # virsh start db2111
Домен db2111 запущен

Запущенные машины:
 # virsh list

Выключение машины
# virsh shutdown db2111
.

пятница, 26 мая 2017 г.

Виртуальный образ post962 kvm ubuntu 16.04.2

Без файла подкачи!
Предустановки 8 ядер, 16 Гб RAM,  30 GB Ubuntu 16.04.2
При инсталляции  установить ssh, samba
Название ub11
 $ sudo -i
# apt update -y
# apt upgrade -y
# apt install mc htop -y
# reboot
$ sudo -i
How To Add Swap Space on Ubuntu 16.04
Создание:
# fallocate -l 2G /swapfile
Проверка:
# ls -lh /swapfile
-rw-r--r-- 1 root root 8,0G май 13 13:14 /swapfile
Подключение:
# chmod 600 /swapfile
Проверка:
# ls -lh /swapfile
-rw------- 1 root root 8,0G май 13 13:14 /swapfile

 # mkswap /swapfile
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
без метки, UUID=870205f2-31db-4977-a89e-f3e283ff91f9

Старт:
# swapon /swapfile
Посмотрим:
# swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   8G   0B   -1
# free -h
Сделать перманентным:

# cp /etc/fstab /etc/fstab.bak
# echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Посмотреть:
# nano /etc/fstab
В конце файла:
/swapfile none swap sw 0 0

# cat /proc/sys/vm/swappiness
60
По умолчанию установлено значение 60. Если это значение ближе к 100, система будет пытаться поместить в подкачку больше данных и сберечь память, при значениях близких к нулю, ядро не переносит данные на диск, если в этом нет крайней необходимости.

 Другой параметр, который влияет на количество используемой памяти - это vfs_cache_pressure. Он указывает системе какое время нужно хранить открытые файлы в кэше оперативной памяти. Значение 100 заставляет систему удалять такие файлы очень быстро, 0 - держать их в памяти как можно дольше. Посмотрите текущее состояние:

# cat /proc/sys/vm/vfs_cache_pressure
100
# nano /etc/sysctl.conf
В конец
vm.swappiness=0
vm.vfs_cache_pressure = 50
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Сохранить.
Применить сразу:
# sysctl -p

Отключим службу ondemand
(для разгона cpu)

# cat /proc/cpuinfo | grep MHz
# systemctl status ondemand
# systemctl stop ondemand
# systemctl disable ondemand
# poweroff

Сохраним образ в /u16.04.2/Base_01

$ sudo -i
Проверки:
# cat /proc/cpuinfo | grep MHz
!!!# hdparm -Tt /dev/sda1
# hdparm -Tt /dev/vda1
# free -h
# cat /proc/sys/vm/swappiness
# cat /proc/sys/vm/vfs_cache_pressure

Настройка сети:
# nano /etc/network/interfaces
Пример:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

#source /etc/network/interfaces.d/*

# The loopback network interface
#auto lo
#iface lo inet loopback

# The primary network interface
#auto ens3
#iface ens3 inet dhcp

iface ens3 inet static
address 192.168.0.201
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1 8.8.8.8
auto ens3

Сохранить.
Перезагрузка
# reboot

пробросим hasp в kvm
# lsusb
...
Bus 003 Device 002: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
...
Установка локального hasp (только локального)
# cd /home/user/soft/hasp
# dpkg --add-architecture i386
# apt-get update
# apt-get install libc6:i386
# dpkg -i --force-architecture aksusbd_7.54-1_i386.deb
# apt-get -f install
# service aksusbd restart# /etc/init.d/aksusbd status
 C локальным hasp работает. Менеджера лицензий hasplm нет.
# netstat -anp | grep hasp
# poweroff
Произведена базовая настройка, на базе которой будем строить сервера.
Сохраним образ в /u16.04.2/Base_02 
Для экономии места удалим образ с диска.
.
Склонируем две машины:
ubuntu16.04-p для postgres
ubuntu16.04-d для db2
Машины получились с одинаковыми статическими адресами и именами, поэтому изменим.
--------------------------------------------------------------------------------------------------
 запустим ubuntu16.04-p для postgres.
 $ sudo -i
# nano /etc/network/interfaces
address 192.168.0.202
Сохранить.
# nano /etc/hosts
Изменить:
127.0.0.1       localhost
127.0.1.1       post962
Сохранить.
# nano /etc/hostname
Изменить
post962
Сохранить.
!!!# service hostname restart
!!!# service networking restart
# reboot
Проверить из под windows
ping post962
# poweroff

Сохраним образ в /post962/Base_01

Ставим postgres

Подключение под debian 7/8, ubuntu 12.04/14.04/16.04:
 

# sudo sh -c 'echo "deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list'
# wget --quiet -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | sudo apt-key add - && sudo apt-get update
# sudo apt-get install postgresql-pro-1c-9.6 -y

# systemctl start postgresql
# systemctl enable postgresql
# systemctl status postgresql

● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Вт 2017-04-18 08:51:27 UTC; 1min 18s ago
Main PID: 1455 (code=exited, status=0/SUCCESS)

апр 18 08:51:27 p962_lxc systemd[1]: Starting PostgreSQL RDBMS...
апр 18 08:51:27 p962_lxc systemd[1]: Started PostgreSQL RDBMS.

# su - postgres
$ psql -l
$ psql
Далее наберем
\password
введем два раза новый пароль pass
и наберем команду
\q
для выхода.
$ exit
Обратите внимание, что данный пароль устанавливается для внутреннего пользователя базы данных, а не для одноименного пользователя операционной системы Ubuntu.
Проверим, корректно ли запущен и работает наш сервер PostgreSQL который нам нужен для дальнейшего развертывания базы данных. Выполним
# netstat -atn|grep 0.0.0.0:54
Мы должны получить строку с номером порта (обычно 5432)/
# ps ax | grep postgres
# netstat -nlt

Установка 1С

# apt-get install imagemagick -y
Строка ниже срабатывает далеко не всегда
# apt-get install ttf-mscorefonts-installer -y
# fc-cache -f -v
------------------------------------------------------------
Альтернативно:
# apt-get install wget -y
# mkdir /home/ubuntu/Downloads
# wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb -P /home/ubuntu/Downloads
# apt install /home/ubuntu/Downloads/ttf-mscorefonts-installer_3.6_all.deb
# fc-cache -f -v
------------------------------------------------------------

# cd /home/user/soft/8.3.10.2252/
# tar xvzf deb64.tar.gz
# dpkg -i 1c*.deb
# apt-get -f install
# apt autoremove -y
# cd ..
# rm -R /home/user/8.3.10.2252
# chown -R usr1cv8:grp1cv8 /opt/1C
Зададим пароль pass
# passwd usr1cv8
# service srv1cv83 start
# service srv1cv83 status
!!!# service srv1cv83 restart

netstat -atn|grep 0.0.0.0:15
netstat -atn|grep 0.0.0.0:54

Базовая настройка закончена.

# poweroff
Сохраним образ в /post962/Base_02

------------------------------------------------------------
Подключим базу 1с

Загружаем тест Гилёва без настроек postgres

Многопоточный тест производительности 1с - результаты
Настроим PostgreSQL
Configuration calculator for PostgreSQL
Считаем что памяти 8 Gb


# cp /etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/postgresql.conf.bak 
# nano /etc/postgresql/9.6/main/postgresql.conf
 
Скоректировано для теста. 
#ssl = false 
#max_connections = 16 
max_connections = 120 
shared_buffers = 2GB
effective_cache_size = 6GB
#work_mem = 128MB 
work_mem = 17476kB 
maintenance_work_mem = 512MB
min_wal_size = 2GB
max_wal_size = 4GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
 
Многопоточный тест производительности 1с - результаты 
 
Вообщем разницы между дефолтными настройками и pgtune тест
не показал, даже хуже, но сорвался после 96 потоков по дефолту.
 
Еще один опыт без настроек pgtune по дефолту:
# cp /etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/postgresql.conf.bak
# nano /etc/postgresql/9.6/main/postgresql.conf
ssl = false
autovacuum = on
autovacuum_max_workers =3
Autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.01
autovacuum_analyze_scale_factor = 0.05
online_analyze.enable = on
fsync = on
synchronous_commit = off
Тест Гилева
Многопоточный тест производительности 1с - результаты
Запуск машины на хосте
 # virsh start post962
Домен post962 запущен

Запущенные машины:
 # virsh list

Выключение машины
# virsh shutdown post962
.


.
 
 
 

.

Установка ubuntu 17.04 desktop

Поднимаем образ virtualbox 4 Gb RAM
Мне нужна исключительно консоль virt-manager
# apt update
# apt upgrade
# apt install mc ssh samba
# install virt-manager ssh-askpass-gnome ssh-askpass
# nano /etc/hosts
Добавим строку
192.168.0.98    u16
Сохранить.
# ping u16
Создадим ключи ssl
# ssh user@u16
u16:~$ \D
 # virt-manager

понедельник, 22 мая 2017 г.

Виртуальный образ p962.ova

Образ virtualbox  p962.ova .
За основу взято:  Установка postgresql 9.6.2 на ubuntu 16.04.2 lxc

Без файла подкачи!
Предустановки 4 ядра, 8 Гб RAM, сетевой мост, 1000 GB динамический.
Ubuntu 16.04.2
При инсталляции  установить ssh, samba
Название p962
 $ sudo -i
# apt update -y
# apt upgrade -y
# apt install mc htop -y
# reboot
$ sudo -i
How To Add Swap Space on Ubuntu 16.04

Создание:
# fallocate -l 8G /swapfile
Проверка:
# ls -lh /swapfile
-rw-r--r-- 1 root root 8,0G май 13 13:14 /swapfile
Подключение:
# chmod 600 /swapfile
Проверка:
# ls -lh /swapfile
-rw------- 1 root root 8,0G май 13 13:14 /swapfile

 # mkswap /swapfile
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
без метки, UUID=870205f2-31db-4977-a89e-f3e283ff91f9

Старт:
# swapon /swapfile
Посмотрим:
# swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   8G   0B   -1
# free -h
              total        used        free      shared  buff/cache   available
Память:         31G        145M         30G        9,7M        231M         30G
Подкачка:        8,0G          0B        8,0G

Сделать перманентным:

# cp /etc/fstab /etc/fstab.bak
# echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Посмотреть:
# nano /etc/fstab
В конце файла:
/swapfile none swap sw 0 0

# cat /proc/sys/vm/swappiness
60
По умолчанию установлено значение 60. Если это значение ближе к 100, система будет пытаться поместить в подкачку больше данных и сберечь память, при значениях близких к нулю, ядро не переносит данные на диск, если в этом нет крайней необходимости.

 Другой параметр, который влияет на количество используемой памяти - это vfs_cache_pressure. Он указывает системе какое время нужно хранить открытые файлы в кэше оперативной памяти. Значение 100 заставляет систему удалять такие файлы очень быстро, 0 - держать их в памяти как можно дольше. Посмотрите текущее состояние:

# cat /proc/sys/vm/vfs_cache_pressure
100

 
# nano /etc/sysctl.conf
В конец
vm.swappiness=0
vm.vfs_cache_pressure = 50
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Сохранить.
Применить сразу:
# sysctl -p

Отключим службу ondemand
(для разгона cpu)

# cat /proc/cpuinfo | grep MHz
# systemctl status ondemand
# systemctl stop ondemand
# systemctl disable ondemand

# reboot

$ sudo -i
Проверки:
# cat /proc/cpuinfo | grep MHz
# hdparm -Tt /dev/sda1
# free -h
# cat /proc/sys/vm/swappiness
# cat /proc/sys/vm/vfs_cache_pressure
Подключение под debian 7/8, ubuntu 12.04/14.04/16.04:
 

# sudo sh -c 'echo "deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list'
# wget --quiet -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | sudo apt-key add - && sudo apt-get update
# sudo apt-get install postgresql-pro-1c-9.6 -y

# systemctl start postgresql
# systemctl enable postgresql
# systemctl status postgresql

● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Вт 2017-04-18 08:51:27 UTC; 1min 18s ago
Main PID: 1455 (code=exited, status=0/SUCCESS)

апр 18 08:51:27 p962_lxc systemd[1]: Starting PostgreSQL RDBMS...
апр 18 08:51:27 p962_lxc systemd[1]: Started PostgreSQL RDBMS.

# su - postgres
$ psql -l
$ psql
\q
Далее наберем
\password
введем два раза новый пароль pass
и наберем команду
\q
для выхода.
$ exit
Обратите внимание, что данный пароль устанавливается для внутреннего пользователя базы данных, а не для одноименного пользователя операционной системы Ubuntu.
Проверим, корректно ли запущен и работает наш сервер PostgreSQL который нам нужен для дальнейшего развертывания базы данных. Выполним
# netstat -atn|grep 0.0.0.0:54
Мы должны получить строку с номером порта (обычно 5432)/
# ps ax | grep postgres
# netstat -nlt
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN
tcp6       0      0 :::139                  :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 :::5432                 :::*                    LISTEN
tcp6       0      0 :::445                  :::*                    LISTEN


Установка 1С

# apt-get install imagemagick -y
Строка ниже срабатывает далеко не всегда
# apt-get install ttf-mscorefonts-installer -y
# fc-cache -f -v
------------------------------------------------------------
Альтернативно:
# apt-get install wget -y
# mkdir /home/ubuntu/Downloads
# wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb -P /home/ubuntu/Downloads
# apt install /home/ubuntu/Downloads/ttf-mscorefonts-installer_3.6_all.deb
# fc-cache -f -v
------------------------------------------------------------


# cd /home/user/8.3.10.2252/
# tar xvzf deb64.tar.gz
# dpkg -i 1c*.deb
# apt-get -f install
# apt autoremove -y
# cd ..
# rm -R /home/user/8.3.10.2252
# chown -R usr1cv8:grp1cv8 /opt/1C
Зададим пароль pass
# passwd usr1cv8
# service srv1cv83 start
# service srv1cv83 status
!!!# service srv1cv83 restart

netstat -atn|grep 0.0.0.0:15
netstat -atn|grep 0.0.0.0:54


PostgreSQL - реальная альтернатива для высоконагруженных систем на базе 1С
Файл настройки PostgreSQL
Регламентная очистка
Лучшие практики от Гилева

 
# nano /etc/postgresql/9.6/main/postgresql.conf
ssl = false
autovacuum = on
autovacuum_max_workers =3
Autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.01
autovacuum_analyze_scale_factor = 0.05
online_analyze.enable = on
fsync = on
synchronous_commit = off

Configuration calculator for PostgreSQL
Считаем что памяти 8 Gb

  
# nano /etc/postgresql/9.6/main/postgresql.conf 
 
max_connections = 16
shared_buffers = 2GB
effective_cache_size = 6GB
work_mem = 128MB
maintenance_work_mem = 512MB
min_wal_size = 2GB
max_wal_size = 4GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
 
# poweroff 
Сохраняем p962.ova .
------------------------------------------------------------------------------
 
Действия после восстановления виртуальной машины из образа p962.ova
 
в VirtualBox

1. Импортировать файл p962.ova

2. Перед запуском изменить настройки сети перевыбрать сетевой мост и имя адаптера.
 
3. Система -> материнская плата установить 16 GB.
4. Система -> процессор установить 8 ядер.
5. Запустить виртуальную машину.
6. Через консоль настроить сеть:
$ sudo nano /etc/network/interfaces

Пример:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

#source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto enp0s3
#iface enp0s3 inet dhcp

iface enp0s3 inet static
address 192.168.0.77
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1 8.8.8.8
auto enp0s3
 
Сохранить. 
Перезагрузка 
$ sudo reboot
 
 
Кластер 1с не создан. 
После перезагрузки
Подключение 1с
 
 
 Наш образ 8GB RAM VirtualBox на диске SSD Samsung 850 EVO
Тест Гилева
____________________________________________________________________________________
Автоматическая сборка мусора (Automatic Vacuuming) в PostgreSQL 
24.1. Регламентная очистка 
vacuumdb 
Опыт обслуживания базы 1С в PostgreSQL.
Обслуживание баз 1С 
Дополнение.
Для борьбы с падением производительности, рекомендуют ночью запускать vacuumdb
 
# su - postgres
$ psql -l
                                  Список баз данных
    Имя    | Владелец | Кодировка | LC_COLLATE  |  LC_CTYPE   |     Права доступа
-----------+----------+-----------+-------------+-------------+-----------------------
 demo      | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 |
 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
(4 строки)
 
Запуск вручную 
# su - postgres 
Сборка мусора 
$ vacuumdb --verbose --analyze --full --dbname=demo
переиндексация баз 
$ reindexdb --all
reindexdb: переиндексация базы данных "demo"
reindexdb: переиндексация базы данных "postgres"
reindexdb: переиндексация базы данных "template1"
У вас есть новая почта в /var/mail/postgres
 
 
Можно настроить cron
 
Установка Postfix — агент передачи почты (MTA — mail transfer agent) 

Выбрать (только локальное использование) 
 
# apt-get install postfix 
!!!# tail /var/mail/root 
# su - postgres  
$ crontab -e
Добавить в конец файла 
# Запуск vacuumdb каждый день в 22.01 
00 22 * * * rm /var/mail/postgres
01 22 * * * vacuumdb --verbose --analyze --full --dbname=demo
Сохранить.
 
# tail /var/mail/postgres
# nano /var/mail/postgres
Посмотреть настройки autovacuum
# su - postgres
$ psql
postgres=# select name, setting, context from pg_settings where name like 'autovacuum%'; 

 
autovacuum = on Если Вы лучше чем PostgreSQL знаете когда следует производить сборку
мусора, то автоматику можно выключить. Хотя лучше её просто правильно настроить.
С другой стороны сборка мусора оттягивает на себя ресурсы системы и если это не
допустимо, то её можно отложить на некоторое время. При настройке службы
автоматической сборки мусора и анализа следует понимать, что один из
зарезервированных с помощью superuser_reserved_connections слотов может оказаться
в нужный момент занят.

log_autovacuum_min_duration = -1 Установка равная нулю регистрирует все действия
autovacuum. Минус один (по умолчанию) запрещает вывод в лог. Например, если вы
установите значение равное 250 мс, то все действия autovacuum и analyzes, которые
работают 250 мс и более, будут заноситься в журнал. Включение этого параметра может
быть полезно для отслеживания autovacuum. Этот параметр может быть установлен только
в файле postgresql.conf или в командной строке сервера.

autovacuum_naptime = 20 Время в секундах через которое база данных проверяется на
необходимость в сборке мусора. По умолчанию это происходит раз в минуту.

autovacuum_vacuum_threshold = 50 Порог на число удалённых и изменённых записей в любой
таблице по превышению которого происходит сборка мусора (VACUUM).

autovacuum_analyze_threshold = 50 Порог на число вставленных, удалённых и изменённых
записей в любой таблице по превышению которого запускается процесс анализа (ANALYZE).

autovacuum_vacuum_scale_factor = 0.01 Процент изменённых и удалённых записей
по отношению к таблице по превышению которого запускается сборка мусора.

autovacuum_analyze_scale_factor = 0.05 То же, что и предыдущая переменная, но по
отношению к анализу.
 
Бэкап и восстановление базы 1С в бд postgresql, обслуживание базы 
PostgreSQL backups. Effortless. 
Глава 25. Резервное копирование и восстановление 

Установим продвинутый архиватор (использует несколько ядер) 
# apt-get -y install pigz 
# nano /etc/postgresql/9.6/main/pg_hba.conf 
меняеем строку
# "local" is for Unix domain socket connections only
#local   all             all                                     peer 
local   all             all                                      trust
Сохранить.
# systemctl restart postgresql
# su - postgres

Backup базы с архивированием
$ pg_dump demo | pigz > /tmp/demo.sql.gz

Backup базы без архивирования
$ pg_dump demo > /tmp/demo.sql

Разархивирование
# unpigz -c /tmp/demo.sql.gz > /tmp/demo.sql

Восстановление в туже базу
# su - postgres

Убьем базу demo

$ dropdb demo
$ psql -l

Создадим базу demo
$ createdb --username postgres -T template0 demo
$ psql -l 

Восстановим в базу demo
$ psql demo < /tmp/demo.sql 
$ psql demo < /tmp/demo201705231625.sql
 
Как посмотреть размер базы?
# su - postgres
$ psql 
postgres=# select pg_database_size('demo');
 pg_database_size
------------------
       8046019076
(1 строка)

postgres=# SELECT pg_size_pretty( pg_database_size( 'demo' ) );
 pg_size_pretty
----------------
 7673 MB
(1 строка)
Многопоточный тест производительности 1с 
Описание теста 
пробросим hasp в virtualbox 
Установка локального hasp (только локального)
# cd /home/user
# dpkg --add-architecture i386
# apt-get update
# apt-get install libc6:i386
# dpkg -i --force-architecture aksusbd_7.54-1_i386.deb
# apt-get -f install
# lsusb
Bus 001 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
# service aksusbd restart
# /etc/init.d/aksusbd status
С локальным hasp работает.
Менеджера лицензий hasplm нет.
# netstat -anp | grep hasp
# nano /etc/postgresql/9.6/main/postgresql.conf
Для теста изменить:
max_connections = 160
Сохранить.
# systemctl restart postgresql
или
# reboot
Грузим конфигурацию
Запускаем тест. Ниже результаты данного теста.
Эмпирическим путем получено число в 400-500 попугаев на поток
(не учитывая временные таблицы), при котором работа терпима. 
Многопоточный тест производительности 1с - результаты 
 
.
Таким образом видно, что данная конфигурация будет эффективно
работать для 8-ми нагруженных клиентов.
Все результаты: 
.
Настроим postgreSQL для теста Гилева (уже стоит)
# nano /etc/postgresql/9.6/main/postgresql.conf
standard_conforming_strings = off
 
 
 
 
 

суббота, 13 мая 2017 г.

Установка ubuntu 16.04.2 server u16

ubuntu 16.04.2 server - u16
Предустановлены ssh samba
Програмный RAID 0 без раздела подкачки.

$ sudo -i
# apt update -y
# apt upgrade -y
# apt install mc htop -y
# reboot
$ sudo -i
How To Add Swap Space on Ubuntu 16.04

Создание:
# fallocate -l 8G /swapfile
Проверка:
# ls -lh /swapfile
-rw-r--r-- 1 root root 8,0G май 13 13:14 /swapfile
Подключение:
# chmod 600 /swapfile
Проверка:
# ls -lh /swapfile
-rw------- 1 root root 8,0G май 13 13:14 /swapfile

 # mkswap /swapfile
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
без метки, UUID=870205f2-31db-4977-a89e-f3e283ff91f9

Старт:
# swapon /swapfile
Посмотрим:
# swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   8G   0B   -1
# free -h
              total        used        free      shared  buff/cache   available
Память:         31G        145M         30G        9,7M        231M         30G
Подкачка:        8,0G          0B        8,0G

Сделать перманентным:

# cp /etc/fstab /etc/fstab.bak
# echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Посмотреть:
# nano /etc/fstab
В конце файла:
/swapfile none swap sw 0 0


# cat /proc/sys/vm/swappiness
60
По умолчанию установлено значение 60. Если это значение ближе к 100, система будет пытаться поместить в подкачку больше данных и сберечь память, при значениях близких к нулю, ядро не переносит данные на диск, если в этом нет крайней необходимости.

 Другой параметр, который влияет на количество используемой памяти - это vfs_cache_pressure. Он указывает системе какое время нужно хранить открытые файлы в кэше оперативной памяти. Значение 100 заставляет систему удалять такие файлы очень быстро, 0 - держать их в памяти как можно дольше. Посмотрите текущее состояние:

# cat /proc/sys/vm/vfs_cache_pressure
100
 
# nano /etc/sysctl.conf
В конец
vm.swappiness=0
vm.vfs_cache_pressure = 50
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Сохранить.
Применить сразу:
# sysctl -p

Отключим службу ondemand
(для разгона cpu)

# cat /proc/cpuinfo | grep MHz
# systemctl status ondemand
# systemctl stop ondemand
# systemctl disable ondemand



!!!# /etc/init.d/ondemand stop
!!!# update-rc.d -f ondemand remove

 Отключим службу apparmor
(для проброса hasp в kvm)

!!!# systemctl status apparmor
!!!# systemctl stop apparmor
!!!# systemctl disable apparmor

# /etc/init.d/apparmor stop
# update-rc.d -f apparmor remove
 
# reboot

$ sudo -i
Проверки:
# cat /proc/cpuinfo | grep MHz
# /etc/init.d/apparmor status
# hdparm -Tt /dev/md0
# free -h
# cat /proc/sys/vm/swappiness
# cat /proc/sys/vm/vfs_cache_pressure
-----------------------------------------------------------------------------------------
Монтирование дисков
Когда добавлял  диски создать выровненный раздел parted не сумел.
Загружался live cd и использовал gparted.
# fdisk -l
Диск /dev/sdc: 2,7 TiB, 3000592982016 байтов, 5860533168 секторов
Единицы измерения: секторов из 1 * 512 = 512 байтов
Размер сектора (логический/физический): 512 байт / 4096 байт
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Тип метки диска: gpt
Идентификатор диска: 51E21A8B-9BD7-4B69-9C70-D33C6862CEEB


Диск /dev/sdd: 2,7 TiB, 3000592982016 байтов, 5860533168 секторов
Единицы измерения: секторов из 1 * 512 = 512 байтов
Размер сектора (логический/физический): 512 байт / 4096 байт
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Тип метки диска: gpt
Идентификатор диска: 7238D5C7-5FD6-496E-BBB3-C5AE631C3B33

# mkdir /mnt/sdc
# mount /dev/sdc1 /mnt/sdc -t auto
!!!# umount /dev/sdc1

# mkdir /mnt/sdd
# mount /dev/sdd1 /mnt/sdd -t auto
!!!# umount /dev/sdd1
 
Автомонтирование по uuid
# ls -l /dev/disk/by-uuid
итого 0
lrwxrwxrwx 1 root root 10 июн 14 11:55 5238c225-69c3-4c28-a633-5177867f0696 -> ../../sdd1
lrwxrwxrwx 1 root root 10 июн 14 11:55 6fdbec45-51c5-426b-a11c-e9309367c0e2 -> ../../sdc1
lrwxrwxrwx 1 root root  9 июн 14 11:55 8fd9fab9-d768-4170-9b8f-26dc4fd017f8 -> ../../md0

# nano /etc/fstab
Добавить:
UUID=6fdbec45-51c5-426b-a11c-e9309367c0e2 /mnt/sdc ext4 defaults 0 0
UUID=5238c225-69c3-4c28-a633-5177867f0696 /mnt/sdd ext4 defaults 0 0 
Сохранить.
-----------------------------------------------------------------------------------------
Настройка сети на статический адрес
Смотрим ip
# ifconfig
В нашем случае 192.168.0.98 nic enp1s0

Красным для dhcp, но без dhcp в сети
сервер не гузится 5 мин

auto lo
iface lo inet loopback

# Setup bridge
auto br0
iface br0 inet dhcp
bridge_ports enp1s0
bridge_fd 0


# nano /etc/network/interfaces 
 
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto enp1s0
#iface enp1s0 inet dhcp

##Bridge  Name ###
auto br0

### Bridge Information
iface br0 inet static
bridge_ports enp1s0
bridge_stp off
bridge_fd 9
 
### Bridge IP ###
address 192.168.0.98
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
#dns-nameservers 192.168.0.1 8.8.8.8
dns-nameservers 192.168.0.1
 
Сохранить. 
 
 
Setup Linux Container with LXC on Ubuntu 16.04 
 
# apt-get install lxc lxc-templates wget bridge-utils -y 


Disable the default bridge “lxcbr0“, got created as part of LXC installation.

# nano /etc/default/lxc-net

USE_LXC_BRIDGE="false"

Сохранить.

# nano /etc/lxc/default.conf

lxc.network.type = veth
lxc.network.link = br0 # Replace with your bridge name
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:xx:xx:xx

Сохранить.

# nano /etc/dnsmasq.d/lxc

 except-interface=br0

Сохранить.

# reboot

$ sudo -i
# ifconfig
# ls /usr/share/lxc/templates/
Созадать контейнер:
# lxc-create -t ubuntu -n zesty_lxc -- -r zesty -a amd64
# lxc-create -t ubuntu -n precise_lxc -- -r precise -a amd64
# lxc-create -t ubuntu -n trusty_lxc -- -r trusty -a amd64
# lxc-create -t ubuntu -n xenial_lxc -- -r xenial -a amd64

Для каждого контейнера настроим часовой пояс:
Настроим часовой пояс Москва.
# dpkg-reconfigure tzdata 

Сохранение контейнера zesty_lxc :
# cd  /var/lib/lxc/
# tar -cvzf  zesty_lxc.tar.gz ./zesty_lxc
 
Сохранение контейнера trusty_lxc :
# cd  /var/lib/lxc/
# tar -cvzf  trusty_lxc.tar.gz ./trusty_lxc

Сохранение контейнера xenial_lxc :
# cd  /var/lib/lxc/
# tar -cvzf  xenial_lxc.tar.gz ./xenial_lxc

Сохранение контейнера precise_lxc :
# cd  /var/lib/lxc/
# tar -cvzf  precise_lxc.tar.gz ./precise_lxc

Восстановление контейнера precise_lxc :
# cd  /var/lib/lxc/
# tar xvzf precise_lxc.tar.gz

------------------------------------------------------------------------------------------------
Управление логгированием в systemd 
How To Use Journalctl to View and Manipulate Systemd Logs  
 
Включить журналирование (предыдущих загрузок) 
$ sudo nano /etc/systemd/journald.conf
...
[Journal]
Storage=persistent
 
Сохранить. 
 
Просмотреть список предыдущих загрузок можно с помощью команды:



# journalctl --list-boots
-4 7e4b4a292e224c4b91f75dd3d5e27f90 Wed 2017-04-26 11:41:00 MSK—Wed 2017-04-26 13:14:40 MSK
-3 67b91d39230143d38896bff6cfa275b5 Wed 2017-04-26 13:25:21 MSK—Wed 2017-04-26 14:17:01 MSK
-2 83a94b9974f543089777590f34880167 Wed 2017-04-26 14:51:49 MSK—Wed 2017-04-26 15:36:54 MSK
-1 9f98d47a66b84952ba5ef9d9c7ed0ccd Wed 2017-04-26 15:37:14 MSK—Wed 2017-04-26 15:37:56 MSK
 0 dab2faae33b8461aba00f0a7dac9f2c2 Wed 2017-04-26 15:41:34 MSK—Wed 2017-04-26 15:42:58 MSK
 
Просмотр предыдущей загрузки 
# journalctl -b -1
 
Просмотр последней загрузки
# journalctl -b
 
# journalctl --since 10:00 --until "3 hours ago"
---------------------------------------------------------------------
 
Перестаем бояться виртуализации при помощи KVM 
Еще хорошо про KVM 
How to use KVM from the command line on Debian or Ubuntu 
KVM/Networking
 
Установка kvm
Настроим сетевой мост br0 до инсталляции kvm (настроен lxc)
# apt-get update -y
# apt-get upgrade -y  
# apt-get install qemu-kvm libvirt-bin virtinst -y
!!!# apt-get install virt-manager
user уже в libvirtd
!!!# usermod -a -G libvirtd user

Удаляем мост по умолчанию virbr0

# ip link set dev virbr0 down
# brctl delbr virbr0 
# virsh net-destroy default
# virsh net-undefine default
# service libvirtd restart

# reboot
---------------------------------------------------------------------------
$ sudo -i
Заточено, дальше настройка.

Настройка kvm
Копируем машины в /var/lib/libvirt/images
Копируем описания xml в /etc/libvirt/qemu
Восстанавливаем:
# virsh define /etc/libvirt/qemu/w_2012.xml
Домен w_2012 определён на основе /etc/libvirt/qemu/w_2012.xml

Для доступа vnc с любого адреса (если не настроено раньше)
# virsh edit w_2012

<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' passwd='12345'>
<listen type='address' address='0.0.0.0'/>
</graphics>

Еще правильнее для всех виртуальных машин:
# nano /etc/libvirt/qemu.conf

vnc_listen = "0.0.0.0"
# Пароль не более восьми символов
vnc_password = "password"


Сохранить.

# netstat -ant | grep 5900
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN

Запуск машины
 # virsh start w_2012
Домен w_2012 запущен

Запущенные машины:
 # virsh list

Посмотреть номер порта vnc 5900:
# virsh vncdisplay w_2012
:0

Подключение vnc:
u16:0

Выключение машины
# virsh shutdown w_2012

Если хочется управлять с gui развернем виртуалку для управления.
Установка ubuntu 17.04 desktop

Для работы с консолью виртуальной машины, лучше подключаться под vnc из win,
или нативный linux, чем из linux под virtualbox ибо это vnc через vnc.

Развернем desktop:
(у меня заточенный контейнер, с доступом по xrdp)
Восстановление контейнера (сначала скопировать)
# cd /var/lib/lxc
# tar xvzf virt.tar.gz 
# lxc-start -n virt -d 
# lxc-ls -f

Сохранение контейнера virt  :
# cd  /var/lib/lxc/
# tar -cvzf  virt.tar.gz ./virt



войдем по xrdp на virt:

root@virt:~# ssh user@192.168.0.98
 

Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:2
  remove with: ssh-keygen -f "/root/.ssh/known_hosts" -R 192.168.0.98
 

Сделаем что просят:
root@virt:~# ssh-keygen -f "/root/.ssh/known_hosts" -R 192.168.0.98
еще раз зайдем:
root@virt: ssh user@192.168.0.98
yes
Ctrl+D

root@virt:~# virt-manager

Подключимся по ip 
 
!!!# apt-get install virt-manager


Фишка этой версии 12.04 в том что открыть vnc
для всех интерфейсов можно только через xml ??? 
# virsh edit w_2012


С паролем
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' passwd='12345'>
 <listen type='address' address='0.0.0.0'/>
</graphics>

Без пароля
<graphics type='vnc' port='5900' autoport='no' listen='0.0.0.0'>
   <listen type='address' address='0.0.0.0'/>

 </graphics>

# virsh vncdisplay w_2012-clone
:0

Подключение vnc:
u16:0

Virsh — управление виртуальными машинами KVM

Запущенные машины:
# virsh list

Выключенные машины
# virsh list --inactive

Запуск машины
# virsh start w_2012-clone

Выключение машины
# virsh shutdown w_2012-clone

Запущенные машины:
 # virsh list

# virsh vncdisplay w_2012-clone
:0

Подключение vnc:
i7:0

Ограничения для USB устройств в KVM

  • USB протокол 1.1
  • Устройство должно быть подключено до запуска KVM
  • Нужны изменения Apparmor
Для работы hasp отключаем apparmor 
# nano /etc/apparmor.d/abstractions/libvirt-qemu

# /etc/init.d/apparmor stop
# update-rc.d -f apparmor remove

!!!# systemctl status apparmor
!!!# systemctl stop apparmor
!!!# systemctl disable apparmor
# reboot

Запуск машины
# virsh start w_2012-clone

Резервное копирование машин
По умолчанию xml в /etc/libvirt/qemu
Сохранить можно так:
# virsh dumpxml w_2012-clone > /tmp/w_2012-clone.xml
# virsh dumpxml w_2012 > /tmp/w_2012.xml

Восстановить так:   # virsh define /tmp/w_2012-clone.xml
# virsh define /tmp/w_2012.xml

или

# virsh define /etc/libvirt/qemu/w_2012-clone.xml
# virsh define /etc/libvirt/qemu/w_2012.xml

Далее, запуск машины
# virsh start w_2012-clone



 
____________________________________________________ 

Настройка Ubuntu для работы с ИБП от APC
 
# lsusb
Bus 001 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
# apt-get install apcupsd -y
# nano /etc/apcupsd/apcupsd.conf

#UPSCABLE smart
UPSCABLE usb
......
#UPSTYPE apcsmart
UPSTYPE usb
#DEVICE /dev/ttyS0

# Для проверки можно 30 (потом убрать )
TIMEOUT 0

Сохранить.
Настроим /etc/default/apcupsd 
Заменяем ISCONFIGURED=no на ISCONFIGURED=yes , сохраняем, закрываем. Отныне apcupsd будет знать, что мы не забыли его настроить.


# nano /etc/default/apcupsd

#ISCONFIGURED=no
ISCONFIGURED=yes


Сохранить.


Теперь достаточно запустить apcupsd:

# /etc/init.d/apcupsd start
Starting UPS power management: apcupsd.
# /etc/init.d/apcupsd status

____________________________________________________