ServerAdmin.ru
28.9K subscribers
304 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Программу radmin я знаю очень давно. Мне даже кажется, что она уже существовала в тот момент, когда я начал подрабатывать системным администратором в институте (2005 г., подумать только, у меня стаж уже 16 лет 😱). Только недавно узнал, что существует бесплатная программа Radmin VPN для объединения компьютеров в одну локальную сеть по vpn. Это аналог программы Tailscale, про которую недавно рассказывал.

https://www.radmin-vpn.com/ru/

Radmin VPN – бесплатная и простая в использовании программа для создания виртуальных частных сетей (VPN). Программа позволяет пользователям устанавливать безопасное и надежное соединение между компьютерами через Интернет, как если бы они были соединены через локальную сеть.

Добавить тут особо нечего. Ставится и работает просто. Обычный установщик Windows. Другие системы не поддерживаются. Это большой минус. А плюс в том, что программа полностью бесплатная, без каких-либо ограничений или платных фич. Я так понял, что создана она для рекламы и продвижения другого коммерческого продукта этой компании - Radmin.

Настройка максимально простая. Ставите клиент. Он автоматически регистрируется где-то в облаке разработчика, подключается к нему и получает серый ip. Вы можете создать свою новую локальную сеть или подключиться к существующей. При создании сети указывается её имя и пароль. На другом устройстве достаточно установить клиент, ввести имя сети и пароль к ней. Оба устройства окажутся в этой сети.

#vpn
​​Вновь возвращаюсь к теме чатов. Ещё пара вариантов для рассмотрения осталась. Сегодня поговорим о Matrix Synapse. Это не совсем чат-сервер, скорее платформа для организации чатов. Расскажу подробнее.

Matrix - это открытый протокол для децентрализованной коммуникации. Он может быть реализован в различных серверах и мессенджерах - https://matrix.org.

Synapse - локальный сервер, который работает на протоколе matrix, обеспечивает возможность подключения и общения клиентов. Написан на Python - https://matrix.org/docs/projects/server/synapse. Можно быстро запустить в docker или воспользоваться публичным сервером.

Для данной связки можно использовать любой клиент. Наиболее популярным и зрелым является клиент Riot, который в настоящий момент переименован в Element. Я пробовал именно его, когда тестировал данную связку. Он есть как web клиент, desktop и android приложение - https://element.io. К сожалению, под капотом там javascript и какой-нибудь современный фреймворк (не уточнял, какой именно), так что большого смысла использовать именно приложение нет. Оно точно так же выглядит, как и страница в браузере.

В плане функционала данная связка не будет сильно отличаться от остальных чатов. Всё необходимое есть. Внешний вид тоже нормальный. Явным плюсом подобного решения является бесплатность и гибкость, возможность расширять функционал различными дополнениями и разными клиентами. Плюс, есть возможность интеграции с другими системами, например, сервером видеоконференций Jitsi-meet.

Минус сразу на виду и следует из плюсов. Подобный конструктор по определению будет менее стабилен и более требователен к настройке и управлению. Порог вхождения будет повыше, хотя какой-то кардинальной сложности нет. У меня есть статья-обзор по установке и настройке подобной связки. Она немного устарела, но получить представление о чат-сервере можно.

Будет неплохо, если протокол Matrix продолжит свое развитие и завоюет популярность, как в свое время irc или xmpp. Пользователи от этого только выиграют. Сейчас по факту почти все пользуются закрытыми проколами и проприетарным ПО в этой области. Если честно, я не уверен, что у Matrix что-то сильно популярное выйдет. Мне кажется, сфера общения в виде мессенджеров очень лакомая для коммерческих организаций. Они будут максимально развивать и наращивать бесплатный функционал, лишь бы вы пользовались их продуктами и сливали информацию о себе. Open Source продукту будет трудно с ними конкурировать.

Если кто-то внедрял подобный чат-сервер, дайте обратную связь. Как там в плане стабильности и удобства в реальной эксплуатации.

