i_odmin | Unsorted

Telegram-канал i_odmin - Системный администратор

25978

Все для системного администратора. По всем вопросам @evgenycarter РКН clck.ru/3KoDXp

Subscribe to a channel

Системный администратор

Bash. Часть 3

21 Bash Логирование операций удаления
22 Bash Удобный вывод сдержимого каталогов
23 Bash Реализация locate
24 Bash Имитация DIR из MS DOS
25 Bash Консольный блокнот с возможностью поиска по записям
26 Bash Консольный интерактивный калькулятор
27 Bash Кредитный калькулятор
28 Bash Напоминание о событиях
29 Bash Вывод файла с нумерацией строк

источник

👉 @i_odmin

Читать полностью…

Системный администратор

Bash. Часть 2

11 Bash Проверка ввода: число в заданном диапазоне
12 Bash Проверка ввода: Вещественные числа Подключение сторонних сценариев
13 Bash Проверка введенной даты
14 Bash Произвольные вычисления с заданной точностью
15 Bash Блокировка файлов
16 Bash Создание и использование библиотек
17 Bash Отладка сценариев и поиск ошибок
18 Bash Форматирование длинных строк
19 Bash Автоматическое резервное копирование файлов при удалении
20 Bash Восстановление файлов из резервных копий

источник

👉 @i_odmin

Читать полностью…

Системный администратор

Bash. Часть 1

1 Bash - Введение
2 Bash - Базовые понятия и логические конструкции
3 Bash - Циклы
4 Bash Конструкция case
5 Bash Функции
6 Bash Специальные символы
7 Bash Поиск программы в PATH
8 Bash Проверка ввода: только буквы и цифры
9 Bash Нормализация дат
10 Bash - Удобное представление больших чисел

источник

👉 @i_odmin

Читать полностью…

Системный администратор

👋 Привет, админы!

Сегодня словил интересный баг с WinRM на новых машинах в домене. После настройки через GPO и попытки подключения по PowerShell Remoting — облом:


WinRM cannot process the request. The following error occurred while using Kerberos authentication: Cannot find the computer X. Verify that the computer exists on the network and that the name provided is spelled correctly.


Хотя DNS работает, ping проходит, GPO с настройками WinRM прилетела. Где собака зарыта? 🐶

🔍 Проблема оказалась в отсутствии регистрации SPN для машины в AD. Без него Kerberos просто не может авторизовать подключение. Решается вот так:


setspn -S WSMAN/имя_компьютера имя_компьютера


Если машин много — автоматизируем через PowerShell:


$computers = Get-ADComputer -Filter * | Select-Object -ExpandProperty Name
foreach ($comp in $computers) {
setspn -S "WSMAN/$comp" $comp
}


⚠️ Конечно, нужны права на запись SPN (обычно у админа домена). После регистрации SPN — всё взлетело без ошибок.

💬 А у тебя были проблемы с WinRM или Kerberos? Как настраиваешь remoting — вручную, через DSC, GPO или Ansible?

👉 @win_sysadmin

Читать полностью…

Системный администратор

⚠️ До старта курса «Administrator Linux. Basic» осталось совсем немного. Набор закрывается 27 июня.

👉 Успейте пройти вступительный тест и получить запись двух вебинаров бесплатно:
— «Что нужно знать, когда переходишь с Windows на Linux. Базовые понятия Linux, работа в консоли с базовыми командами»
— «Вся правда о рынке труда или как быть востребованным в современных реалиях»

💪 Курс построен так, чтобы даже без опыта в Linux вы быстро вошли в профессию. В программе только актуальное: Bash, сети, логика работы ОС, файловые системы и автоматизация.

👉 Пройдите бесплатное вступительное тестирование сегодня и получите запись двух вебинаров: https://vk.cc/cMTUai

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Системный администратор

Linux

Три простых способа создания загрузочных флешек в Linux
Timeshift как Time Machine только для Linux
Автоматизация задач в Linux с помощью crontab и таймеров systemd
Создание и управление RAID массивами в РОСА ОС Linux
Установка российских SSL сертификатов в Linux
Перенос виртуальных машин из VirtualBox и Hyper V в QEMU KVM
Настройка KDE Connect AirDrop давай до свидания!
Файловая система Linux
Этапы загрузки ОС Linux
Управление доступом в ОС Linux

источник

👉 @i_odmin

Читать полностью…

Системный администратор

Виртуальная память: пример пошагового преобразования адреса Eng ver

