Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Примеры работы:
terraform show
Выводит текущее состояние инфраструктуры из файла terraform.tfstate.
terraform refresh
terraform state rm <resource_name>
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1😁1
Что делает команда mount -o remount,rw /?
Anonymous Quiz
9%
Перемонтирует корневую файловую систему в режиме “только чтение”
6%
Перемонтирует / как новую файловую систему
77%
Перемонтирует корень в режиме “чтение-запись” без перезагрузки
7%
Удаляет все монтирования и пересоздаёт их
👍8😁4
Протестировали для вас 4 инструмента мониторингов сайтов и серверов - и вот что получилось:
1️⃣ Uptime Kuma: OpenSource, полный контроль, уведомлений (Telegram, Discord и много других), нужно разворачивать и обслуживать сервер.
2️⃣ Kuma Cloud: Та же Uptime Kuma, только в облаке, работает из коробки за 30 секунд, ни каких заморочек, поддержка и авто-обновления.
3️⃣ UpTimeRobot: Бесплатный тариф - 50 мониторов, мало гибкости в настройках, ограниченные уведомления, сильно дороже предыдущих.
4️⃣ Overseer - Простота и минимализм, мало функций, нет детальной аналитики, дёшево.
✅ Почему Kuma Cloud - наш выбор?
- Быстрее, чем разворачивать самому
- Мощнее, чем UptimeRobot и Overseer
- Тесная интеграция с Telegram
✅ Почему Kuma Cloud - наш выбор?
- Быстрее, чем разворачивать самому
- Мощнее, чем UptimeRobot и Overseer
- Тесная интеграция с Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1🤝1
Профили пользователя Bash: как всё устроено и зачем это знать
Она запускается каждый раз, когда вы логинитесь в систему или открываете терминал. Поведение Bash при этом регулируется специальными профилями — системными и пользовательскими.
Разберём, как они работают и что с ними можно делать на практике.
Что происходит при запуске Bash?
Bash может работать в двух режимах: login shell (при входе в систему) и interactive non-login shell (обычное открытие терминала). В зависимости от сценария запуска, загружаются разные файлы:
При входе в систему (login shell):
⏺ /etc/profile — глобальный скрипт инициализации;
⏺ /etc/profile.d/*.sh — дополнительные скрипты, подключаемые через profile;
⏺ один из: ~/.bash_profile, ~/.bash_login, ~/.profile (в Ubuntu чаще всего это ~/.profile, ссылающийся на ~/.bashrc).
При запуске терминала (non-login shell):
• /etc/bash.bashrc или /etc/bashrc;
• ~/.bashrc.
Также есть ~/.bash_logout, который выполняется при выходе из сессии.
Как это использовать на практике?
1. Настройка переменных окружения
В ~/.bashrc или ~/.profile удобно добавлять переменные окружения:
2. Часто используемые команды — в функции
Если вы часто запускаете цепочки команд, создайте функцию:
3. Инициализация новых пользователей
Все, что лежит в /etc/skel/, будет копироваться в домашнюю папку новых пользователей:
Хотите, чтобы у каждого нового пользователя были кастомные алиасы, переменные или структура папок — добавьте это сюда.
4. Настройка путей и alias’ов
В ~/.bashrc можно настраивать alias:
Проверка работы профилей
Чтобы отладить поведение при запуске оболочки, можно добавить временные echo:
Bash — самая распространённая командная оболочка в Linux.
Она запускается каждый раз, когда вы логинитесь в систему или открываете терминал. Поведение Bash при этом регулируется специальными профилями — системными и пользовательскими.
Разберём, как они работают и что с ними можно делать на практике.
Что происходит при запуске Bash?
Bash может работать в двух режимах: login shell (при входе в систему) и interactive non-login shell (обычное открытие терминала). В зависимости от сценария запуска, загружаются разные файлы:
При входе в систему (login shell):
При запуске терминала (non-login shell):
• /etc/bash.bashrc или /etc/bashrc;
• ~/.bashrc.
Также есть ~/.bash_logout, который выполняется при выходе из сессии.
Как это использовать на практике?
1. Настройка переменных окружения
В ~/.bashrc или ~/.profile удобно добавлять переменные окружения:
export EDITOR=nano
export PATH="$PATH:$HOME/scripts"
2. Часто используемые команды — в функции
Если вы часто запускаете цепочки команд, создайте функцию:
function logs() {
cd /var/log && ls -lt | head
}
3. Инициализация новых пользователей
Все, что лежит в /etc/skel/, будет копироваться в домашнюю папку новых пользователей:
/etc/skel/.bashrc
/etc/skel/.profile
Хотите, чтобы у каждого нового пользователя были кастомные алиасы, переменные или структура папок — добавьте это сюда.
4. Настройка путей и alias’ов
В ~/.bashrc можно настраивать alias:
alias ll='ls -lah'
alias gs='git status'
Проверка работы профилей
Чтобы отладить поведение при запуске оболочки, можно добавить временные echo:
echo "Loaded ~/.bashrc" >> ~/bash_debug.log
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁26❤2🔥2🐳2👍1
Почему netstat лжёт: как ss показывает реальную картину с сокетами
В современном Linux часто применяются инструменты для мониторинга сетевых соединений.
Несмотря на свою популярность, утилита netstat уже не всегда предоставляет точную информацию о состоянии сокетов.
Неточное отображение состояний с netstat
⏺ Netstat опирается на данные из /proc, которые могут не отражать динамическое изменение состояния сокетов. В результате он часто показывает устаревшую информацию, например, “мертвые” или заброшенные сокеты, которые уже не участвуют в активной передаче.
⏺ При анализе состояний, таких как FIN_WAIT2, netstat может некорректно интерпретировать “зависшие” соединения. Это может ввести администратора в заблуждение относительно истинной загрузки и стабильности системы.
Преимущества ss: точные и детальные данные
Современный инструмент ss (socket statistics) из пакета iproute2 разработан для замены netstat и предоставляет гораздо более подробную и актуальную информацию о сетевых сокетах.
Он способен отсеивать “мертвые” соединения, корректно отображать переходные состояния и использовать расширенные опции для фильтрации и диагностики.
Например, чтобы увидеть информацию о TCP-сокетах, можно воспользоваться командой:
Здесь ключи означают:
• -t – вывести только TCP-соединения,
• -a – показать все (слушающие и установленные),
• -n – вывод номеров портов в числовом виде.
Если вам нужно проверить, какие сокеты находятся в “FIN_WAIT2” состоянии, команда ss покажет их корректно, благодаря более точной сборке данных из ядра:
Особенно полезна опция -K. Этот параметр позволяет отправлять запросы к ядру для получения более глубокого анализа по каждому сокету – например, чтобы определить, какие “зависшие” сокеты реально не используются.
Это даёт возможность отфильтровать ложные сигналы и сконцентрироваться на проблемных соединениях. Пример использования:
Эта команда попытается “убить” (удалить) неактивные или ошибочные соединения, предоставляя отчёт о том, какие сокеты останутся в системе после вмешательства. Такой уровень контроля невозможен с netstat.
В современном Linux часто применяются инструменты для мониторинга сетевых соединений.
Несмотря на свою популярность, утилита netstat уже не всегда предоставляет точную информацию о состоянии сокетов.
Неточное отображение состояний с netstat
Netstat долгое время был основным инструментом для вывода информации о сетевых соединениях, но его алгоритмы и подходы к сбору статистики имеют ограничения:
Преимущества ss: точные и детальные данные
Современный инструмент ss (socket statistics) из пакета iproute2 разработан для замены netstat и предоставляет гораздо более подробную и актуальную информацию о сетевых сокетах.
Он способен отсеивать “мертвые” соединения, корректно отображать переходные состояния и использовать расширенные опции для фильтрации и диагностики.
Например, чтобы увидеть информацию о TCP-сокетах, можно воспользоваться командой:
ss -tan
Здесь ключи означают:
• -t – вывести только TCP-соединения,
• -a – показать все (слушающие и установленные),
• -n – вывод номеров портов в числовом виде.
Если вам нужно проверить, какие сокеты находятся в “FIN_WAIT2” состоянии, команда ss покажет их корректно, благодаря более точной сборке данных из ядра:
ss -tan state fin-wait-2
Особенно полезна опция -K. Этот параметр позволяет отправлять запросы к ядру для получения более глубокого анализа по каждому сокету – например, чтобы определить, какие “зависшие” сокеты реально не используются.
Это даёт возможность отфильтровать ложные сигналы и сконцентрироваться на проблемных соединениях. Пример использования:
ss -K state established
Эта команда попытается “убить” (удалить) неактивные или ошибочные соединения, предоставляя отчёт о том, какие сокеты останутся в системе после вмешательства. Такой уровень контроля невозможен с netstat.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤔3❤1😱1
Какой механизм позволяет запускать процесс в другом пространстве имён сети (network namespace)?
Anonymous Quiz
45%
chroot
19%
unshare
31%
setcap
4%
auditd
👍7🔥3🤔1😢1
Как узнать причину перезагрузки Linux
Неожиданная перезагрузка Linux-сервера — это всегда тревожный звоночек. Иногда виноват админ, иногда — ядро, а иногда — железо. Разберём, как правильно искать первопричину, чтобы не гадать на кофейной гуще.
1️⃣ Кто и когда перезагружал?
Команды:
Это даст базовую точку отсчёта: когда именно сервер перезапустился.
2️⃣ Логи — наше всё
Сравниваем время перезагрузки с системными журналами:
• RHEL/CentOS: /var/log/messages
• Ubuntu/Debian: /var/log/syslog
Ищем фрагменты про shutdown, poweroff, reboot. Можно фильтровать, чтобы убрать шум:
В логах может быть явно видно: кто запустил ребут — root, какой сервис, или была ошибка питания.
3️⃣ auditd: ищем системные события
Если стоит auditd, смотрим аккуратные записи про загрузку и остановку:
Если видим две подряд строки SYSTEM_BOOT — значит, скорее всего, была авария или падение питания.
Если настроено сохранение логов в /var/log/journal, можно получить историю перезагрузок:
Так можно увидеть, были ли перед перезагрузкой ошибки типа OOM, kernel panic или странные systemd-события.
Если логов мало — проверьте, создан ли каталог для хранения:
Неожиданная перезагрузка Linux-сервера — это всегда тревожный звоночек. Иногда виноват админ, иногда — ядро, а иногда — железо. Разберём, как правильно искать первопричину, чтобы не гадать на кофейной гуще.
Команды:
who -b # Показывает последнее время загрузки
last reboot # Список всех событий перезагрузки
Это даст базовую точку отсчёта: когда именно сервер перезапустился.
Сравниваем время перезагрузки с системными журналами:
• RHEL/CentOS: /var/log/messages
• Ubuntu/Debian: /var/log/syslog
Ищем фрагменты про shutdown, poweroff, reboot. Можно фильтровать, чтобы убрать шум:
sudo grep -iE 'recover|power|shutdown|rsyslogd|ups' /var/log/{messages,syslog}
В логах может быть явно видно: кто запустил ребут — root, какой сервис, или была ошибка питания.
Если стоит auditd, смотрим аккуратные записи про загрузку и остановку:
sudo ausearch -i -m system_boot,system_shutdown | tail -4
Если видим две подряд строки SYSTEM_BOOT — значит, скорее всего, была авария или падение питания.
4️⃣
journalctl: работа с историей загрузок
Если настроено сохранение логов в /var/log/journal, можно получить историю перезагрузок:
journalctl --list-boots
journalctl -b -1 # Смотрим предыдущую загрузку
Так можно увидеть, были ли перед перезагрузкой ошибки типа OOM, kernel panic или странные systemd-события.
Если логов мало — проверьте, создан ли каталог для хранения:
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl kill -s SIGUSR1 systemd-journald
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
— Linux Command Library — справочник по командам Linux
— SAD Servers — тренажёр для отладки Linux-систем
— Kubectl-neat — плагин удаляющий беспорядок в Kubernetes
— Pro Git — бесплатная книга по Git на русском языке
— Облака на практике и в теории
— Облака: итоги 2024 и прогнозы 2025
— SpaceVM: исследование и создание кластера с 0
— FreeGRID: механизм работы карт NVIDIA без лицензий
— Проверки Роскомнадзора по ПДн: инструкция по подготовке
— Проверки Роскомнадзора по ПДн: часть 2
— 8 трендов в ИБ 2025-2027
— Сравнение сертифицированных антивирусных средств защиты информации
Реклама ООО "Кортэл"
ИНН: 7816246925
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
Установка Xfce на Ubuntu Server: когда нужен лёгкий GUI
Если нужен графический интерфейс, но GNOME слишком тяжёл, Xfce — отличная альтернатива. Идеален для VPS, embedded-серверов и слабого железа.
⏺ Обновим систему:
⏺ Установим Xfce:
Или минимальный вариант:
slim — это лёгкий дисплей-менеджер. Вместо него можно поставить lightdm:
⏺ Убедитесь, что выбран нужный менеджер:
⏺ Запуск и остановка GUI:
Или, если slim:
Если нужен графический интерфейс, но GNOME слишком тяжёл, Xfce — отличная альтернатива. Идеален для VPS, embedded-серверов и слабого железа.
sudo apt update && sudo apt upgrade
sudo apt install xubuntu-desktop
Или минимальный вариант:
sudo apt install xfce4 slim
slim — это лёгкий дисплей-менеджер. Вместо него можно поставить lightdm:
sudo apt install lightdm
cat /etc/X11/default-display-manager
sudo service lightdm start
sudo service lightdm stop
Или, если slim:
sudo service slim start
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤1
Привет! Для всех, кто интересуется автоматизацией и облачными технологиями, есть замечательная возможность — стажировка в направлении DevOps в Cloud.ru! 🚀
Открыт приём заявок на оплачиваемую стажировку в Cloud.ru! 🚀
Старт: июнь 2025
Длительность: 6 месяцев
Формат: очно в офисе в Москве или удаленно
Занятость: от 20 часов в неделю
Что тебя ждёт?
- оплачиваемая стажировка;
- работа с реальными проектами;
- поддержка наставников и экспертов;
- регулярная обратная связь;
- возможность стать частью команды Cloud.ru.
Кого мы ждём?
✔️ Студентов старших курсов и выпускников.
✔️ Тех, кто знает основы виртуализации и контейнеризации.
✔️ Имеющих опыт работы с Docker и Linux.
✔️ Готовых работать от 20 часов в неделю.
👉 Регистрация уже открыта. Подай заявку до 16 мая 23:59 мск по ссылке.
Не упусти шанс начать карьеру с лидером облачных и AI технологий.
Ждём тебя в команде Cloud.ru💪
Открыт приём заявок на оплачиваемую стажировку в Cloud.ru! 🚀
Старт: июнь 2025
Длительность: 6 месяцев
Формат: очно в офисе в Москве или удаленно
Занятость: от 20 часов в неделю
Что тебя ждёт?
- оплачиваемая стажировка;
- работа с реальными проектами;
- поддержка наставников и экспертов;
- регулярная обратная связь;
- возможность стать частью команды Cloud.ru.
Кого мы ждём?
✔️ Студентов старших курсов и выпускников.
✔️ Тех, кто знает основы виртуализации и контейнеризации.
✔️ Имеющих опыт работы с Docker и Linux.
✔️ Готовых работать от 20 часов в неделю.
👉 Регистрация уже открыта. Подай заявку до 16 мая 23:59 мск по ссылке.
Не упусти шанс начать карьеру с лидером облачных и AI технологий.
Ждём тебя в команде Cloud.ru💪
❤1
Вышел 4MLinux 48.0: ядро 6.12, улучшенный мультимедиа и поддержка KVM-дисков
Разработчик Збигнев Конояцкий представил стабильный релиз 4MLinux 48.0 — облегчённого дистрибутива на базе JWM. В этой версии:
⏺ Обновлено ядро до Linux 6.12 LTS, добавлена поддержка установки на диски вида /dev/vda1 (виртуалки KVM).
⏺ Включён видеоредактор Kino, несмотря на его возраст.
⏺ В набор кодеков добавлен VVenC (H.266/VVC).
⏺ Новые опции в расширениях: FreeTube, Bristol, новые версии VLC, GIMP, LibreOffice, Chrome и Firefox.
⏺ Улучшена обработка звука, масштабирование видео и драйверы печати.
Сборка 4MServer получила обновлённый LAMP-стек и языки Python, Ruby, Perl.
Релиз доступен в вариантах Full, Core и Server, только для 64-битных систем.
Разработчик Збигнев Конояцкий представил стабильный релиз 4MLinux 48.0 — облегчённого дистрибутива на базе JWM. В этой версии:
Сборка 4MServer получила обновлённый LAMP-стек и языки Python, Ruby, Perl.
Релиз доступен в вариантах Full, Core и Server, только для 64-битных систем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Chrootjail что это и зачем нужно?
Когда нужна изоляция без контейнеров и виртуалок — на помощь приходит chroot.
Эта команда меняет корневой каталог для процесса, ограничивая его только указанной директорией.
Получается простейшая “тюрьма”, где процессы не видят остальную систему.
Зачем это вообще нужно?
⏺ Запустить старую версию приложения с отдельной glibc
⏺ Изолировать демоны, если нет systemd-nspawn / Docker
⏺ Обеспечить восстановление системы из Live-среды
⏺ Сделать легковесный dev-stand или jail для CI
Как поднять chroot jail с bash и ls?
Теперь подтянем зависимости. Смотрим, что нужно bash:
И копируем их:
Повторяем то же для ls. Когда всё готово — запускаем:
Теперь вы в полностью изолированной среде, где доступны только скопированные бинарники и библиотеки. Можно использовать ls, запускать скрипты, писать тесты.
Когда нужна изоляция без контейнеров и виртуалок — на помощь приходит chroot.
Эта команда меняет корневой каталог для процесса, ограничивая его только указанной директорией.
Получается простейшая “тюрьма”, где процессы не видят остальную систему.
Зачем это вообще нужно?
Как поднять chroot jail с bash и ls?
mkdir -p chroot_jail/{bin,lib/x86_64-linux-gnu,lib64}
cp $(which bash) $(which ls) chroot_jail/bin/
Теперь подтянем зависимости. Смотрим, что нужно bash:
ldd $(which bash)
И копируем их:
cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
Повторяем то же для ls. Когда всё готово — запускаем:
sudo chroot chroot_jail /bin/bash
Теперь вы в полностью изолированной среде, где доступны только скопированные бинарники и библиотеки. Можно использовать ls, запускать скрипты, писать тесты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Примеры и особенности:
terraform {
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
region = "us-west-2"
}
}
dynamodb_table = "terraform-locks"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Почему DNS-трафик из контейнеров пропадает при смене сети
Один из тех багов, что легко пропустить, пока не начнёт сбоить прод: контейнер теряет резолвинг после смены сети или рестарта systemd-resolved, хотя хост чувствует себя нормально.
Docker по умолчанию использует embedded DNS-сервер на 127.0.0.11, который находится внутри каждого сетевого namespace. Он проксирует DNS-запросы от контейнеров к системному DNS, но:
⏺ При смене сети (например, ifdown/ifup) dockerd не пересобирает конфигурацию;
⏺ При перезапуске systemd-resolved или NetworkManager upstream-адреса становятся недоступны;
⏺ Контейнер продолжает слать DNS-запросы, но получает таймаут или пустой ответ.
Как лечить
1️⃣ Отключить встроенный DNS:
в /etc/docker/daemon.json
2️⃣ Прописать резолверы явно в docker run:
3️⃣ Проверить работу через nslookup/dig внутри контейнера:
4️⃣ Следить за iptables -t nat — DNS может сломаться из-за неправильного SNAT в bridge-сетях.
Когда особенно критично
В k8s с Docker runtime, на embedded-системах или в CI, где DHCP может пересобирать сетевой стек. Там лучше не полагаться на автоматическую проксирующую магию.
Один из тех багов, что легко пропустить, пока не начнёт сбоить прод: контейнер теряет резолвинг после смены сети или рестарта systemd-resolved, хотя хост чувствует себя нормально.
Виноват — встроенный DNS в Docker (127.0.0.11), работающий только внутри namespace и не всегда переживающий перезапуск или смену маршрутов.
Docker по умолчанию использует embedded DNS-сервер на 127.0.0.11, который находится внутри каждого сетевого namespace. Он проксирует DNS-запросы от контейнеров к системному DNS, но:
Как лечить
{
"dns": ["1.1.1.1", "8.8.8.8"],
"dns-opt": ["use-vc"]
}
в /etc/docker/daemon.json
docker run --dns=1.1.1.1 --dns-opt=use-vc ...
docker exec -it container sh
dig ya.ru
Когда особенно критично
В k8s с Docker runtime, на embedded-системах или в CI, где DHCP может пересобирать сетевой стек. Там лучше не полагаться на автоматическую проксирующую магию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4
Какую цель выполняет параметр ProtectSystem=full в systemd unit-файле?
Anonymous Quiz
34%
Делает /etc и /usr только для чтения
48%
Запрещает доступ к любым файлам вне /home
15%
Даёт полный доступ к файловой системе
4%
Удаляет временные файлы после завершения
👍9🔥3🦄3😢1
Продвинутая настройка Syslog: фильтрация и пересылка логов
Syslog позволяет не только собирать логи, но и фильтровать их, а также пересылать на удаленный сервер для централизованного хранения.
Пересылка логов на удаленный сервер
Редактируем конфигурацию:
Добавляем строки:
Применяем изменения:
Фильтрация по уровню серьезности
Записываем критические ошибки в отдельные файлы:
Мониторинг логов в реальном времени
Фильтр по IP-адресу:
Проверка работы Syslog
Syslog позволяет не только собирать логи, но и фильтровать их, а также пересылать на удаленный сервер для централизованного хранения.
Пересылка логов на удаленный сервер
Редактируем конфигурацию:
sudo nano /etc/rsyslog.conf
Добавляем строки:
*.* @192.168.1.100:514 # Отправка по UDP
*.* @@192.168.1.100:514 # Отправка по TCP
Применяем изменения:
sudo systemctl restart rsyslog
Фильтрация по уровню серьезности
Записываем критические ошибки в отдельные файлы:
*.emerg /var/log/emergency.log
*.alert /var/log/alert.log
Мониторинг логов в реальном времени
tail -f /var/log/syslog
Фильтр по IP-адресу:
grep "192.168.1.50" /var/log/syslog
Проверка работы Syslog
logger -p local0.info "Test Syslog Message"
cat /var/log/syslog | grep "Test Syslog Message"
👍17❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
💯18👍7🔥2😁1