#chat #selfhosted
​​Есть отличный инструмент для хранения любого вида информации, в том числе и по сетевому оборудованию - Exel. У меня целая куча всевозможных таблиц с информацией. Но если вам нужно что-то более удобное для учёта и инвентаризации всего, что связано с сетями и информации об IP адресах, предлагаю обратить внимание на NetBox.

Netbox - это приложение для infrastructure resource modeling (IRM). Написано командой сетевых инженеров DigitalOcean специально для системных администраторов. Изначально использовалось для управления внутренней инфраструктурой, потом было опубликовано в open source.

Полезные ссылки:
https://netbox.readthedocs.io/
https://github.com/netbox-community/netbox

С помощью Netbox можно вести учёт ip адресов, стоек, расположения оборудования в стойках, сетевых соединений, виртуальных машин, схем подключения операторов связи, учётных данных для доступа к устройствам. Есть интеграция с LDAP. В общем, зрелый программный продукт, готовый к промышленной эксплуатации. Отдельно подчеркну, что Netbox это в первую очередь учёт и инвентаризация, не мониторинг и управление.

Netbox построен на базе Django (Python), Nginx или Apache, PostgreSQL в качестве СУБД. Посмотреть и попробовать очень просто. Есть полнофункциональное demo - https://demo.netbox.dev.

Если будете ставить себе, есть подробная документация с видео по установке и связке всех компонентов. Если вы devops, у вас причёсанная борода, вы пьете крафтовый кофе, и вы выше всей этой ручной возни с пакетами и настройками, то для вас есть готовый docker-compose:
https://github.com/netbox-community/netbox-docker

#network #управление #ITSM #IPAM
​​Прочитал на stackoverflow ответ от DBA Postgresql на тему размещения субд в контейнерах. Ответу уже 3 года, но с тех пор принципиально ничего не изменилось. Кратко смысл такой:

Вам надо монтировать директорию с БД к хосту. Докеровская файловая система вообще не пригодна для интенсивной записи.
Вам надо использовать сеть хостовой системы, чтобы не было снижения производительности на накладные расходы.

Эти 2 условия практически полностью нивелируют удобства Docker. Большого смысла запускать СУБД в контейнере нет. Речь идёт о нагруженной базе данных в проде.

Есть большой опыт использования небольших баз данных и кластеров postgresql в kubernetes у компании Zalando. Я делал отдельную заметку по их выступлению с этой темой на конференции. Там идея такая - большие нагруженные базы в контейнерах не запускают. А вот небольшие базы отдельных микросервисов запускают в kubernetes. Это позволяет организовать удобное централизованное управление и деплой новых баз для различных сервисов и команд.

У меня была еще одна заметка на тему базы данных в Docker. Там я делаю выжимку из статьи компании Percona о её собственных тестах производительности БД в контейнерах. Там вывод такой же, как и в у DBA со stackoverflow. Нужно обязательно использовать сеть хоста, чтобы не было просадки производительности.

В итоге получается, что для хорошей производительности, БД жёстко мапится к самому хосту и сетью, и диском. Ни о каком stateless подходе, на который в первую очередь ориентированы контейнеры, речи не идёт. Польза контейнеров в истории с субд может быть только при использовании большого количества ненагруженных баз, управление которыми может быть организовано с помощью средств оркестрации контейнерами.

У меня в практике как то раз был случай, когда база данных Mysql, запущенная в контейнере, просто исчезла. Разработчики запустили один проект заказчику полностью в контейнерах. В какой-то момент замапленная директория с файлами БД оказалась полностью пустой. Был такой древний баг. Его уже давно пофиксили.

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

#postgresql #mysql #docker
​​Давно не было заметок про полезные утилиты для бэкапа. Решил это исправить. Рассказываю про Butterfly Backup. Это небольшая консольная обёртка над rsync, написанная на python. Идея её в том, что она использует основное преимущество rsync - скорость сравнения и копирования информации. А так же добавляет некоторую гибкость, которой изначально в rsync нет. То есть расширяет его функционал.