Как работает трансляция виртуальной памяти. Преобразование номера виртуальной страницы и смещения в номер физической страницы и смещение. Записи таблицы страниц на диске. Ошибки страниц (page faults). Страницы размером 4 КБ против более крупных страниц.

источник

👉 @i_odmin

Читать полностью…

Системный администратор

📕 Управление ресурсами в ClickHouse для разработчиков, администраторов баз данных, инженеров и аналитиков данных

На открытом уроке 17 июня в 20:00 мск мы разберем тонкости управления ресурсами и профилирования запросов в ClickHouse:

📗 На вебинаре разберём:
1. Методы управления ресурсами в ClickHouse: настройка квот, ограничений и профилей пользователей;
2. Детальное профилирование запросов для выявления узких мест и оптимизации их выполнения;

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

👉 Регистрация и подробности о курсе ClickHouse для инженеров и архитекторов БД: https://vk.cc/cMSNEV

Все участники открытого урока получат скидку на курс "ClickHouse для инженеров и архитекторов БД"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Системный администратор

KubeVirt: глубокое погружение для администраторов VMware vSphere

KubeVirt — это расширение для Kubernetes, которое позволяет запускать виртуальные машины внутри K8s-кластера. Именно эта технология, пусть и существенно доработанная, лежит в основе Deckhouse Virtualization Platform. Недавно наша команда встретила статью Дина Льюиса, которая отлично объясняет внутреннее устройство KubeVirt, принципы его работы и то, как они соотносятся с более привычными многим концепциями vSphere. Мы решили перевести её для сообщества.

Под катом — перевод этого масштабного труда, который поможет получить чёткое представление о KubeVirt и принять взвешенное решение о его внедрении.

https://habr.com/ru/companies/flant/articles/915942/

original https://veducate.co.uk/kubevirt-for-vsphere-admins-deep-dive-guide/

👉 @i_odmin

Читать полностью…

Системный администратор

Nexterm

ПО с открытым исходным кодом для управления серверами через SSH, VNC и RDP

Позволяет:

🟢Подключаться удалённо через SSH, VNC и RDP
🟢Управлять файлами через SFTP
🟢Развёртывать приложения с помощью Docker
🟢Управлять контейнерами Proxmox LXC и QEMU
🟢Обеспечивать безопасный доступ с двухфакторной аутентификацией

https://github.com/gnmyt/Nexterm

👉 @i_odmin

Читать полностью…

Системный администратор

Вебинар «Анализ требований и их влияние на архитектуру»

✔️ 16 июня в 20:00 МСК в рамках старта курса «System Design» от Otus. Вебинар будет полезен разработчикам, архитекторам, техническим лидам и системным аналитикам.

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

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

🚀 Регистрация: https://vk.cc/cMQtAI

А еще, успей воспользоваться 🏷10% скидкой на курс «System Design» и 🎁 бонусным промокодом SD_5 . Выгодные условия действуют с 12 по 15 июня включительно!

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Системный администратор

📊 Grafana: продвинутый уровень визуализации и алертинга

🔥 19 июня в 20:00 мск приглашаем на бесплатный вебинар «Grafana — продвинутое использование» с Анатолием Бенем.
Это больше, чем графики — это визуальный интеллект вашей системы.

Что вас ждёт:

– переменные, шаблоны и динамические панели для гибкой визуализации,
– создание информативных дашбордов с PromQL и данными из Prometheus, Loki, Elasticsearch и других источников,
– настройка умных алертов и управление инцидентами,
– подключение плагинов, настройка авторизации, best practices для команд.

Узнайте, как превратить Grafana в мощный центр наблюдаемости, настроенный под вашу инфраструктуру.

👉 Регистрируйтесь по ссылке: https://vk.cc/cMMw88

Занятие приурочено к старту курса "Observability: мониторинг, логирование, трейсинг", на котором вы научитесь строить эффективные системы мониторинга, работать с Prometheus, Grafana, ELK и другими инструментами, визуализировать метрики.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Системный администратор

☁️ Cosmos-Server

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

Независимо от того, есть ли у вас сервер, NAS или Raspberry Pi с приложениями такими как Plex, HomeAssistant или даже блог, Cosmos — идеальное решение для их запуска и защиты. Просто установите Cosmos на свой сервер и подключайтесь к приложениям через него, чтобы сразу получить встроенную безопасность и надёжность для всех ваших сервисов.

