Январь 5

mssql restore DB from bash

Восстановить через «Азуру» не получилась, так как ругалось что кто-то подключен ох уж этот «микрософт», конечно я — подключен

Msg 3101, Level 16, State 1, Server name_mssqlinstallserver, Line 1
Exclusive access could not be obtained because the database is in use.
Msg 3013, Level 16, State 1, Server name_mssqlinstallserver, Line 1
RESTORE DATABASE is terminating abnormally.

даже

systemctl stop mssql-server
systemctl start mssql-server

не помогал

но в совокупности через баш получилось после перу перезагрузок

но после восстановления, нужно выполнить пару команд, чтоб подключить базу — иначе она будет висеть в восставляемых

sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [BD_name name] FROM DISK = N'/var/opt/old/data/BD_name name-202515-12-51-56.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"
sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [BD_name name] WITH RECOVERY"
sqlcmd -S localhost -U sa -Q "SELECT name, state_desc FROM sys.databases WHERE name = 'BD_name name'"

в суме получится что-то подобное

 
root@server:/var/opt/mssql/data# sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [BD_name name] FROM DISK = N'/var/opt/old/data/BD_name name-202515-12-51-56.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"
Password:
5 percent processed
10 percent processed.
15 percent processed.
20 percent processed.
25 percent processed.
30 percent processed.
35 percent processed.
40 percent processed.
45 percent processed.
50 percent processed.
55 percent processed.
60 percent processed.
65 percent processed.
70 percent processed.
75 percent processed.
80 percent processed.
85 percent processed.
90 percent processed.
95 percent processed.
100 percent processed.
Processed 32832 pages for database 'BD_name name', file 'BD_name name' on file 1.
Processed 2 pages for database 'BD_name name', file 'BD_name name_log' on file 1.
RESTORE DATABASE successfully processed 32834 pages in 7.609 seconds (33.711 MB/sec).
root@server:/var/opt/mssql/data# sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [BD_name name] WITH RECOVERY"
Password:
RESTORE DATABASE successfully processed 0 pages in 4.043 seconds (0.000 MB/sec).
root@server:/var/opt/mssql/data# sqlcmd -S localhost -U sa -Q "SELECT name, state_desc FROM sys.databases WHERE name = 'BD_name name'"
Password:
name                                                                                                                             state_desc
-------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------
BD_name name                                                                                                             ONLINE

(1 rows affected)
root@server:/var/opt/mssql/data#

Январь 11

Raspberry Pi OS locale

ошибка и не до конца оформленный перевод в консоли

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_GB.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Лечится добавлением записи в файл

sudo nano /etc/default/locale
LC_CTYPE=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8 
LC_ALL=en_US.UTF-8

взято тут

Август 1

Настраиваем L2TP VPN-сервер на платформе Linux (Debian / Ubuntu) для подключение роутеров xiaomi

Как я вытягивал камеры с очень серого IP малой кровью

Инструкция

Для работы с IPsec мы будем использовать пакет strongSwan, установим его:

apt install strongswan

Затем откроем файл настроек /etc/ipsec.conf и добавим в его конец следующие две секции:

conn rw-base
fragmentation=yes
dpdaction=clear
dpdtimeout=90s
dpddelay=30s

conn l2tp-vpn
also=rw-base
ike=aes128-sha256-modp3072
esp=aes128-sha256-modp3072
leftsubnet=%dynamic[/1701]
rightsubnet=%dynamic
mark=%unique
leftauth=psk
rightauth=psk
type=transport
auto=add

Первая секция задает общие параметры: включает фрагментацию IKE и настраивает протокол обнаружения мертвых узлов (Dead Peer Detection, DPD), отвечающий за обнаружение неактивных клиентов. Вторая относится уже к L2TP-соединениям, указывая использовать транспортный режим IPsec, аутентификацию по общему ключу и задает используемые шифры. Приведенные значения являются рекомендуемыми и взяты из официальной документации strongSwan.

Общий ключ следует указать в файле /etc/ipsec.secrets, добавив в него следующую строку:

%any %any : PSK "mySharedKey"

Где mySharedKey — общий ключ, так как от него зависит безопасность вашей VPN-сети мы рекомендуем использовать в качестве ключа случайно сгенерированную строку из букв, цифр и спецсимволов. Для этого можно воспользоваться командой:

openssl rand -base64 18

Результатом ее выполнения станет случайная строка длинной в 18 символов.

l2tp-vpn-server-debian-ubuntu-001.pngПосле внесения указанных настроек перезапустим службу:

systemctl restart strongswan

