Linux Skill - Освой Linux c нуля до DevOps – Telegram
Linux Skill - Освой Linux c нуля до DevOps
11.2K subscribers
54 photos
103 videos
482 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

📩 По всем вопросам: @chorapov

РКН https://vk.cc/cMUwm4
Download Telegram
Media is too big
VIEW IN TELEGRAM
Собеседование системного администратора часть №2

🌐 Источник:
https://www.youtube.com/watch?v=dBme95EMMx0
Хотите вместе гайд по Bash соберем? Можно выбрать несколько вариантов
Anonymous Poll
90%
Да
4%
Нет
17%
🙄 Лучше бы посты нормальные делал
Linux Skill - Освой Linux c нуля до DevOps pinned «Хотите вместе гайд по Bash соберем? Можно выбрать несколько вариантов»
💡 Systemd обещает быструю загрузку, но твоя система тормозит?

Привет, цифровой архитектор! 👋

Классика: сам демон работает быстро, но вынужден ждать ленивые юниты, которые создают "критическую цепочку" задержек. Покажу, как быстро найти виновника и устранить проблему с помощью двух команд.

1. 🔍 Кто виноват: Анализ времени запуска

Команда systemd-analyze blame покажет точное время, которое каждый юнит потратил на запуск, сортируя их по убыванию.


# Выводит список юнитов, отсортированный по времени запуска
systemd-analyze blame

Назначение: Быстрый поиск юнитов, которые стартуют медленнее всего.

2. ⛓️ Поиск узкого места: Критическая цепочка

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


# Анализ цепочки зависимостей, которая замедляет запуск системы
systemd-analyze critical-chain

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

Частый пример: docker.service ждет поднятия сети (systemd-networkd-wait-online.service). Это бессмысленно, если у Docker нет жесткой зависимости от сети на старте.

3. 🛠️ Устраняем задержку через override

Чтобы «отвязать» Docker от медленной сети, используем правильный подход systemd — не трогаем оригинальный файл юнита, а создаем прокладку override.conf:


# Открыть редактор для создания override.conf
sudo systemctl edit docker.service

# В открывшийся файл вставьте:
[Unit]
After=network.target
Wants=network.target

Назначение: Переопределяем параметры After и Wants, чтобы Docker не ждал некритичные сетевые службы.

После этого не забудьте применить изменения:


# Применить изменения
sudo systemctl daemon-reload
sudo systemctl restart docker


Важно: Использование systemctl edit создает отдельный файл, который не будет перезаписан при обновлении пакета Docker.

💡 Вывод: Регулярное использование systemd-analyze позволяет держать под контролем стартовую производительность сервера и избегать фантомный задержек, которые съедают рабочее время.

#Linux #systemd #CLI #DevOps #Optimization
👍13🔥1
🚀 Systemd + Bash: Мониторинг зависшего PHP-FPM за 5 строк кода

Привет, повелитель терминала!

Твой php-fpm начал зависать в любой момент и перестал отвечать на запросы? Это происходит из-за исчерпания ресурсов или процессов, ушедших в непрерываемое ожидание.

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

📌 Авто-чистка зависших FPM

Этот скрипт ищет дочерние процессы php-fpm в состоянии D и принудительно завершает их, чтобы твой пул восстановился, используя базовые принципы Bash-сценариев.

# Ищем процессы FPM, застрявшие в D-состоянии
STUCK_PIDS=$(ps -o pid=,state= -C php-fpm | grep D | awk '{print $1}')

if [ -n "$STUCK_PIDS" ]; then
# Найдено: принудительно убиваем зависшие процессы (SIGKILL)
# Используй kill -9 только в крайних случаях!
echo "$STUCK_PIDS" | xargs kill -9

# Перезапускаем сервис для гарантированного восстановления
systemctl restart php-fpm
fi


💡 Фишка: Ты можешь запускать этот скрипт через cron или systemd.timer, чтобы автоматизировать траблшутинг. Это гарантирует стабильность твоего сервиса.

#Linux #Bash #DevOps #автоматизация #мониторинг
👍4
Media is too big
VIEW IN TELEGRAM
🤖 Синхронизация каталогов: Ультимативный Bash-гайд для сисадмина

Эй, технарь! Готов автоматизировать рутину?

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