Cosmos это:

🔹App Store 📦📱
Для простой установки и управления приложениями: удобные инсталляторы, автоматические обновления и проверки безопасности. При этом можно использовать и ручные методы установки — например, импорт файлов docker-compose или работу через CLI Docker.

🔹Storage Manager 📂🔐
Удобное управление дисками, включая паритетные диски и MergerFS.

🔹Network Storages 📡📂
На базе RClone: простой доступ к сетевым хранилищам (например, Dropbox), а также возможность шарить NFS/FTP и другие протоколы через UI, защищённый SmartShield.

🔹Reverse-Proxy 🔄🔗
Обратный прокси для контейнеров, других серверов или статических папок/SPA с автоматическим HTTPS и удобным интерфейсом.

🔹Authentication Server 🔐👤
Сильная безопасность, многофакторная аутентификация и поддержка разных стратегий (OpenID, форвард-заголовки, HTML-формы).

🔹Customizable Homepage 🏠🖼
Единая стартовая страница для доступа ко всем приложениям — красивая и настраиваемая.

🔹Container Manager 🐋🔧
Удобное управление контейнерами и их настройками, обновления и аудит безопасности. Включена поддержка docker-compose.

🔹VPN 🌐🔒
Безопасный доступ к приложениям из любой точки без открытия портов на роутере.

🔹Backups 📦🔒
Резервное копирование приложений с инкрементальными бэкапами, шифрованием и удалённым хранением (Restic под капотом).

🔹Monitoring 📈📊
Постоянный и реальный мониторинг с настраиваемыми оповещениями и уведомлениями о любых проблемах.

🔹Identity Provider 👦👩
Управление пользователями: приглашайте друзей и родных без передачи паролей, пусть они сами запросят смену пароля по email.

🔹SmartShield technology 🧠🛡
Автоматическая защита приложений без ручных настроек (анти-бот, анти-DDoS, теперь также TCP-защита для FTP, SSH, игр и др.).

🔹CRON 🕒🔧
Планировщик задач на сервере или внутри контейнеров.

Создано, чтобы быть:

🔹Простым в использовании 🚀👍
Лёгкая установка и управление через веб-интерфейс с любого устройства.

🔹Мощным 🧠🔥
Простота не в ущерб гибкости: при желании можно работать через терминал.

🔹Удобным для пользователя 🧑‍🎨
Подходит как новичкам, так и опытным — легко интегрируется в существующую среду и новые решения.

🔹Безопасным 🔒🔑
Единая учётная запись для всех приложений, шифрование данных, многофакторная аутентификация и поддержка OpenID. Безопасность заложена в основу, а не добавлена потом.

🔹Анти-бот 🤖❌
Комплекс мер для защиты от ботов: детекция по типовым признакам, IP-фильтрация и другое.

🔹Анти-DDoS 🔥⛔️
Переменные таймауты и троттлинг, ограничение по IP и гео-блокировка.

🔹Модульным 🧩📦
Лёгкое добавление новых функций и интеграций — запускайте только то, что нужно (например, без Docker, без БД или без HTTPS).


https://github.com/azukaar/Cosmos-Server

👉 @i_odmin

Читать полностью…

Системный администратор

Linux Mint получил встроенную поддержку входа по отпечатку пальца

В последнем ежемесячном обзоре новостей от команды Linux Mint разработчики анонсировали интегрированную поддержку входа по отпечатку пальца. Новая функция появится в Linux Mint 22.2, работающем на Fingwit.

Fingwit работает на новом XApp, созданном разработчиками Mint. Он обрабатывает обнаружение сканера отпечатков пальцев и запись отпечатков. После настройки пользователь может использовать свой отпечаток пальца для экрана входа, заставки, аутентификации команд sudo и любых других административных действий, которые выводят всплывающее диалоговое окно пароля (pkexec).

Fingwit использует fprintd для бэкенд-работы, но разработчики Mint говорят, что пользовательский модуль аутентификации сможет обнаруживать сложные случаи, когда сканирование отпечатка пальца может вызвать сбой. Например, если домашний каталог зашифрован, то расшифровки необходим пароль при входе в систему. Простое использование отпечатка пальца приведет к сбою сеанса. Fingwit в этот момент динамически запрашивает пароль.

Команда Mint заявляет, что Fingwit сможет работать «в любой среде рабочего стола и в любом дистрибутиве Linux».

