05 ноября 2022 25 января 2023 Linux Linux OpenVPN Docker


Если нужно быстро запустить VPN на каком то удалённом сервере то проще всего воспользоваться готовым решением https://github.com/kylemanna/docker-openvpn

Затем делаете сколько нужно VPN ключей с помощью этой команды

docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full USERNAME nopass

выгружаете в хостовую машину

docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient USERNAME  > USERNAME.ovpn

И всё, можно пользоваться

Чтобы в дальнейшем сохранилась возможность генерировать новые ключи необходимо восстанавливать значение export OVPN_DATA="ovpn-data-example" и использовать passkey использованный для генерации корневого сертификата

Посмотреть статус OpenVPN сервера можно вот так

docker exec -it funny_varahamihira ovpn_status

Если необходимо запустить VPN клиента на постоянной основе, например на ubuntu сервере, то необходимо сгенерировать ключ для этого сервера, скопировать его в директорию /etc/openvpn/client.conf

и разрешить автозапуск

stemctl enable openvpn@client

 


03 марта 2022 Linux mpd songs amq


После блокировки западных стриминговых платных платформ можно оживить устройство Songs AMQ с помощью MPD

На любом хостинг-сервере ставим mpd

apt install mpd

закачиваем музыку в /var/lib/mpd/music

меняем на неё права

chown -R mpd:nogroup /var/lib/mpd/music/

в файле конфигурации /etc/mpd.conf можно оставить только такие настройки

playlist_directory        "/var/lib/mpd/playlists"
db_file            "/var/lib/mpd/tag_cache"
log_file            "/var/log/mpd/mpd.log"
pid_file            "/run/mpd/pid"
state_file            "/var/lib/mpd/state"
sticker_file                   "/var/lib/mpd/sticker.sql"
user                "mpd"
bind_to_address        "0.0.0.0" # слушаем все вшешние адрес
port                "6600"
password                        "Z2022.02.24@read,add,control,admin"
input {
        plugin "curl"
}
audio_output {    
    type        "httpd"    
    encoder     "lame"          # кодек lame необходим для работы с Songs AMQ
    port        "8000"    
    bitrate     "256"             # повышенный битрейт
    format      "44100:16:1"    
}
filesystem_charset        "UTF-8"

перезапускаем mpd

service mpd restart

Полученную ссылку в виде http://хостинг-сервер:8000 прописываем в songsApp

Всё работает. Управлять можно через приложение GMPC, так же есть приложения управления mpd для Android. Для управления используем адрес [хостинг-сервер], порт 6600, пароль из опции password


20 мая 2021 Linux


выключить звуковой сервер

killall -9 pulseaudio

запустить звуковой сервер

pulseaudio -D

 


15 января 2018 Linux Ubuntu git


Для того чтобы смержить два проекта потребуется git начиная с версии >=2.9. Такого нет в репозитариях стабильной версии Ubuntu 16.04. Для установки более новой версии необходимо сделать вот так:

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

вуаля:

ffsdmad@ffsdmad:~/Project$ git --version
git version 2.15.1

 


04 января 2018 05 января 2018 Linux uuencode mysqldump bash


Создание резервных копий необходимо для обеспечения восстановления работы базы данных в случае системного сбоя. Самой простой методикой является периодический запуск скрипт делающего дамп базы данных на сервере с сохранением результатов на сервере. Такая методика прекрасно работает до тех пор пока работает сервер. Может случится ситуация когда с сервером что-то случилось и невозможно восстановить данные из его файловой системы. Обычно, для решения  этой проблемы хостеры предлагают использовать внешний FTP сервер и обычно они требуют за него деньги. То-есть скрипт должен закачивать созданный дамп базы данных на другой сервер по протоколу FTP.

Но нам ни кто не мешает поступить следующим образом, полученный дамп базы данных сжимается архиватором (для уменьшения размера), а затем полученный архив отсылается на почту администратора сайта, например на gmail. А для того чтобы не захламлять почтоый ящик регулярными дампами можно настроить ящик так, чтобы он письма с дампом базы данных перекладывал в спам. Таким образом, письмо не мешает работать с почтой и гмайл самостоятельно удаляет слишком старый спам и у вас всегда будет доступна самая актульаня версия базы данных, а устаревшие будут автоматически удаляться. Даже если не настраивать перенос писем в спам, то можно удалять письмо и оно автоматически будет удаленно через n-дней, так уж устроен gmail

У меня на одной базе данных проявилась проблема, так как база данных получалась слишком большая из-за таблицы которая хранила тексты входящей почты. Эти данные не являются актульными и я просто не включал их в дамп базы данных с помощью опции --ignore-table

Таким образом у меня получился вот такой скрипт

#!/bin/bash

site_name="site-name.ru" # переменная с именем проекта

# формирование имения файла дампа с датой
file_base_name="/home/$site_name/backup/$site_name-`date +%F`.sql.bz2"

# создание дампа резервной копии
mysqldump -u логин -pпароль $site_name --ignore-table $site_name.mails | bzip2  > $file_base_name

# отправка дампа на почту
uuencode  $file_base_name  $file_base_name | mail -s "backup $site_name `date '+%Y-%m-%d'`" admin@gmail.com

# удаление резервных копий старше 7 дней
find /home/$site_name/backup/ -ctime +7 -delete

#PS, утилита uuencode входит в состав пакета sharutils

 


03 января 2018 04 января 2018 Linux DNS CNAME host


Когда Яндекс.домены просят подтвердить домен с помощью CNAME записи то этот поддомен прописывается в панели управления доменом у хостера, а затем проверяется с помощью следующей команды

host -t CNAME python.breys.ru ns1.firstvds.ru
Using domain server:
Name: ns1.firstvds.ru
Address: 82.146.43.2#53
Aliases: 

python.breys.ru has no CNAME record

в выхлопе команды будет видно является ли запись типа CNAME, в данном случае не является, в от этот поддомен является CNAME на breys.ru

host -t CNAME static.python.breys.ru ns1.firstvds.ru
Using domain server:
Name: ns1.firstvds.ru
Address: 82.146.43.2#53
Aliases: 

static.python.breys.ru is an alias for breys.ru.

Для проверки MX записи можно воспользоваться вот такой командой

host -t MX breys.ru
breys.ru mail is handled by 20 mail.breys.ru.
breys.ru mail is handled by 10 mail.breys.ru.


host -t MX python.breys.ru
python.breys.ru has no MX recor

Внимательный глаз сразу заметит что можно указывать внешний NS сервер для проверки записи, это необходимо чтобы не дожидаться обновления зоны на локальном DNS сервере и у провайдера.