📃 Текстовая инструкция

#Linux #Bash #Автоматизация #rsync #Cron #CLI
👍8🔥2
Какая команда используется для быстрого постраничного просмотра содержимого файла в консоли, предоставляя удобную прокрутку?
Anonymous Quiz
23%
more
23%
cat
8%
tail
45%
less
👍12👎4🔥1
Какой менеджер пакетов используется для работы с пакетами формата DEB в дистрибутивах Debian/Ubuntu?
Anonymous Quiz
11%
rpm
7%
yum
77%
dpkg
6%
dnf
👍9🔥3👀2
Коллеги, добрый день! Хочу поделиться первыми успехами нашего нового курса «Кибергигиена для людей с низким IQ». Занятия проходят в переговорке «Альфа», так как там нет розеток в зоне досягаемости слушателей. Итак, первые результаты:
1. Модуль «Пароли». Усвоили, что «12345» — это плохо. Перешли на «123456!». Прогресс налицо. Артём предложил каждый квартал при смене пароля добавлять очередную цифру текущего года. Коллеги были впечатлены и предложили его кандидатуру на должность ведущего архитектора ИБ.
2. Модуль «Фишинг». После объяснения, что почтовый ящик support@wilbderries[.]ru надо рассматривать, как поддельный, выяснилось, что Лариса Ивановна не видит разницы между «b» и «d». Мы пересматриваем программу. Добавляем модуль «Буквы: сходства и различия».
3. Практическое занятие «Подозрительная ссылка». 100% слушателей (выборка: 5 человек) успешно прошли тест, кликнув на баннер «ВЫ ВЫИГРАЛИ АЙФОН!».
4. Вопрос от аудитории: «А если я получу письмо от гендира с просьбой срочно купить Apple Gift Card и переслать ему код, это тоже мошенники?». Я не ответил, вышел покурить. Наш гендир и правда просил её купить, чтобы установить «Как достать соседа» себе на айфон…
🔥30👍14👀1
Media is too big
VIEW IN TELEGRAM
😀 12 лет прошло, и ничего нового
🌐 Источник: https://www.youtube.com/watch?v=uj0XnJeWXes
👍11👀3🔥2
🔑 Как автоматизировать multi-tenancy в Nginx через Redis/etcd.

Привет, опытный инженер! 👋

Внедрение multi-tenancy всегда сопровождается одной и той же болью: как быстро маршрутизировать входящий трафик к нужному бэкенду, если клиенты (арендаторы) добавляются постоянно? Хуже того, если мы используем stream (Layer 4) для RDP/SSH/VPN, где ручная перезагрузка Nginx из-за нового конфига — это недопустимый downtime.

Статический конфиг нам не подходит. Решение — динамическая маршрутизация на основе SNI (Server Name Indication) с использованием модуля njs, где список арендаторов хранится во внешней БД (Redis или etcd).

📌 Динамический Upstream по SNI с njs

На L4 Nginx (или Angie) может прочитать имя сервера (SNI) во время TLS-рукопожатия и на основе этого имени принять решение о маршрутизации. Модуль njs позволяет сделать этот процесс динамическим.

Шаг 1. Настраиваем njs для чтения SNI

Нам нужен скрипт на njs, который возьмёт имя хоста из SNI и, используя внешний модуль, найдёт соответствующий upstream в Redis или etcd (имитация логики):

// sni_router.js
function route(s) {
// Получаем имя хоста из SNI
var hostname = s.ssl_server_name;

// Здесь должна быть логика поиска в Redis/etcd
// Для примера, ищем в предопределенном словаре:
var tenantMap = {
'client_a.example.com': 'backend_pool_a',
'client_b.example.com': 'backend_pool_b'
};

if (tenantMap[hostname]) {
return tenantMap[hostname];
}

// Если арендатор не найден, используем upstream по умолчанию
return 'default_pool';
}


Шаг 2. Конфигурируем stream и njs

В конфигурации Nginx (Angie) в блоке stream мы загружаем скрипт и используем его результат в директиве upstream.

# Загрузка njs модуля и скрипта
js_include sni_router.js;
js_set $backend_name sni_router.route;