Значительным стимулом для этой разработки стала продолжающаяся работа команды с Framework. Тестирование оборудования компании подтолкнуло команду Mint к поддержке функций, встроенных в современные ноутбуки.

Команда также анонсировала множество других изменений. В рамках этой работы основные приложения, такие как gnome-calendar, simple-scan (сканер документов) и baobab (анализатор использования диска), будут обновлены до своих новых версий libAdwaita. Чтобы решить давнюю проблему с игнорированием системных тем приложениями libAdwaita, разработчики исправили библиотеку.

Команда предупредила пользователей старых версий о том, что серия Linux Mint 20.x, которая включает версии 20, 20.1, 20.2 и 20.3, официально завершила свою работу в апреле 2024 года. Система продолжит работать, но больше не будет получать обновления безопасности из официальных репозиториев, что сделает её уязвимой. Команда предложила два варианта. Рекомендуемый путь — установка более новой версии (22.1), которая будет поддерживаться до 2029 года. В качестве альтернативы можно опробовать обновление на месте, которое представляет собой многоэтапный процесс перехода с 20.x до 21.3.

В январе 2025 года состоялся релиз стабильной версии Linux Mint 22.1 «Xia», основанной на пакетной базе Ubuntu 24.04 LTS (Noble Numbat), а также на ядре Linux 6.8. Доступны для скачивания сборки на Cinnamon 6.4 (со встроенной функцией Night Light, поддерживающей как XOrg, так и Wayland), Xfce и MATE.

https://blog.linuxmint.com/?p=4850

👉 @i_odmin

Читать полностью…

Системный администратор

Как серверные приложения и микросервисы
взаимодействуют через сеть?

Хотите научиться подбирать правильные протоколы для вашей системы?

Откройте для себя все особенности работы с сетевыми протоколами на открытом уроке курса «System Design».

Мы подробно рассмотрим HTTP/2, HTTP/3, gRPC и WebSocket, а также научим выбирать оптимальные технологии для вашего проекта.

🚀 Знание сетевых протоколов — ключ к построению стабильных, быстрых и масштабируемых веб-приложений.
Пройдите урок и получите навыки, которые улучшат архитектуру ваших решений.

Встречаемся 10 июня в 20:00 МСК

➡️ Регистрация уже открыта: https://vk.cc/cMCIpR

Урок проходит в преддверии старта курса «System Design». Участники вебинара получат скидку на курс, плюс дополнительный 🎁 промокод SD_5 до 16.06.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Системный администратор

Устали сами собирать и обслуживать серверы?

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

Yandex BareMetal дает возможность арендовать выделенный сервер готовой конфигурации в ЦОДе провайдера за минуты. Парк оборудования составляют тысячи серверов готовых конфигураций. Забудьте про обслуживание и замену комплектующих — арендуйте нужный сервер на день, месяц или год при необходимости.

BareMetal поддерживает работу по API, SSH или через KVM: устанавливайте любую ОС, виртуализацию и софт.

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

Если планируете миграцию, сейчас действует акция с удвоенной скидкой → подробнее.

Читать полностью…

Системный администратор

🤖❓ Как архитектору 1С эффективно использовать ИИ?

В мире 1С архитекторы всё чаще сталкиваются с необходимостью самостоятельно принимать решения, документировать и актуализировать их. Как ускорить этот процесс и минимизировать риски ошибок?

На открытом уроке мы покажем, как современные ИИ-инструменты (GigaChat, DeepSeek, Qwen) могут существенно ускорить анализ архитектуры и генерацию документации. Вы научитесь интегрировать ИИ в повседневные задачи и сможете оптимизировать свою работу.

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

⏰ Урок в преддверие старта курса «Архитектор 1С», все участники получат скидку на обучение. Встречаемся 19 июня в 19:00 МСК!

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить: https://vk.cc/cMTVzA

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Системный администратор

🙀Ваш пароль был украден, измените его по ссылке…
Сможете ли вы распознать фишинг?
 
С каждым годом фишинг становится все изощреннее, а противостоять мошенникам — все сложнее. Один из ведущих провайдеров IT-инфраструктуры Selectel подготовил квиз с популярными схемами краж данных. Он напомнит, как важно сохранять бдительность в интернете.
 
Получится ли у вас раскрыть коварные замыслы мошенников?
 
Проверьте свои знания и внимательность в квизе от Selectel
 
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2Vtzqw43iu4

Читать полностью…

Системный администратор

