Добавить пароль в существующий ssh ключ

ssh-keygen -p -f ~/.ssh/id_rsa

MTProto proxy без мерзкого Docker’а

Ubuntu 16.04 не подойдёт, только 18.04.
OpenSUSE Leap 15.0 и openSUSE Tumbleweed подходят.

apt install -y git curl build-essential zlib1g-dev libssl-dev git
yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"
git clone https://github.com/TelegramMessenger/MTProxy.git
cd ./MTProxy
make

бинарь будет в папке objs/bin

head -c 16 /dev/urandom | xxd -ps
rm /opt/mtproxy/proxy-secret
curl -s https://core.telegram.org/getProxySecret -o /opt/mtproxy/proxy-secret
rm /opt/mtproxy/proxy-multi.conf
curl -s https://core.telegram.org/getProxyConfig -o /opt/mtproxy/proxy-multi.conf
/opt/mtproxy/mtproto-proxy --ipv6 -u nobody -p 8888 -H 443 -S ВАШСЕКРЕТИЗПРЕДЫДУЩЕГОШАГА  --aes-pwd /opt/mtproxy/proxy-secret /opt/mtproxy/proxy-multi.conf
[Unit]
Description=MTProxy
After=multi-user.target
 
[Service]
Type=simple
ExecStart=/bin/bash /opt/mtproxy/start.sh
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start mtproxy
sudo systemctl enable mtproxy
tg://proxy?server=ВАШАЙПИ&port=443&secret=ВАШСЕКРЕТ
https://t.me/proxy?server=ВАШАЙПИ&port=443&secret=ВАШСЕКРЕТ

Далее от рута

0 * * * * systemctl restart mtproxy

Это нужно чтобы наш прокси периодически получал список новых адресов серверов тележеньки

Для тех кому лень обновлять (когда/если будут обновления)

rm -rf /usr/local/src/MTProxy
cd /usr/local/src/
git clone https://github.com/TelegramMessenger/MTProxy.git
cd /usr/local/src/MTProxy
make
systemctl stop mtproxy.service
rm /opt/mtproxy/mtproto-proxy
cp /usr/local/src/MTProxy/objs/bin/mtproto-proxy /opt/mtproxy
systemctl daemon-reload
systemctl start mtproxy.service

и меняем в кроне строчку на

0 * * * * bash /opt/mtproxy/upd.sh

Получить статистику прокси можно так:

wget http://localhost:8888/stats

(отвечает только локалхосту)

Или запросив у бота @MTProxybot (предварительно надо зарегистрировать свою проксю там). Бот даст в ответ строчку которую надо добавить через флаг -P к строке запуска.

Небольшой ман по grep

Используем grep для поиска текста

Поискать слово word в файле

cat /path/2/file.log | grep word

или

grep "word" /path/2/file.log

или во всех файлах в папке

grep “text string” /path/2/my/dir

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

grep позволяет искать в подкаталогах, используя опцию -r:

grep -r "any word combination " /var/log

Вывести только имена найденных grep файлов

Чтобы grep вывела имена найденных файлов, стоит использовать опцию -H.

grep -Hr ERROR /var/log

Теперь нужно прогнать вывод через фильтр, чтобы оставить только имена файлов, в которых есть вхождение текста, а также удалить дубликаты. Нужно использовать такую команду:

grep -Hr ERROR /var/log | cut -d: -f1 | sort -u

Если требуется игнорировать регистр то следует добавить флаг -i

grep -i error /var/log/apache.log

А флаг -s отключит вывод сообщений о файлах которые не удалось прочитать
-n выведет номер строки в которой нашлось искомое слово
А выдаст сколько строк содержит искомое слово

Установка 1С сервера PostgreSQL + web мордочка

1) Ставим и обновляем систему (в моём примере ubuntu ибо на ней разрабы тестируют в первую очередь)

sudo apt update && sudo apt upgrade

2) ОБЯЗАТЕЛЬНО в /etc/hosts добавляем хостнейм сервера и его ip и серверу и клиентам (в виндовзз путь такой: C:\Windows\System32\drivers\etc\hosts ну у них всё не как у людей)

sudo nano /etc/hosts

или
Блокнот от имени админа и страдания у виндоразов
3) Устанавливаем патченый postgre от конторы Postgres PROFESSIONAL

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
sudo apt install -f