stream {
upstream backend_pool_a {
server 10.0.0.1:443;
}
upstream backend_pool_b {
server 10.0.0.2:443;
}
upstream default_pool {
server 10.0.0.10:443;
}

server {
listen 443 ssl;
ssl_preread on; # Важно: позволяет Nginx читать SNI

# Динамически определяем upstream на основе результата njs-скрипта
proxy_pass $backend_name;
}
}


💡 Вывод
Такой подход позволяет полностью разделить список арендаторов (который может храниться в Redis/etcd и обновляться мгновенно) от статического конфига Nginx. Nginx (Angie) перечитывает njs-переменную $backend_name для каждого нового соединения, обеспечивая высокую доступность и нулевой downtime при добавлении новых клиентов. Это критически важно для масштабируемой и отказоустойчивой архитектуры.

#Nginx #DevOps #Stream #SNI #MultiTenancy #njs
🔥 Облегчи виртуализацию с Incus: простой старт

💻 Привет, мастер консолей и виртуализации!

🔍 Если тебе Proxmox кажется слишком громоздким и хочется легкого решения для одиночного хоста — Incus именно то, что нужно: простая установка и управление через CLI с мощным функционалом.

📌 Основные возможности Incus:

- Легкий запуск LXC и Docker контейнеров, VM на QEMU+KVM
- Использование официальных образов linuxcontainers.org
- Поддержка разного хранения: ZFS, LVM, Btrfs, Ceph и др.
- Управление через CLI и веб-интерфейс
- Настройка сети и NAT с DNSMASQ IPAM

# Установка пакетов на Debian 13
apt install incus incus-base qemu-system

# Инициализация административного пользователя
incus admin init

# Список доступных образов Debian
incus image list images:debian

# Запуск контейнера Debian 13
incus launch images:debian/13 debian-ct --storage default

# Подключение к контейнеру
incus exec debian-ct -- bash

# Запуск виртуалки Ubuntu
incus launch images:ubuntu/noble ubuntu-vm --vm --storage default

# Вход в Ubuntu VM
incus exec ubuntu-vm -- bash

# Основные команды для обзора
incus ls
incus info ubuntu-vm
incus storage list
incus network list


💡 Теперь ты знаешь, что Incus — это легкое и гибкое решение для виртуализации без ограничений Proxmox. Попробуй и сам убедись!

🔗 Официальный сайт и документация: linuxcontainers.org

🔗 GitHub репозиторий Incus: https://github.com/lxc/incus

#Linux #DevOps #Виртуализация #Incus #LXC #KVM #Linux_err24
This media is not supported in your browser
VIEW IN TELEGRAM
🌐 Как настроить сеть в Ubuntu вручную за 6 минут

👋 Привет, мастер консоли!

Нужно настроить статический IP в Ubuntu через терминал? Показываю весь процесс от определения сетевого адаптера до настройки DNS. Всё просто и быстро.
🔗 Источник https://www.youtube.com/

#ubuntu #linux #сеть #статическийip #sysadmin #терминал #networking
👍14
Какая команда используется для завершения процесса, основываясь на его имени, а не на его PID, при этом завершаются все экземпляры этого процесса?
Anonymous Quiz
41%
kill
43%
killall
8%
pidof
8%
fuser -k
👍6👎1
Какая команда позволяет перевести запущенное задание из фонового режима на передний план?
Anonymous Quiz
63%
fg
9%
disown
14%
jobs
14%
bg
👍11👀1
Коллеги, новый ИИ-ассистент для код-ревью начал слишком серьёзно относиться к своей работе.
Этот подонок самостоятельно научился анализировать комментарии в коде. Теперь если вы напишете «// TODO: переписать это когда-нибудь», он ответит: «Когда-нибудь наступило».
Самое страшное: он интегрировался с SIEM, проанализировал логи наших прошлых инцидентов и заявил: «Если бы меня слушали раньше, не пришлось бы восстанавливать данные из бекапов 2018 года».
Вот думаем, научитcя ли он писать заявления на увольнение до конца квартала.
👍16👀7👎1
Media is too big
VIEW IN TELEGRAM
🔐 SSH для сисадминов: безопасность и удобство за 17 минут

👋 Привет, защитник серверов!

Админ попросил SSH-ключ? Не знаешь, какой отправить? Разбираемся с созданием ключей, настройкой SSH-сервера, клиента и пробросом портов. Всё пошагово и с примерами.