В Ubuntu имя службы несколько иное — strongswan-starter, поэтому команда будет иметь вид:

systemctl restart strongswan-starter

Настраиваем L2TP

Для реализации функций L2TP-сервера предназначен пакет xl2tpd, для его установки выполните:

apt install xl2tpd

Затем откройте файл настроек /etc/xl2tpd/xl2tpd.conf, раскомментируйте и приведите к следующему виду опции:

[global]
port = 1701
auth file = /etc/ppp/chap-secrets
access control = no
ipsec saref = yes
force userspace = yes

[lns default]
exclusive = no
ip range = 10.2.2.100-10.2.2.199
hidden bit = no
local ip = 10.2.2.1
length bit = yes
require authentication = yes
name = l2tp-vpn
pppoptfile = /etc/ppp/options.xl2tpd
flow bit = yes

Большая часть опций относится к настройке протокола L2TP и требует понимания его работы, поэтому мы на них останавливаться не будем. Разберем те опции, которые имеют существенное значение. Параметр auth file указывает на файл с данными для аутентификации, а pppoptfile — набор опций для PPP-соединения, которое используется внутри L2TP-туннеля, name — имя сервера, которое будет использоваться для поиска аутентификационных данных в файле chap-secrets.

Опции local ip и ip range отвечают за локальный адрес сервера в VPN-сети и диапазон адресов для выдачи удаленным клиентам. Здесь можно использовать два подхода: выдавать клиентам адреса из диапазона локальной сети офиса и включить ProxyARP, в этом случае настраивать маршрутизацию на клиентах не требуется, они будут как-бы включены в общую сеть офиса на канальном уровне (L2), либо выдавать адреса из непересекающегося диапазона и использовать маршрутизацию. Автоматизировать создание маршрутов для Windows-клиентов можно с использованием PowerShell.

Для настройки PPP перейдем в /etc/ppp и скопируем стандартный файл настроек:

cd /etc/ppp
cp options options.xl2tpd

Затем открываем файл /etc/ppp/options.xl2tpd на редактирование и приводим к следующему виду. Опции перечислены в порядке их следования, нужно раскомментировать их и указать нужное значение, если опция отсутствует, то ее следует добавить в конце файла.

asyncmap 0
auth
crtscts
lock
hide-password
modem
mtu 1460
lcp-echo-interval 30
lcp-echo-failure 4
noipx
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
multilink
mppe-stateful

Если вы будете использовать ProxyARP то дополнительно раскомментируйте опцию:

proxyarp

Также для Windows-клиентов можно передать настройку DNS-серверов, для этого добавьте опции:

ms-dns 192.168.1.1
ms-dns 192.168.1.2

Это позволит настроить первичный и альтернативный DNS-сервера в системе.

Сохраним все внесенные изменения и перезапустим службу L2TP-сервера:

systemctl restart xl2tpd

Строку со следующим сообщением можно проигнорировать, на работу VPN-сервера она не влияет:

xl2tpd[843]: setsockopt recvref[30]: Protocol not available

Заключительным этапом настройки будет создание учетных записей для удаленных клиентов, для этого откроем файл /etc/ppp/chap-secrets и внесем следующую строку:

ivanov   l2tp-vpn   Pa$$word_1   *

Первым указываем логин, затем имя службы, оно должно совпадать с тем, которое мы указали в опции name в xl2tpd.conf, после него идет пароль и IP-адрес клиента, символ * обозначает что можно присвоить любой адрес из выбранного диапазона. Если же требуется выдать клиенту постоянный адрес, то его следует указать явно, и он не должен входить в динамический диапазон указанный в ip range, например:

petrov   l2tp-vpn   Pa$$word_1   10.2.2.99

Для доступа к L2TP-серверу следует разрешить в брандмауэре входящие подключения к портам 500 UDP, 1701 UDP и 4500 UDP.

И инструкция для переброски портов доступа в интернет клиента VPN через сервер VPN

nano /etc/ppp/ip-up добавляем

iptables -t nat -A POSTROUTING -s $5 -j MASQUERADE
iptables -A FORWARD -s $5 -j ACCEPT

nano /etc/ppp/ip-down добавляем

iptables -t nat -D POSTROUTING -s $5 -j MASQUERADE
iptables -D FORWARD -s $5 -j ACCEPT

добавлено 22.02.2024

все то же самое, но если вы хотите параллельно использовать pptp

apt install pptpd
sudo systemctl enable pptpd
sudo systemctl start pptpd
sudo systemctl status pptpd

/etc/ppp/chap-secrets и внесем следующую строку:

petrov1   pptp   Pa$$word_1   10.2.2.97