Linux. Часть 2
Часть 1

Загрузчик GRUB в ОС Linux
Обратный ssh туннель в ОС Linux reverse shell
Мониторинг и восстановление программного RAID в Linux
QEMU KVM управление с помощью qemu команд
Российский межсетевой экран Ideco UTM год использования
Как переводить инфраструктуру на Linux
Snap или Flatpak в чем различия
Оперирование с LVM Работа с мгновенными снимками

источник

👉 @i_odmin

Читать полностью…

Системный администратор

Дыра в щите Cloudflare: как атака на Jabber.ru вскрыла проблему, о которой молчат c 2023

Думаю, многие помнят позапрошлогодний инцидент с Man-in-the-Middle атакой на XMPP-сервис jabber.ru. Эта история наделала много шума, но, как мне кажется, главный вывод из неё так и не был усвоен широкой аудиторией. А зря. Потому что эта атака вскрыла системную уязвимость в процессе выдачи TLS сертификатов, которая напрямую касается миллионов сайтов, особенно тех, кто доверяет свою безопасность Cloudflare.

Я поднял эту тему на форуме Cloudflare 23 дня назад, но, как и в случае с другими подобными запросами, ответа не получил. Поэтому я здесь, чтобы разложить всё по полочкам вам.

https://habr.com/ru/articles/918570/

👉 @i_odmin

Читать полностью…

Системный администратор

🚗 Как найти кратчайший маршрут с помощью Apache Spark и GraphFrames

Разбираем кейс на реальных данных из OpenStreetMap — ищем оптимальный маршрут

🔍 Что делаем
1. Загружаем граф дорог города с помощью OSMnx
2. Сохраняем вершины и ребра с координатами, скоростями и геометрией
3. Загружаем всё в Spark
4. Находим кратчайший путь с помощью GraphFrames

📍 1. Скачиваем карту и строим граф улиц


import osmnx as ox

# Загрузка данных о дорогах Москвы
G = ox.graph.graph_from_place("Moscow", network_type="drive")

# Отображение дорог на карте
moscow_gdf = ox.geocoder.geocode_to_gdf("Moscow")
fig, ax = ox.plot.plot_graph(G, show=False, close=False, bgcolor="#111111", edge_color="#ffcb00", edge_linewidth=0.3, node_size=0)
moscow_gdf.plot(ax=ax, fc="#444444", ec=None, lw=1, alpha=1, zorder=-1)

# Настройка границ карты
margin = 0.02
west, south, east, north = moscow_gdf.union_all().bounds
margin_ns = (north - south) * margin
margin_ew = (east - west) * margin
ax.set_ylim((south - margin_ns, north + margin_ns))
ax.set_xlim((west - margin_ew, east + margin_ew))
plt.show()


📁 2. Сохраняем геометрическое описание города в формате GeoJSON и данные о вершинах и рёбрах в формате CSV

with open('Moscow.geojson', 'w') as file:
file.write(moscow_gdf.to_json())

nodes = G.nodes(data=True)
with open('nodes.csv', 'a') as file:
file.write("id,lat,lonn")
for (node, data) in nodes:
file.write("%d,%f,%fn" % (node, data.get("y"), data.get("x")))

edges = G.edges(data=True)
def decode_maxspeed(maxspeed):
match maxspeed:
case str():
match maxspeed.lower():
case "ru:urban": return 60
case "ru:rural": return 90
case "ru:living_street": return 20
case "ru:motorway": return 110
case _: return int(maxspeed)
case list(): return min(list(map(decode_maxspeed, maxspeed)))
case _: return maxspeed

with open('edges.csv', 'a') as file:
file.write("src,dst,maxspeed,length,geometryn")
for (src, dst, data) in edges:
maxspeed = decode_maxspeed(data.get("maxspeed", 999))
length = float(data.get("length"))
geometry = shapely.wkt.dumps(data.get("geometry"))
file.write("%d,%d,%d,%f,%sn" % (src, dst, maxspeed, length, geometry))


3. Используем библиотеку GraphFrames для обработки графов на Apache Spark


from pyspark.sql import SparkSession

spark = SparkSession.builder
.config("spark.jars.packages", "graphframes:graphframes:0.8.4-spark3.5-s_2.12")
.master("local[*]")
.appName("GraphFrames")
.getOrCreate()

nodes = spark.read.options(header=True).csv("nodes.csv")
edges = spark.read.options(header=True).csv("edges.csv")