https://github.com/MatteoGuadrini/Butterfly-Backup
https://butterfly-backup.readthedocs.io/en/latest/

Butterfly Backup избавляет от необходимости писать собственную bash обвязку вокруг rsync для организации инкрементных или разностных бэкапов. Так же упрощает восстановление и просмотр содержимого бэкапов. Для удобства можно подготовить готовый конфиг.

Основные возможности:
Поддерживаемые бэкапы: Full, Incremental, Differential, Mirror.
Использование центрального сервера для хранения бэкапов разных клиентов.
Детальный просмотр содержимого отдельных бэкапов.
Бэкап всей системы, а так же ее восстановление на другое железо или VM.
Принцип снятия данных agent-less, по протоколу rsync или ssh.

Для работы BB нужен Python3. Далее достаточно скопировать репозиторий и запустить скрипт установки:
git clone https://github.com/MatteoGuadrini/Butterfly-Backup.git
cd Butterfly-Backup
sudo python3 setup.py

После этого копируем rsa ключи, которые предварительно создали, на удаленный host, чтобы иметь к нему доступ:
bb config --deploy host1

Дальше запускаем простой бэкап:
bb backup --computer host1 --destination /mnt/backup --data System --type Unix

У bb есть преднастройки для типовых бэкапов трёх типов систем - Unix, Windows, MacOS. Если указать после ключа data тип данных и далее тип системы, то будет забэкаплено всё, что относится к этому типу. В моем примере это системные директории.

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

#backup
​​Помните, я уже писал о проблеме Centos 7 и сертификатов Let's Encrypt? Не буду сильно повторяться, так как все подробности по ссылке. Кратко скажу, что из-за устаревшей версии Openssl, в Centos 7 не будет поддержки нового корневого сертификата, а старый протухает 30 сентября.

Вариантов решения этой проблемы несколько:

1️⃣ Обновить версию openssl на 1.1.1 или выше. Теоретически это может привести к каким-то проблемам с зависимостями, так как этой версии нет в базовых репах. Ставить придётся вручную.

2️⃣ Заблокировать протухающий сертификат. Сделать это можно так:
# trust dump --filter "pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10" | openssl x509 | tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pem
# update-ca-trust extract

Перед этим на всякий случай сохраните текущую цепочку CA сертификатов:
# cp -i /etc/pki/tls/certs/ca-bundle.crt ~/ca-bundle.crt-backup

3️⃣ Выпускать новые сертификаты с использованием другой цепочки CA:
# certbot renew --preferred-chain "ISRG Root X1"
Данная возможность появилась в версии certbot 1.6.0.

Подробности всей этой истории по ссылке:
https://blog.devgenius.io/rhel-centos-7-fix-for-lets-encrypt-change-8af2de587fe4
Я там новость подсмотрел.

#centos
Есть небольшая утилита для организации vpn подключения через ssh - sshuttle. Она есть в стандартных репозиториях популярных дистрибутивов. В Centos живет в репозитории epel. Также присутствует в pip, так как написана на python.

https://github.com/sshuttle/sshuttle
https://sshuttle.readthedocs.io/en/stable/usage.html

Установка:
# dnf install sshuttle
# apt install sshuttle
# pip install sshuttle

Её удобство в простоте и функциональности. VPN соединение организуется поверх SSH. Покажу на примерах:
# sshuttle -r user@1.2.3.4 0/0

Выражение 0/0 эквивалентно маске 0.0.0.0/0, то есть весь трафик отправляем в этот туннель. Будьте аккуратны, когда начнёте тестировать. Вас отключит от текущего ssh соединения. Можете сразу же проверить, через какой ip вы выходите в интернет:
# curl ifconfig.me/ip

Должны увидеть внешний ip ssh сервера, к которому подключились. С помощью sshuttle удобно подключаться к jump host и дальше на целевое устройство. Допустим, на какое-то устройство или сервер (ip - 2.2.2.2) можно подключиться только через конкретный сервер (ip - 3.3.3.3). Используем для подключения sshuttle.
# sshuttle -r user@3.3.3.3 2.2.2.2/32

