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
Какая команда командной строки обычно используется для диагностики системы, которая «вяло реагирует» или «тормозит», выводя список процессов, потребляющих больше всего ресурсов, а также сведения о памяти и CPU?
Anonymous Quiz
10%
df -hT
6%
lsof
81%
top
3%
uname -a
👍12
Коллеги, вчера проводили учения по кибербезопасности. Сценарий провалился с треском. 95% сотрудников не открыли письмо «Вам повышают зарплату!», потому что сочли его нереалистичным. Горжусь вашим скептицизмом. Единственный, кто повёлся, — это гендир. Теперь он требует объяснить, почему это была учебная тревога, а не реальное предложение.
#linux_юмор #кибербезопасность
🔥22👍8
Media is too big
VIEW IN TELEGRAM
⚙️ Установка Ubuntu Server и CasaOS Пошаговое руководство

Привет, системный инженер!
Устал от сложной настройки базового Linux-сервера, когда тебе нужна простая и красивая панель управления? В этом гайде мы покажем, как быстро развернуть CasaOS на надежной базе Ubuntu Server для создания домашнего облака или мини-сервера с веб-интерфейсом.

🌐 Источник: https://www.youtube.com/watch?v=eTjIXKtSV94
#Linux #Ubuntu #Server #CasaOS #CLI #Sysadmin #Минигайд #DevOps
👍12🔥1👀1
🧠 Запусти аудит зарубежных IP за 1 секунду на своем VPS

Привет, техноэнтузиаст!

Купил свежий VPS, но не уверен, куда с нее можно дотянуться? Это частая боль: если сервер уже под гео-ограничениями, он бесполезен для работы с зарубежным софтом, GitLab CI или просто для проверки YouTube/TikTok.

Показывать, куда есть доступ, а куда нет, нужно быстро, без установки лишних пакетов. Китайские умельцы давно создали скрипт, который делает это одной командой. Он проверяет доступность YouTube, TikTok, ChatGPT, Gmail и другие сервисы, а также выдает информацию о гео IP адресе виртуалки.

📌 Bash-ванлайнер для аудита VPS
Этот скрипт скачивает и запускает проверку, выводя результат прямо в консоль. Важно: Запускать его нужно на свежеарендованной VPS.

# Скачать и запустить проверку доступности зарубежных сервисов (YouTube, TikTok, ChatGPT и др.)
curl -sL https://check.foreign.services.sh | bash


Как это работает:
1. curl -sL скачивает скрипт (содержит набор пингов и DNS-запросов к актуальным зарубежным IP).
2. | bash передает его сразу на выполнение в Bash. Результат выводится мгновенно.

💡 Вывод
Теперь ты за секунду знаешь, можно ли использовать эту VPS для работы с гео-зависимыми сервисами. Если проверка пройдена, можешь смело приступать к настройке.

#Linux #Bash #DevOps #VPS #CLI #Security
👍9👎1
🧠 Секрет: как определить скрипт Linux?

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

Все исполняемые сценарии (noscript) обычно начинаются с #! (Sha-bang). Проверь, является ли файл скриптом, используя head и этот фрагмент кода. Он основан на том, что команда head -c выводит заданное количество символов.


TESTCHARS=2
SHABANG='#!'
FILE="$1" # Берем имя файла из аргумента

# Проверяем первые 2 символа
if [[ $(head -c$TESTCHARS "$FILE") = "$SHABANG" ]]; then
echo " Файл $FILE — сценарий."
fi
👍3👎2
Media is too big
VIEW IN TELEGRAM
Собеседование системного администратора часть №1

🌐 Источник:
https://www.youtube.com/watch?v=r5dP3k9eP7E
👍5
Коллеги, вчера тестировали новую биометрическую защиту — датчик не узнаёт Никиту после обеда. До обеда — один человек, после плова — совсем другой.
🔥31👀7👍1
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