# Вычисление времени прохождения рёбер
edgesT = edges.withColumn("time", edges["length"] / edges["maxspeed"])

# Построение графа
from graphframes import *

g = GraphFrame(nodes, edgesT)


🧭 4. Ищем кратчайший путь по времени
например, от Измайлово до ЖК Зиларт

src = "257601812"
dst = "5840593081"

paths = g.shortestPaths(landmarks=[dst])
paths.filter(F.col("id") == src).show(truncate=False)


💡 Результат: 40 шагов от точки A до точки B.

Такой подход легко масштабируется на миллионы маршрутов. Используйте Spark и GraphFrames для построения логистических моделей, маршрутизации и городского планирования.

🚀 Хотите прокачаться в работе с Big Data? Изучайте Spark! Записывайтесь на курс Spark Developer от OTUS — учитесь на реальных данных и продвинутых кейсах: https://vk.cc/cMSTdo

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Системный администратор

🔥 Бэкап базы данных MySQL с автоматической ротацией 🔄

Если у тебя есть сервер с MySQL/MariaDB, автоматический бэкап с ротацией — must have для спокойной жизни 😌

Вот простой скрипт, который:

1. Делает дамп всех баз
2. Сохраняет в архив с датой
3. Удаляет архивы старше N дней


#!/bin/bash
# автор: /channel/bash_srv

# Папка для бэкапов
BACKUP_DIR="/opt/backups/mysql"
# Кол-во дней хранения
RETENTION_DAYS=7
# Дата для имени файла
DATE=$(date +'%Y-%m-%d_%H-%M')

# Учетные данные
DB_USER="root"
DB_PASS="mypassword"

mkdir -p "$BACKUP_DIR"

# Делаем дамп
mysqldump -u"$DB_USER" -p"$DB_PASS" --all-databases | gzip > "$BACKUP_DIR/mysql_backup_$DATE.sql.gz"

# Удаляем старые бэкапы
find "$BACKUP_DIR" -type f -name "*.gz" -mtime +$RETENTION_DAYS -delete

echo "✅ Бэкап MySQL завершён: $DATE"


🛠 Рекомендуется повесить в крон, например, на каждый день в 3:00:


0 3 * * * /path/to/backup_mysql.sh


👀 Теперь бэкапы всегда под контролем, а лишние файлы не засоряют диск.

👉@bash_srv

Читать полностью…

Системный администратор

🛠 SSH-клиент Termius — удобный инструмент для админа

Если тебе нужен кроссплатформенный SSH-клиент с удобным интерфейсом и синхронизацией между устройствами — присмотрись к Termius.

💡 Что умеет Termius:

✅ Поддержка SSH, Mosh и Telnet
✅ Управление серверами по группам и тегам
✅ Поддержка ключей SSH и Snippets (сниппеты команд)
✅ Синхронизация между десктопом и смартфоном
✅ Локальные терминалы и SFTP в одном окне
✅ Темы, вкладки, автодополнение, кастомизация UI

📱 Где работает:

* Windows / macOS / Linux
* iOS / Android
* Web-версия в браузере

⚙️ Кому подойдёт:

* Тем, кто часто переключается между машинами
* Админам, которые работают на ходу (мобильное приложение на высоте)
* Тем, кто устал от кучи конфигов и хочет порядок в соединениях

🧩 Есть ложка дёгтя:

* Некоторые функции (синхронизация, SFTP, Snippets) доступны только в Pro-версии
* Цена подписки может кусаться, особенно для индивидуального использования

https://termius.com/

👉 @i_odmin

Читать полностью…

Системный администратор

📊 Хотите стать экспертом в Observability? Начните с теста!

Курс OTUS «Observability: мониторинг, логирование, трейсинг» — это практическое обучение работе с Prometheus, Grafana, ELK, Loki, Jaeger и другими инструментами. Вы научитесь строить отказоустойчивые системы мониторинга и логирования, настраивать алерты и визуализировать данные.

🔍 Пройдите вступительное тестирование, чтобы:

▪️Оценить свой текущий уровень знаний.

▪️Узнать, насколько вы готовы к курсу.

📅 Тест занимает около 30 минут. Результаты будут отправлены на вашу электронную почту. Повторное прохождение теста доступно через 3 дня.

👉 Пройти тестирование
https://vk.cc/cMSwTp

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Системный администратор

Microsoft выпустила скрипт на PowerShell, который создаёт папку «C:\inetpub», если она была удалена в Windows 11