После подобного подключения у вас будет создан маршрут к 2.2.2.2/32 через ssh сервер 3.3.3.3. Дальше можете со своей машины подключиться к 2.2.2.2.

Во время тестов я столкнулся с ошибкой: fatal: server died with error code 255. Подключение по ssh осуществлялось, а потом sshuttle падал. Решил вот так:

# sshuttle -r user@1.2.3.4 -x 1.2.3.4 0/0

Если используется нестандартный ssh порт, то указать его следует так:

# sshuttle -r user@1.2.3.4:22334 0/0

Для использования ключа при ssh подключении, добавьте следующие опции:

# sshuttle -r user@1.2.3.4 0/0 --ssh-cmd "ssh -i ~/.ssh/id_rsa"

Если что-то пойдёт не так, включите подробное логировние через ключ -vvvv. Увидите, какие правила sshuttle добавляет в firewall и как прописывает маршруты. Там никакой магии, всё наглядно.

В Windows через WSL2 тоже работает, что весьма удобно. Данной заметки достаточно, чтобы начать пользоваться программой, так что смело добавляйте в закладки.

#vpn #ssh
​​На днях слушал вебинар, где в том числе разобрали порядок поиска и выполнения команд в интерпретаторе bash. Я вспомнил, как сам в свое время разбирался в этой теме, пытаясь понять, почему команды выполняются в неочевидном для меня порядке. Решил законспектировать этот момент и поделиться с вами.

Итак, после ввода в терминал команды, происходит следующее:
1️⃣ Проверяются алиасы. Если команда будет там найдена, то поиск остановится и она исполнится. Проверить свои алиасы можно в консоли с помощью команды:
# alias
Кстати, алиас ls там скорее всего будет в таком виде:
alias ls='ls --color=auto'
То есть выполнится не просто бинарник /usr/bin/ls, а именно указанный алиас с ключами.
2️⃣ Далее команда проверяется, встроена в ли она в оболочку, или нет. Если встроена, то выполнится именно она, а опять же не бинарник. Пример встроенных программ - echo, pwd и т.д.
# type echo
echo is a shell builtin
Что интересно, есть и бинарник echo, но если вы в консоли bash явно не укажете путь к нему /usr/bin/echo, выполнится именно встроенная в оболочку программа. Они на самом деле разные. У них даже ключи немного отличаются.
3️⃣ Только теперь идёт поиск бинарника в директориях, определённых в $PATH, причем не абы как, а по порядку следования этих директорий в переменной слева направо.
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Я в свое время именно с этим разбирался, так как не мог понять, почему выполняется один из двух бинарников с одинаковыми именами, лежащие в разных директориях.

Зная всё это, можно засадить куда-то зловреда, или просто пошутить над кем-то. Например, создать пустой исполняемый файл с таким же именем, как системная утилита, например, chown. Положить файл в какую-то директорию и добавить её в начало $PATH. После этого при наборе chown в консоли или скриптах не будет происходить ровным счётом ничего. Если не знаешь всех нюансов, то так сразу не поймёшь, в чём проблема.

#bash #terminal
Забавное видео про IT инженера на удалёнке. Можно смотреть без перевода, если не понимаете на слух английский. С субтитрами вообще всё понятно будет.

Мне особенно понравилось оснащение рабочего места. Перематывал, ставил на паузу и внимательно всё разглядывал. Очень круто сделано. Тоже так хочу. Но пока до hi-tech руки не доходят. С деревяшками бы в новом доме разобраться, которые за год подорожали в 2-3 раза и стали стоить дороже, чем hi-tech оборудование 😱 Дерево - новая нефть. Буду теперь себя богачом ощущать в деревянной избушке 🏡

https://www.youtube.com/watch?v=Rgx8dpiPwpA