4) Устанавливаем 1С (сервер и клиент нужно ставить вместе, не ставим только тонкий клиент ибо он конфликтует с толстым клиентом) и шрифты мелкомягких

sudo apt install ttf-mscorefonts-installer
sudo dpkg -i ./OdinAssDebs/*.deb
sudo apt install -f

5) Прописываем ip адрес сервера лицензий (про него возможно будет отдельная статья)

sudo mkdir /opt/1C/v8.3/x86_64/conf
sudo nano /opt/1C/v8.3/x86_64/conf/nethasp.ini

в виде

[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.10.20

6) Далее перезагружаем службы или весь сервер и создаём базу обычным способом
Делай раз
Делай дыдва
Делай тры
Делай ЩЕТыре
7) ставим апач и делаем вебмордочку 1С

sudo apt install apache2
sudo touch /etc/apache2/sites-enabled/testdb.conf
sudo /opt/1C/v8.3/x86_64/webinst -apache24 -wsdir testdb -dir /var/www/testdb -connstr "Srvr=192.168.80.248;Ref=testdb;" -confPath /etc/apache2/sites-enabled/testdb.conf
sudo systemctl restart apache2

9) Делаем скрипты для бэкапа и оптимизации базы данных:
9.1) редактируем /etc/postgresql/9.6/main/pg_hba.conf для того чтобы получать локально безпарольный доступ

local   all             all                                     trust
sudo systemctl restart postgresql

9.2) устанавливаем pigz (это gzip на стероидах (умеет при архивации нагружать все ядра))

sudo apt install pigz

9.3) Создаём скрипт бэкапа

#!/bin/sh

# Устанавливаем дату
DATA=`date +"%Y-%m-%d_%H-%M"`

# Записываем информацию в лог с секундами
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup testdb" >> /var/log/odinass-backup.log

# Бэкапим базу данных base1c и сразу сжимаем
/usr/bin/pg_dump -U postgres testdb | pigz > /mnt/data/backup/$DATA-testdb.sql.gz

echo "`date +"%Y-%m-%d_%H-%M-%S"` End backup testdb" >> /var/log/odinass-backup.log

# Удаляем в папке с бэкапами архивы старше 30-ти дней
/usr/bin/find /mnt/data/backup/ -type f -mtime +30 -exec rm -rf {} \;

9.4) Создаём скрипт для оптимизации базы

#!/bin/sh

# Записываем информацию в лог
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start vacuum testdb" >> /var/log/odinass-service.log
# Выполняем очистку и анализ базы данных
/usr/bin/vacuumdb --full --analyze --username postgres --dbname testdb
echo "`date +"%Y-%m-%d_%H-%M-%S"` End vacuum testdb" >> /var/log/odinass-service.log

sleep 5

echo "`date +"%Y-%m-%d_%H-%M-%S"` Start reindex testdb" >> /var/log/odinass-service.log
# Переиндексирвоать базу
/usr/bin/reindexdb --username postgres --dbname testdb
echo "`date +"%Y-%m-%d_%H-%M-%S"` End reindex testdb" >> /var/log/odinass-service.log

9.5) Создаём скрипт для запуска этих скриптов кроном

#!/bin/sh

#Запуск бэкапа
/bin/bash /opt/scripts/backup-psql-odinass.sh

sleep 5

#Запуск оптимизации
/bin/bash /opt/scripts/service-psql-odinass.sh

9.7 Делаем скрипты исполняемыми

sudo chmod +x /opt/scripts/*.sh

9.6) Добавляем в крон на удобное нам время
Для создания задач в кроне мне нравится пользовать сайт crontab-generator.org

0 3 * * 6 /bin/bash /opt/scripts/odinass-night-service.sh >/dev/null 2>&1

P.S.: Не забываем менять ip адреса, имена баз данных и прочее.
P.P.S.: За скрипты бэкапа и оптимизации спасибо вот этому чуваку.

id3 теги из CP1251 в UTF-8

Для начала следует установить python-mutagen (mid3iconv):

sudo zypper in python-mutagen

Теперь следует перейти в вашу папку с музыкой и выполнить скрипт:

find ./ -iname "*.mp3" -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1 -d

Ну вы понимаете почему в конце статьи хочется пожелать скорейшей смерти Microsoft и всему их софту..