Microsoft выпустила скрипт на PowerShell под названием Set-InetpubFolderAcl, который создаёт папку «C:\inetpub», если она была удалена в Windows 11. Это необходимо, даже если в системе нет Internet Information Services (IIS), причём эту папку не нужно удалять из-за соображений безопасности.

https://habr.com/ru/news/916380/


👉 @i_odmin

Читать полностью…

Системный администратор

Как стать мастером Linux 🐧

1. Исследуйте проблему
– Ищите информацию об ошибке в официальной документации (man-страницы, info), на сайтах дистрибутивов и в специализированных ресурсах.

2. Проверяйте логи и конфиги
– Анализируйте системные журналы (/var/log), настройки сервисов и параметры ядра, чтобы понять контекст возникновения проблемы.

3. Обращайтесь к профессиональным сообществам
– Читайте темы на форумах, в списках рассылок (LKML) и чатах (IRC, Matrix), даже если решение помечено неофициальным.

4. Разбирайтесь в глубине
– Исследуйте зависимые модули, исходный код и взаимодействие компонентов (сеть, файловая система, PAM), чтобы выявить коренную причину.

5. Автоматизируйте и повторяйте
– Скриптуйте типовые задачи, фиксируйте опыт в вики или Git, регулярно практикуйтесь и обновляйте свои знания. ♻️

👉 @i_odmin

Читать полностью…

Системный администратор

Bash-совет: анализ неудачных SSH-логинов и бан «горячих» IP 🔒🐚

Хотите быстро узнать, какие IP вызывают максимум неудачных попыток входа в SSH, и оперативно заблокировать самых настырных? Ниже скрипт:


#!/usr/bin/env bash
# ssh_fail_analyzer.sh
# Анализ неудачных SSH-попыток и вывод TOP-10 IP

LOG_FILE="/var/log/auth.log" # путь к логам (для CentOS: /var/log/secure)
TOPN=10 # сколько IP показывать

echo "Топ $TOPN IP с неудачными SSH-входами:"
grep -E "Failed password for" "$LOG_FILE" \
| grep -oP '(?<=from )[\d\.]+' \
| sort \
| uniq -c \
| sort -rn \
| head -n "$TOPN"


Как это работает

1. grep -E "Failed password for"
Ищем все строки с неудачными попытками.
2. grep -oP '(?<=from )\[\d.]+'
С помощью PCRE-регулярки достаём только IP-адреса после слова "from".
3. sort | uniq -c | sort -rn
Сортируем, считаем вхождения и выводим в порядке убывания.
4. head -n "\$TOPN"
Ограничиваем результат топ-10.


🛠 Можно добавить в crontab ежедневный запуск и автоматическую отправку отчёта на почту или сразу бан «горячих» IP через iptables:


# в crontab: каждый день в 00:10
10 0 * * * /path/to/ssh_fail_analyzer.sh | mail -s "SSH Fail Report" admin@example.com


Или сразу блокировать подозрительные IP, если они превысили порог:


THRESHOLD=50
for ip in $(grep -E "Failed password for" "$LOG_FILE" \
| grep -oP '(?<=from )[\d\.]+' \
| sort | uniq -c \
| awk -v t="$THRESHOLD" '$1 > t {print $2}'); do
iptables -I INPUT -s "$ip" -j DROP
echo "$(date): Заблокирован $ip за превышение $THRESHOLD неудачных попыток" >> /var/log/ssh_ban.log
done


👉@bash_srv

Читать полностью…

Системный администратор

Почему нельзя парсить вывод ls(1)

Команда ls(1) довольно хорошо показывает атрибуты одного файла (по крайней мере в некоторых случаях), но когда вы запрашиваете список файлов, возникает серьёзная проблема: в Unix имя файла может содержать почти любой символ — пробелы, переносы строк, запятые, символы конвейера и почти всё, что только можно использовать в качестве разделителя, за исключением NUL.

По умолчанию, если ls выводит не в терминал, имена файлов разделяются символами новой строки. Это нормально до тех пор, пока в имени не встретится перенос строки. Поскольку немногие реализации ls умеют завершать имена NUL-ом вместо перевода строки, получить безопасный список имён с помощью ls практически невозможно — по крайней мере, портируемо.


$ touch 'a space' $'a\nnewline'
$ echo "don't taze me, bro" > a
$ ls | cat
a
a
newline
a space