Для тех, кто посмотрит видео, вопрос. Я не понял, зачем он разбил мышку и взял новую, когда беседовал с пародией на Стива Джобс?

#юмор
​​Опять возвращаюсь к теме протухшего корневого сертификата Let's Encrypt и Centos 7. Писал об этом на днях. Делать самим ничего не надо. Один из способов, который я предложил - удалить протухший сертификат вручную. Делать этого теперь не надо, так как вчера вышло обновление пакета ca-certificates для Centos 7. Там этот сертификат уже удалён.

Лучше поздно, чем никогда. Но еще лучше, если бы они пораньше это обновление выпустили. Я уже вручную удалил, где вспомнил, что тема актуальна. А это практически все сервера со стандартным Bitrixenv, которое до сих пор на базе Centos 7 работает. И поддержка Let's Encrypt там встроена и активно используется.

#centos #webserver
После поста о сборе средств для Семаева Кирилла, мне периодически пишут люди и спрашивают, как и что там с Кириллом, доходят ли деньги и т.д. Сам я не в курсе, так как у меня нет постоянного контакта ни с ним, ни с его родными. Это была моя личная инициатива о соборе средств. Чтобы было, что отвечать по теме, спросил у Анны, как там дела.

Кирилл сейчас на очередной реабилитации в мед. центре, так что новостей особо нет. С ним всё в порядке, состояние нормальное, ни лучше, ни хуже. Деньги тратятся на реабилитационные процедуры и на бытовые нужды. Помощь доходит до адресата.

На неё вышли люди с инициативой записать видео с Кириллом. Ориентировочно на октябрь запланировали мероприятие. Так что если всё сложится, то будет подробная информация из первых уст.