Полезные ссылки из видео:

- Источник видео
- Пример sshd_config
- Пример ssh config
- Команды для прав на .ssh

#ssh #linux #безопасность #sysadmin #devops #туннелирование #ubuntu
👍12
🛡️ Укрепляем SSHD: Почему тебе стоит включить ключи Ed25519

Привет, цифровой архитектор!

Настройка демона SSHD (sshd), который обеспечивает безопасное удаленное подключение к твоему серверу по протоколу SSH, — это то, с чего начинается любая административная работа. Конфигурация OpenSSH-сервера обычно хранится в файле /etc/ssh/sshd\_config.

Доступ к TCP-порту 22 (порт SSH по умолчанию) желательно ограничивать от публичного доступа. Вот замечания по ключевым директивам, которые помогут тебе повысить безопасность:

1️⃣ Аутентификация по паролю

Ты можешь оставить аутентификацию по паролю (PasswordAuthentication yes) на всякий случай, потому что при использовании несловарного пароля подобрать его злоумышленнику практически нереально.


PasswordAuthentication yes


- Закрываем ботов: Если ты решишь полностью отключить аутентификацию по паролю (PasswordAuthentication no), это немедленно отсечет большинство ботов, которые пытаются подобрать пароли, и твой журнал будет менее замусорен.
- Защита от перебора: По умолчанию разрешено 6 попыток аутентификации (MaxAuthTries 6). Ты можешь ограничить это число, например, до четырех (MaxAuthTries 4).
- Пустые пароли: Директива PermitEmptyPasswords no должна быть включена всегда, чтобы запрещать вход с пустым паролем.

2️⃣ Аутентификация с использованием публичных ключей

Это более надежный метод, чем аутентификация по паролю. По умолчанию он включен (PubkeyAuthentication yes). OpenSSH поддерживает несколько типов ключей, включая RSA, ECDSA и Ed25519.

- Преимущества Ed25519: Ключи Ed25519 основаны на эллиптических кривых и многими считаются обеспечивающими превосходную безопасность по сравнению с RSA. На практике они также намного короче.
- Файл ключей: Твой открытый ключ, который ты используешь для аутентификации, должен быть скопирован в файл ~/.ssh/authorized_keys на удаленном хосте.


💡 Вывод:
Помни, что SSH предназначен для обеспечения безопасного входа в оболочку и шифрует все данные сеанса. Если ты используешь OpenSSH, то настройки сервера хранятся в файле /etc/ssh/sshd\_config.


#Linux #DevOps #Security #SSHD #Ed25519
👍11
📚 Где учить Zabbix бесплатно и эффективно?

👋 Эй, повелитель мониторинга!

Вот проверенные источники на русском языке:

1. Текстовый курс по Zabbix от практикующего специалиста
Подробные разборы от преподавателя с реальным опытом.
🔗 https://koobik.net/cources/zabbix

2. Демо курс Zabbix 6 на Stepik
Бесплатный урок из большого платного курса: установка, настройка сервера, подключение агентов.
🔗 https://stepik.org/course/226879/promo

3. Видеокурс "Zabbix с нуля до короля" на YouTube
Полный разбор: автообнаружение, мониторинг Mikrotik, интеграции и многое другое.
🔗 https://www.youtube.com/playlist?list=PLdQohrQ3OmqS2wo9MwFKJtnXcVH5SCOh8

4. Книга "Zabbix 7: мониторинг ИТ-инфраструктуры"
Издательство Packt при поддержке КРОК. Доступна в открытом доступе.

#zabbix #обучение #мониторинг #sysadmin #Linux_err24
🔥16👍5
💼 Системный администратор: зарплаты, рост и реальность профессии

👋 Привет, коллега по цеху!

Собрал опыт двух системных администраторов с 16 и 20 годами стажа. Разберём реальные зарплаты, карьерный путь, плюсы и минусы профессии, а также как войти в IT без курсов.

🎥 Источники видео с опытом экспертов
20 лет опыта системным администратором:
🔗 https://www.youtube.com/watch?v=QTbK3VFEzSs

16 лет опыта — полный гайд по профессии:
🔗 https://www.youtube.com/watch?v=QND_fewvcm4
👎1