На первый взгляд кажется, что у нас два файла a, один newline и один a space. Но если выполнить ls -l, выясняется совсем другое:


$ ls -l
total 8
-rw-r----- 1 user user 19 Mar 27 10:47 a
-rw-r----- 1 user user 0 Mar 27 10:47 a?newline
-rw-r----- 1 user user 0 Mar 27 10:47 a space


Ни человек, ни программа не могут сказать по выводу ls, где именно заканчивается имя файла: это слово? Это строка? Нет однозначного ответа. Более того, иногда ls искажает символы, заменяя перевод строки на вопросительный знак (или \n) в зависимости от реализации. Вывод ls нельзя считать достоверным представлением имён файлов.


Перечисление файлов или выполнение операций с файлами

Если вам нужно просто обойти все файлы в текущей директории, используйте цикл for и глоб:


# Хорошо!
for f in *; do
[ -e "$f" ] || [ -L "$f" ] || continue
# ... обработка "$f"
done


Для пустой папки можно включить опцию nullglob (только в Bash), чтобы она не возвращала литерал *:


# Bash
shopt -s nullglob
for f in *; do
# ... обработка "$f"
done


Никогда не делайте так:


# Плохо! Не делайте этого!
for f in $(ls); do
...
done

# Плохо! То же самое с find:
for f in $(find . -maxdepth 1); do
...
done

arr=($(ls))
for f in "${arr[@]}"; do
...
done

# Ещё хуже:
f() {
local f
for f; do
...
done
}
f $(ls)


Если вам нужна сортировка по времени модификации (mtime), не делайте ls -t | head -1. Воспользуйтесь специальными рекомендациями по Bash или напишите свой скрипт на Perl, который сам будет открывать директорию и сортировать файлы.

Лучший вариант — перенести время в имя файла в формате YYYYMMDD, тогда порядок глоба совпадёт с порядком по mtime.

Или используйте find с NUL-разделителем:


find . -type f -print0 | while IFS= read -r -d '' filename; do
# ... обработка "$filename"
done


Часто вам не нужен список имён вообще, а нужно сразу выполнить команду над файлами — find умеет передавать имена напрямую в другие команды без промежуточного вывода.


Получение метаданных файла

Если нужна только размерность файла, используйте портируемый POSIX-способ:


size=$(wc -c < "$file")


Некоторые реализации wc читают файл целиком, но большинство применяют fstat(2).

Для других метаданных удобно пользоваться GNU-утилитами stat и find -printf:


# GNU stat
size=$(stat -c %s -- "$file")

# GNU find
totalSize=$(find . -maxdepth 1 -type f -printf %s+)


Если всё-таки придётся парсить вывод ls -l, соблюдайте строгие правила:

1. Запускайте ls только для одного файла: разделителей для надёжного парсинга не существует.
2. Не разбирайте дату/время — формат сильно зависит от платформы и локали.
3. Используйте опции -d и --, чтобы избежать проблем с директориями и именами, начинающимися с -.
4. Устанавливайте локаль C/POSIX, чтобы вывод был предсказуем.
5. Для владельца и группы лучше -n вместо -l, чтобы получить числовые идентификаторы.

Надёжный пример:


IFS=' ' read -r mode links owner _ < <(LC_ALL=C ls -nd -- "$file")
mode=${mode:0:10}


👉 @i_odmin

Читать полностью…

Системный администратор

💡Быстрый совет по Linux

Нужно повторять команду каждые несколько секунд?

Используйте:


$ watch -n 2 df -h


Эта команда выполняет df -h каждые 2 секунды. Отлично подходит для отслеживания использования диска, нагрузки или изменений размера логов.

Нажмите q, чтобы выйти.

👉 @i_odmin

Читать полностью…

Системный администратор

CUBIC или как собрать свой Ubuntu

Несколько месяцев назад мне стало интересно, могу ли я собрать свою сборку или даже дистрибутив linux. Как оказалось (внезапно) я могу сделать и то и другое. Но в этой статье мы поговорим именно про создание своей сборки.

Итак, мы будем использовать CUBIC и создавать свою сборку на основе Ubuntu. CUBIC - Custom Ubuntu ISO Creator, эта программа позволяет особо не заморачиваясь собрать полноценную сборку базирующуюся на Ubuntu. Давайте рассмотрим этот процесс подробнее.

https://habr.com/ru/articles/761532/

👉 @i_odmin

Читать полностью…
Subscribe to a channel