У меня всё по теме. Удачи вам в делах и не болеть.
​​📌 Хочу вас познакомить с двумя интересными и полезными утилитами для просмотра занятого места на диске. Первая из них - duf (https://github.com/muesli/duf). Написана на гошечке, работает шустро. По дефолту показывает удобный табличный вид смонтированных устройств, разделяя локальные хранилища, сетевые и специальные, типа /dev, /run и т.д.

Из других полезных возможностей:
- раскрашенный вывод
- настраиваемая сортировка и фильтрация вывода
- вывод результата в json формате

Есть паркет под все популярные системы, в том числе windows. Ставим на centos:
# rpm -ivh https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_amd64.rpm

Пример использования:
# duf --only local --sort size
Вывод только локальных хранилищ с сортировкой по размеру.

📌 Вторая утилита - dust (https://github.com/bootandy/dust). Написана на rust (du + rust = dust). Умеет отображать древовидную структуру каталогов с указанием занимаемого места каждой ветви дерева. Я не видел утилиты, которая бы так же быстро и просто могла сразу показать, кто и где занял место на диске. Несомненно, есть ncdu, но у неё другой принцип отображения информации. Где-то удобнее, а где-то нет.

Dust представляет из себя одиночный бинарник, так что никаких пакетов нет. Качаем и запускаем:
# wget https://github.com/bootandy/dust/releases/download/v0.7.5/dust-v0.7.5-x86_64-unknown-linux-gnu.tar.gz
# tar xzvf dust-v0.7.5-x86_64-unknown-linux-gnu.tar.gz
# cd dust-v0.7.5-x86_64-unknown-linux-gnu/
# ./dust / -d 3
Посмотрели размер директорий, начиная с корня, с ограничением глубины в 3.

#terminal #утилиты
​​Добиваю тему self-hosted чатов. Напомню, что ранее уже рассмотрел:

✔️ Zulip
✔️ MyChat
✔️ Mattermost
✔️ Rocket.Chat

Эти чаты я либо сам внедрял, либо тестировал и готовил к внедрению, поэтому есть личный опыт установки, базовой настройки и типового тестирования. Мне посоветовали посмотреть ещё на Delta Chat, что я и сделал.

Главная особенность Delta Chat в том, что для доставки сообщений используется smtp протокол. То есть он работает поверх инфраструктуры почтовых серверов, а значит свой сервер чата не нужен вообще. Идея выглядит необычной и любопытной. Для общения с помощью этого чата достаточно любых существующих почтовых ящиков.

Я поставил десктопные клиенты и пообщался сам с собой, настроив для этого соответствующие почтовые ящики. Сразу скажу, что клиент написан на Electron 😪. Настройки почтовых ящиков Яндекс.Почты автоматом не подобрал, пришлось вручную указать серверы и порты, предварительно в настройках ящика разрешив подключаться по imap. С gmail авторизация прошла автоматом без танцев, но пришлось в настройках безопасности разрешить подключаться ненадёжным приложениям.

Поотправлял сообщения туда-сюда. В целом работает. Клиент, как и всё на JavaScipt и Electron, тормозной. Идея интересная, так как практически полная децентрализация и всё работает поверх уже существующей инфраструктуры. Но те, кто понимают, как работает почта, сразу увидят кучу минусов. Тут и шанс попасть под спам фильтры, и greylisting, и задержки при доставке почты по smtp, и просто потери писем, которые иногда случаются. Всё это в целом с натяжкой тянет на полноценный чат. Никогда не будешь уверен, что твое сообщение быстро и гарантированно будет доставлено.

В таком виде, как реализовано, мне кажется, тема не пойдёт в массы. Ей самое место в каком-нибудь почтовом клиенте, пусть даже и в web. Там удобно вести подобную переписку, а как отдельное приложение для чата, мне кажется, не очень уместно.

Как бонус, бэкап всей переписки в ящиках, правда в зашифрованном виде. Не знаю, в каком виде потом всё это можно посмотреть, если сам чат будет удалён с компьютера. На базе уведомлений о доставке и прочтении реализована индикация доставки и прочтения сообщений в чате. Сам чат выглядит приятно. Интерфейс простой и понятный.

И да, это полностью open source:
https://github.com/deltachat
https://delta.chat/

#chat
​​Дети в Интернете. Все, что нужно знать о контентной фильтрации в образовательных учреждениях.

🗓 30 сентября в 14:00 (мск) разработчики шлюза Интернет Контроль Сервер проведут вебинар на тему доступа в интернет в учебных заведениях, что подразумевает четкое выполнение требований законодательства в области защиты детей от опасной информации.

На вебинаре вам расскажут, как с помощью контент-фильтра Интернет Контроль Сервер и дополнительных модулей Kaspersky можно обеспечить безопасный доступ в сеть и беспрепятственно пройти прокурорскую проверку.

Вы узнаете о преимуществах использования контент-фильтра перед фильтрацией от провайдеров, об отличиях ИКС от простых модулей фильтрации, а также о дополнительных категориях трафика Kaspersky Web Filtering.

👉 Регистрация на бесплатный вебинар.

У меня на сайте написан цикл статей по этому шлюзу, где я разбираю установку и настройку продукта.

Вы можете скачать и протестировать полнофункциональную версию шлюза в течении 35 дней, либо воспользоваться бесплатной версией.

#реклама #бесплатно #текст_мой #икс
​​ZeroViewer - бесплатная программа для удаленной поддержки пользователей. Условно можно назвать self-hosted аналогом программ типа TeamViewer, Anydesk и т.д. В качестве сервера, через который устанавливается соединение, может выступать любой ssh server. Подключения запускаются с помощью kitty (виндовый ssh клиент). Для отображения экрана удаленной машины используется реализация vnc на базе TightVNC.

Клиент доступен только для ОС Windows. Все настройки хранит в обычном ini файле, что упрощает переносимость. Нужно понимать, что соединения по ssh не очень быстрые. Плюс протокол vnc тоже очень требователен к скорости канала. Так что получить сопоставимое качество картинки с tv или anydesk не получится. Зато всё полностью под твоим контролем, плюс надежное шифрование из коробки на базе ssh. Полностью бесплатных аналогов я даже и не знаю.

Сайт программы: https://null.la/
Обсуждение:
https://4pda.to/forum/index.php?showtopic=973515
http://forum.ru-board.com/topic.cgi?forum=5&topic=49838

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

#remote #selfhosted
​​В системах Unix есть полезная утилита, которая возвращает тип введённой в оболочку команды. Речь пойдёт об утилите type. Она может быть как частью оболочки, так и отдельным бинарником. Проверить это можно с её же помощью.
# type type
type is a shell builtin

В данном случае утилита type является встроенной в оболочку bash. С её помощью вы можете понять, что именно будет исполнено, если вы введёте ту или иную команду. Например:
# type echo
echo is a shell builtin

Если просто ввести echo в терминал, будет выполнена встроенная в оболочку утилита. Но при этом есть и бинарник. Проверить, где он, можно с помощью добавления ключа P. Тогда type будет проверять только бинарники в PATH.
# type -P echo
/usr/bin/echo

В скриптах, или консоли, вы можете использовать путь к бинарнику echo. Он отличается от того, что встроено в консоль. Убедиться в этом очень просто. Введите в консоли две команды и сравните результат. Подумайте, почему он разный.
# echo --help
# /usr/bin/echo --help

Type маленькая утилита, которая только выводит информацию о введённой команде в консоль. С ее помощью можно определить, что будет выполнено: alias, function, builtin, file или keyword. Если добавить ключ a, то будут выданы все варианты команды:
# type -a ls
ls is aliased to `ls --color=auto'
ls is /usr/bin/ls

#bash
​​Делюсь с вами простым и удобным скриптом для автоматического бэкапа mysql баз с помощью mysqldump - AutoMySQLBackup. Это обычный bash скрипт, который упрощает рутинные задачи по бэкапу, предлагая встроенный функционал.

https://github.com/sixhop/AutoMySQLBackup

Основные возможности скрипта:
Сжимает бэкапы баз и раскладывает их по отдельным директориям.
Поддерживает многопоточные архиваторы типа pigz, позволяет управлять количеством потоков.
Автоматически ротирует дневные, недельные, месячные архивы по заданным параметрам.
Позволяет использовать ключи mysqldump.
Умеет хранить настройки в отдельном конфигурационном файле.
Можно гибко управлять набором баз для бэкапа, вручную указывая их или управляя списком с помощью шаблонов.
Умеет отправлять результаты своей работы по почте.
Может шифровать дампы указанным ключом.
Запуск своего скрипта до или после выполнения бэкапа.

Вот простой конфиг для ежедневного бэкапа баз mysql за исключением performance_schema и information_schema. Ежедневные бэкапы хранятся 7 дней, недельные 31 день, месячные год.

CONFIG_mysql_dump_username='root'
CONFIG_mysql_dump_password='parol'
CONFIG_mysql_dump_host='localhost'
CONFIG_backup_dir='/mnt/backup'
CONFIG_multicore='no'
CONFIG_db_names=()
CONFIG_db_exclude=( 'performance_schema' 'information_schema' )
CONFIG_db_exclude_pattern=()
CONFIG_do_monthly='01'
CONFIG_do_weekly='7'
CONFIG_rotation_daily=6
CONFIG_rotation_weekly=31
CONFIG_rotation_monthly=360

После работы сккрипта в директории /mnt/backup будет создана структура директорий:

daily - ежедневные бэкапы, где каждая база будет в своей директории;
fullschema - только структура всех баз данных;
latest  - если указать соответствующую настройку, то в этой директории всегда будут лежать бэкапы от последнего запуска. Удобно отсюда их забирать куда-то в другое место сразу после окончания бэкапа.
monthly - месячные бэкапы;
status - список баз каждого запущенного бэкапа;
tmp - для временных файлов;
weekly - недельные бэкапы;

Рекомендую так же прочитать мою заметку про выбор параметров для mysqldump. Там есть важные моменты, которые влияют на успешность создания дампа.

#bash #mysql #backup
​​Вы какой firewall в Linux используете? Iptables или уже перешли на nftables? Я по прежнему первый. Уже давно запланировал изучить nftables и перейти на него, но всё никак. Причина тут проста - я хорошо знаю iptables и он меня полностью устраивает. Ничего нового, перейдя на nftables, для себя не получу. Только все конфиги и правила переписывать придётся.

Для iptables есть интересный проект по графическому отображению правил - iptables-vis - https://github.com/Nudin/iptable_vis. Я его потестировал. Работает неплохо. Можно где-то использовать, например в документации для людей, не знакомых с синтаксисом iptables. Картинки вполне наглядные получаются.

Для рисования схем используется blockdiag, который написан на python. Проще всего поставить через pip:
# dnf install python3-pip
# apt install python3-pip
# pip install blockdiag

Потом клонируем себе репозиторий и рисуем схему:
# git clone https://github.com/Nudin/iptable_vis
# cd iptable_vis
# iptables -v -L > iptables.txt
# awk -f iptables-vis.awk < iptables.txt > iptables.dia
# blockdiag iptables.dia -T svg -o iptables.svg

Забирайте файл iptables.svg и смотрите любым просмотрщиком этого формата. Я в обычном браузере открыл.

#iptables
Реферальная программа облачного провайдера Cloud4Y

Зарабатывайте 10% от суммы контракта с привлеченного по вашей ссылке клиента.

Кому подходит программа:
🔹ИТ-специалистам
🔹Специалистам по информационной безопасности 
🔹Специалистам по арбитражу трафика 
🔹Любым компаниям и физическим лицам, имеющим свою площадку и аудиторию

Преимущества: 
🔸Никаких обязательств перед клиентами 
🔸Юридическая защита через договор
🔸Рост дохода при росте клиента 
🔸Безупречная репутация компании на облачном рынке  
🔸Прозрачная система выплат любыми удобными способами

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

Узнать подробнее.

#реклама
​​Бесплатный антивирус для сайтов - https://virusdie.com. Сразу говорю, что это не реклама, а мой опыт использования. Приходится делать такие пометки, так как регулярно вижу комментарии о том, что я что-то рекламирую. Абсолютно вся оплаченная реклама на канале помечается соответствующим тэгом. Если его нет, значит это моя личная инициатива написать о том или ином продукте.

Сервис virusdie.com позволяет бесплатно раз в месяц проверять на наличие вирусов один сайт. Для этого надо зарегистрироваться и подтвердить своё владение сайтом. Делается это с помощью загрузки проверочного файла в корень сайта, который по сути является вебшелл. Имейте это ввиду. Сканирование сайта происходит не снаружи, а внутри, через этот php файл. После проверки вы получите отчёт на почту. У компании одно время был блог на хабре.

Вообще, тема антивирусов для сайтов как-то совсем не развита. Раньше был неплохой антивирус revisium, который можно было купить сразу с установкой и регулярной поддержкой, обслуживанием. Но в какой-то момент их купили, сделали ребрендинг и русскоязычного сервиса вообще не осталось.

Был еще бесплатный aibolit от той же компании Revisium. Его постигла та же участь. Компания Revisium вошла в группу CloudLinux. Антивирус revisium получил название ImunifyAV. Продукты Revisium стали частью системы комплексной безопасности серверов Imunify360, AI-Bolit в Imunify360 стал Malware Scanner. Бесплатной версии больше нет. Компания CloudLinux, как я понял, ориентирована на англоязычный рынок. Простых способов оплатить российскому юрлицу я не нашел, как и просто телефона тех. поддержки на русском языке.

Есть еще Manul от Яндекса, но не развивается уже давно. Да и на старте был не очень.

Лично я антивирусы для сайтов заменяю подробными схемами бэкапов, когда есть возможность откатиться или восстановить изменённые файлы с достаточной глубиной архивов. Непосредственно исходники стараюсь хранить как можно дольше, в идеале вообще не удаляю.

#website #антивирус #security