https://moron.1side.ru/lokalnye-seti/obedinenie-setej-s-pomoshhyu-vds-i-vpn-pptp.php
Ноябрь 10

xmlreader.so php70

ошибка при загрузке модуля

PHP Startup: Unable to load dynamic library '/opt/php70/lib/php/modules/xmlreader.so' - /opt/php70/lib/php/modules/xmlreader.so: undefined symbol: dom_node_class_entry in Unknown on line 0

вызвана сортировкой файлов загружаемых модулей

решается

xmlreader.ini

; configuration for php xml module
; priority=20
;extension=xmlreader.so

и

dom.ini

extension=dom.so
extension=xmlreader.so

Июль 15

debian 10 wkhtmltopdf qt

Он запускает Debian Stretch 9.2 64bit, и на 10 тоже

sudo apt update
    sudo apt install xfonts-75dpi xfonts-base gvfs colord glew-utils libvisual-0.4-plugins gstreamer1.0-tools opus-tools qt5-image-formats-plugins qtwayland5 qt5-qmltooling-plugins librsvg2-bin lm-sensors 
    sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.stretch_amd64.deb
    sudo dpkg -i wkhtmltox_0.12.5-1.stretch_amd64.deb
    sudo cp /usr/local/bin/wkhtmltopdf /usr/bin/
    sudo cp /usr/local/bin/wkhtmltoimage /usr/bin/
wkhtmltopdf -V
  wkhtmltopdf 0.12.5 (with patched qt)
Июнь 17

php version on debian 10 vestacp

ну для начала как запустить весту на Debian

curl -O http://c.myvestacp.com/vst-install-debian.sh

bash vst-install-debian.sh

далее несколько версий php краду ибо нечено

https://itblog.webdigg.org/163-how-to-install-multiple-php-versions-on-vestacp/

Tutorial is for Debian and Ubuntu.

First pre-required step for Debian 9 Strech:

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ stretch main" > /etc/apt/sources.list.d/php.list'

First pre-required step for Debian 8 Jessie:

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ jessie main" > /etc/apt/sources.list.d/php.list'

First pre-required step for Ubuntu:

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Then in your browser go to https://launchpad.net/~ondrej/+archive/ubuntu/php/
Under Adding this PPA to your system click Technical details about this PPA, select your Ubuntu version, and two lines that you get from field box below add to /etc/apt/sources.list.d/php.list

Add php repository

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

Second pre-required step for both Debian and Ubuntu:

apt-get update
a2enmod proxy_fcgi setenvif

For PHP 5.6

apt-get install php5.6-apcu php5.6-mbstring php5.6-bcmath php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-intl php5.6-mcrypt php5.6-mysql php5.6-soap php5.6-xml php5.6-zip php5.6-memcache php5.6-memcached php5.6-zip
update-rc.d php5.6-fpm defaults
a2enconf php5.6-fpm
systemctl restart apache2
cp -r /etc/php/5.6/ /root/vst_install_backups/php5.6/
rm -f /etc/php/5.6/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-56.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-56.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-56.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh

For PHP 7.0

apt-get install php7.0-apcu php7.0-mbstring php7.0-bcmath php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-soap php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached php7.0-zip
update-rc.d php7.0-fpm defaults
a2enconf php7.0-fpm
systemctl restart apache2
cp -r /etc/php/7.0/ /root/vst_install_backups/php7.0/
rm -f /etc/php/7.0/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-70.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-70.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-70.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh

For PHP 7.1

apt-get install php7.1-apcu php7.1-mbstring php7.1-bcmath php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-mcrypt php7.1-mysql php7.1-soap php7.1-xml php7.1-zip php7.1-memcache php7.1-memcached php7.1-zip
update-rc.d php7.1-fpm defaults
a2enconf php7.1-fpm
systemctl restart apache2
cp -r /etc/php/7.1/ /root/vst_install_backups/php7.1/
rm -f /etc/php/7.1/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-71.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-71.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-71.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh

For PHP 7.2

Some information

In latest version of VestaCP

Version: 0.9.8 (amd64) Release: 24
PHP 7.2 installed by default.
apt-get install php7.2-apcu php7.2-mbstring php7.2-bcmath php7.2-cli php7.2-curl php7.2-fpm php7.2-gd php7.2-intl php7.2-mysql php7.2-soap php7.2-xml php7.2-zip php7.2-memcache php7.2-memcached php7.2-zip
update-rc.d php7.2-fpm defaults
a2enconf php7.2-fpm
systemctl restart apache2
cp -r /etc/php/7.2/ /root/vst_install_backups/php7.2/
rm -f /etc/php/7.2/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh

For PHP 7.3

apt-get install php7.3-apcu php7.3-mbstring php7.3-bcmath php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-mysql php7.3-soap php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached php7.3-zip
update-rc.d php7.3-fpm defaults
a2enconf php7.3-fpm
systemctl restart apache2
cp -r /etc/php/7.3/ /root/vst_install_backups/php7.3/
rm -f /etc/php/7.3/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-73.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-73.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-73.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh

php-fpm-73 failed to start issue

put file https://raw.githubusercontent.com/hestiacp/hestiacp/develop/install/deb/php-fpm/dummy.conf -> /etc/php/7.3/fpm/pool.d and restart php-fpm

UPDATE:

UPDATE

For PHP 7.4

apt-get install php7.4-apcu php7.4-mbstring php7.4-bcmath php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-intl php7.4-mysql php7.4-soap php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached php7.4-zip
update-rc.d php7.4-fpm defaults
a2enconf php7.4-fpm
systemctl restart apache2
cp -r /etc/php/7.4/ /root/vst_install_backups/php7.4/
rm -f /etc/php/7.4/fpm/pool.d/*
wget https://github.com/t0rik/vesta-php-fpm-74/raw/master/PHP-FPM-74.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.stpl
wget https://raw.githubusercontent.com/t0rik/vesta-php-fpm-74/master/PHP-FPM-74.tpl
 -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl
wget https://raw.githubusercontent.com/t0rik/vesta-php-fpm-74/master/PHP-FPM-74.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.sh
Март 6

How to fix curl: (35) error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol

с переходом на новые стандарты ssl новые системы не поддерживают ssl 1.0 а некоторые старые машины никогда не обновятся до новых сертификатов потому понижаем минимальные требования в DEBIAN 10 например так

nano /usr/lib/ssl/openssl.conf

и меняем

MinProtocol = TLSv1.2

на 
MinProtocol = TLSv1.0

Февраль 5

MSSQL microsoft from debian

Итак пришло время выносить их систему в наш мир — 🙁

sqlcmd -S localhost -U [LOGIN] -P [PASWORD] -Q «BACKUP DATABASE [REALNAME_BD] TO DISK = N’/var/opt/mssql/data/[REALNAME_BD]_$(date +»»).bak’ WITH NOFORMAT, NOINIT, NAME = ‘[REALNAME_BD]’, SKIP, NOREWIND, NOUNLOAD, STATS = 10″

копии создаются и даже загружаются на винде

с Debian все сложнее иногда он хочет удалит старые файлы потому что винда есть винда и она очень сильно матерится на реальное имя файлов и базы а не на то ка мы ее назвали или переименовали

кроме всего прочего есть еще вот такой интересный случай

копию из венды нельзя залить восстановить в линуксе да вайлы и каталоги 🙂

нужно прописать полный путь

sqlcmd -S localhost -U [LOGIN] -P [PASWORD] -Q «RESTORE DATABASE [REALNAME_BD] FROM DISK = ‘/var/opt/mssql/data/[REALNAME_BD].bak’ WITH MOVE ‘[REALNAME_BD]’ TO ‘/var/opt/mssql/data/[REALNAME_BD].mdf’, MOVE ‘[REALNAME_BD]_log’ TO ‘/var/opt/mssql/data/[REALNAME_BD]_Log.ldf’

Июнь 30

www.sslforfree.com умер да зравствует free SSL

и так котортко https://www.sslforfree.com/ просит 50$ в месяц :))))))

пользовался им много лет в основном для бедныз заказчиков 🙂

итак
копируем

curl https://get.acme.sh | sh
source ~/.bashrc
cd .acme.sh/
acme.sh --issue -d domen.ru --webroot /var/www/www-root/data/www/domen.ru/

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

acme.sh --issue -d domen.ru --webroot /var/www/www-root/data/www/domen.ru/ --force

раз в пару месяцев,
а в файлы конфигурации сайта
путь к файлам ключа и сертификата
из выхлопа команды

[Tue Jun 30 15:42:07 MSK 2020] Your cert is in /root/.acme.sh/domen.ru/domen.ru.cer
[Tue Jun 30 15:42:07 MSK 2020] Your cert key is in /root/.acme.sh/domen.ru/domen.ru.key
[Tue Jun 30 15:42:07 MSK 2020] The intermediate CA cert is in /root/.acme.sh/domen.ru/ca.cer
[Tue Jun 30 15:42:07 MSK 2020] And the full chain certs is there: /root/.acme.sh/domen.ru/fullchain.cer