uz
Feedback
Admin Guides | Сисадмин

Admin Guides | Сисадмин

Kanalga Telegram’da o‘tish

Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов. Админ, реклама: @Ak_Mihail Биржа: https://telega.in/c/admguides РКН: https://kurl.ru/nQejS

Ko'proq ko'rsatish

📈 Telegram kanali Admin Guides | Сисадмин analitikasi

Admin Guides | Сисадмин (@admguides) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 11 781 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 10 514-o'rinni va Rossiya mintaqasida 55 271-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 11 781 obunachiga ega bo‘ldi.

30 Iyul, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 119 ga, so‘nggi 24 soatda esa 1 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 12.69% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 6.89% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 495 marta ko‘riladi; birinchi sutkada odatda 811 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 10 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent ядро, /proc, grep, latency, linux kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов. Админ, реклама: @Ak_Mihail Биржа: https://telega.in/c/admguides РКН: https://kurl.ru/nQejS

Yuqori yangilanish chastotasi (oxirgi ma’lumot 31 Iyul, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

11 784
Obunachilar
+124 soatlar
+357 kunlar
+11930 kunlar
Postlar arxiv
Сегодня День сисадмина — можно на минуту отложить дампы и логи. Яндекс 360 выпустил к празднику стикерпак «esc от стресса»: «Поправимо...» в ответ на очередной тикет и «Ушёл на перезагрузку», когда сил объяснять уже нет. Со стрессом Яндекс 360 помогает ещё до того, как понадобится стикер: пользователи, доступы и сервисы настраиваются из одного окна. Ставится стикерпак тут. Реклама ООО «Яндекс», ИНН 7736207543, erid: 2W5zFHhbhof

sticker.webp0.23 KB

Сегодня День сисадмина — можно на минуту отложить дампы и логи. Яндекс 360 выпустил к празднику стикерпак «esc от стресса»: «Поправимо...» в ответ на очередной тикет и «Ушёл на перезагрузку», когда сил объяснять уже нет. Со стрессом Яндекс 360 помогает ещё до того, как понадобится стикер: пользователи, доступы и сервисы настраиваются из одного окна. Ставится стикерпак тут. Реклама ООО «Яндекс», ИНН 7736207543, erid: 2W5zFHhbhof

sticker.webp0.23 KB

Сегодня День сисадмина — можно на минуту отложить дампы и логи. Яндекс 360 выпустил к празднику стикерпак «esc от стресса»: «Поправимо...» в ответ на очередной тикет и «Ушёл на перезагрузку», когда сил объяснять уже нет. Со стрессом Яндекс 360 помогает ещё до того, как понадобится стикер: пользователи, доступы и сервисы настраиваются из одного окна. Ставится стикерпак тут. Реклама ООО «Яндекс», ИНН 7736207543, erid: 2W5zFHhbhof

Топ-3 команды для диагностики памяти процесса Когда процесс потребляет больше памяти чем ожидаешь, три команды дают полную ка
Топ-3 команды для диагностики памяти процесса Когда процесс потребляет больше памяти чем ожидаешь, три команды дают полную картину от разных углов. ⏺smem В отличие от top и ps показывает реальное потребление с учётом разделяемой памяти. PSS (Proportional Set Size) делит shared memory пропорционально между процессами которые её используют:
smem -r -k -P nginx
-r сортирует по PSS, -k выводит в читаемых единицах, -P фильтрует по имени процесса. ⏺pmap Показывает карту адресного пространства процесса с размером каждого региона. Сразу видно где heap, где shared libraries, где анонимные регионы которые растут:
pmap -x <PID> | sort -k3 -rn | head -20
-x добавляет RSS и dirty pages для каждого региона. Сортируем по размеру, аномально большие анонимные регионы это первый признак утечки. ⏺cat /proc/PID/status Без внешних утилит, прямо из ядра. VmRSS это реальная физическая память, VmSize виртуальная, VmSwap сколько ушло в своп:
grep -E "VmRSS|VmSize|VmSwap|VmPeak" /proc/<PID>/status
VmPeak показывает максимум за всё время жизни процесса, полезно когда пик уже прошёл но хочется знать сколько было. ⚡️ps aux и top показывают RSS без учёта разделяемой памяти. Если десять воркеров nginx показывают по 50MB каждый, это не значит что они съели 500MB: большая часть это shared code и данные. smem с PSS даст реальную цифру.

💬 Вопрос на собеседовании для сисадмина Давайте разберем один из частых вопросов, который может быть задан на собеседовании
💬 Вопрос на собеседовании для сисадмина
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Вопрос: Что такое IRQ affinity и зачем настраивать привязку аппаратных прерываний к ядрам CPU? ✅Ответ: IRQ affinity - это механизм Linux, позволяющий закрепить обработку аппаратных прерываний (Interrupt Requests) за определёнными ядрами процессора. Это помогает равномерно распределить нагрузку и уменьшить задержки при работе с сетью, дисками и другими устройствами. Как это работает: • Каждое аппаратное устройство генерирует IRQ, которое обрабатывается одним или несколькими CPU. • По умолчанию ядро само распределяет прерывания, но это не всегда оптимально. • Через /proc/irq/<IRQ>/smp_affinity можно вручную указать, какие ядра будут обслуживать конкретное устройство.

inotifywait в продакшне: реакция на изменение конфига Стандартный подход: cron каждую минуту проверяет изменился ли файл. Это
inotifywait в продакшне: реакция на изменение конфига Стандартный подход: cron каждую минуту проверяет изменился ли файл. Это polling, лишняя нагрузка и задержка до минуты. inotifywait получает событие от ядра в момент изменения, без опроса. Базовая реакция на изменение конфига:
inotifywait -e close_write /etc/nginx/nginx.conf && nginx -t && systemctl reload nginx
Но это одноразово. Для постоянного мониторинга нужен цикл:
inotifywait -m -e close_write /etc/nginx/nginx.conf | while read -r; do
  nginx -t && systemctl reload nginx
done
Проблема без debounce Редактор вроде vim делает несколько операций при сохранении: создаёт временный файл, переименовывает, удаляет старый. inotifywait срабатывает несколько раз подряд на одно логическое сохранение. Reload запускается три раза вместо одного. Debounce через sleep и проверку времени последнего события:
#!/bin/bash
CONFIG="/etc/nginx/nginx.conf"
LAST_RUN=0
DEBOUNCE=2

inotifywait -m -e close_write,moved_to "$CONFIG" 2>/dev/null | while read -r; do
  NOW=$(date +%s)
  if (( NOW - LAST_RUN > DEBOUNCE )); then
    LAST_RUN=$NOW
    nginx -t && systemctl reload nginx \
      && echo "$(date) reloaded" >> /var/log/nginx_autoreload.log
  fi
done
Запускаем как systemd-сервис чтобы не умирал:
[Unit]
Description=Nginx config watcher

[Service]
ExecStart=/usr/local/bin/nginx_watcher.sh
Restart=always

[Install]
WantedBy=multi-user.target
⚡️inotifywait не видит изменения через bind mount или NFS, ядро не генерирует события для удалённых файловых систем. Если конфиг приезжает через ConfigMap в Kubernetes или NFS-шару, inotifywait не сработает, нужен polling или механизм самого оркестратора.

После настройки keepalived оба узла стали MASTER одновременно:
Anonymous voting

🚀 Мечтаешь войти в DevOps, но не знаешь с чего начать? Это твой шанс! Привет, меня зовут Вячеслав Федосеев. Я работаю руково
🚀 Мечтаешь войти в DevOps, но не знаешь с чего начать? Это твой шанс! Привет, меня зовут Вячеслав Федосеев. Я работаю руководителем команды в DevOps, выступаю как спикер в учебном центре Слёрм и веду собственный проект DevOps Bootcamp. У себя в Telegram-канале я регулярно провожу прямые эфиры, публикую полезные статьи и лекции, а главное — отвечаю на вопросы и помогаю новичкам сделать первые шаги в профессии. Присоединяйтесь, чтобы не пропустить самое интересное! 👉 Канал: @devopsupgrade 🔥 Бонус для начинающих Вместе с командой Слёрм мы подготовили бесплатный мини-курс«Быстрый старт в DevOps». На нём разложим по полочкам главные темы, которые волнуют новичков: 👉 что такое DevOps, и как выстроить работу команды в рамках этой методологии; 👉 Kubernetes, Docker и т.д.: как базовые инструменты выстраивают работу в DevOps; 👉 DevOps и компания: как состыковать критерии успеха. ЗАБРАТЬ БЕСПЛАТНЫЙ КУРС

Поиск бинарников не из пакетного менеджера Любой файл в /usr/bin или /usr/sbin который не знает пакетный менеджер это аномали
Поиск бинарников не из пакетного менеджера Любой файл в /usr/bin или /usr/sbin который не знает пакетный менеджер это аномалия. Мог появиться через ручную установку, сборку из исходников, или что хуже, был подброшен намеренно. Проверяем на Debian/Ubuntu:
find /usr/bin /usr/sbin -type f | while read -r bin; do
  dpkg -S "$bin" &>/dev/null || echo "NOT IN PACKAGES: $bin"
done
На RHEL/CentOS:
find /usr/bin /usr/sbin -type f | while read -r bin; do
  rpm -qf "$bin" &>/dev/null || echo "NOT IN PACKAGES: $bin"
done
Медленно на большом количестве файлов. Ускоряем через массовый запрос:
find /usr/bin /usr/sbin -type f -print0 \
  | xargs -0 dpkg -S 2>&1 \
  | grep "no path found" \
  | awk -F': ' '{print $2}'
Добавляем проверку времени создания, свежие файлы подозрительнее:
find /usr/bin /usr/sbin -type f -newer /var/lib/dpkg/info -print0 \
  | xargs -0 dpkg -S 2>&1 \
  | grep "no path found" \
  | awk -F': ' '{print $2}'
-newer /var/lib/dpkg/info фильтрует файлы появившиеся после последнего apt действия. В cron для периодического аудита:
0 3 * * * /usr/local/bin/check_unknown_bins.sh >> /var/log/unknown_bins.log

Во второй половине июля 2026 года вышло обновление HWMonitor 1.66 Это бесплатная утилиты для мониторинга компонентов ПК под W
Во второй половине июля 2026 года вышло обновление HWMonitor 1.66 Это бесплатная утилиты для мониторинга компонентов ПК под Windows. Проект развивается уже более 16 лет и позволяет отслеживать температуру, напряжение, скорость вращения вентиляторов и другие параметры оборудования.
Также поддерживается чтение данных S.M.A.R.T., встроенных датчиков процессора и температуры видеокарт.
Что изменилось в HWMonitor 1.66: • улучшен отчёт о температуре в зонах перегрева видеокарт AMD Radeon RX 9000; • окно графика стало прозрачным.

Мониторинг zombie-процессов с алертом Zombie-процесс это процесс который завершился, но родитель не забрал его exit code чере
Мониторинг zombie-процессов с алертом Zombie-процесс это процесс который завершился, но родитель не забрал его exit code через wait(). Запись в таблице процессов остаётся, ресурсы освобождены, но PID занят. Единичные зомби это нормально, массовое накопление говорит о баге в родительском процессе. Смотрим текущее состояние:
ps aux | awk '$8 == "Z" {print $2, $11}'
Для каждого зомби находим родителя:
ps aux | awk '$8 == "Z" {print $2}' | while read -r pid; do
  ppid=$(cat /proc/$pid/status 2>/dev/null | awk '/PPid/ {print $2}')
  parent=$(ps -p "$ppid" -o comm= 2>/dev/null)
  echo "zombie PID=$pid родитель PID=$ppid ($parent)"
done
Скрипт мониторинга с алертом
#!/bin/bash
THRESHOLD=5
BOT_TOKEN="ваш_токен"
CHAT_ID="ваш_chat_id"
LOG="/var/log/zombie_check.log"

zombies=$(awk '$8 == "Z" {count++} END {print count+0}' /proc/[0-9]*/status 2>/dev/null)

echo "$(date '+%Y-%m-%d %H:%M:%S') zombies: $zombies" >> "$LOG"

if [ "$zombies" -ge "$THRESHOLD" ]; then
  details=$(ps aux | awk '$8 == "Z" {print $2, $11}' | head -10)
  curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
    -d chat_id="${CHAT_ID}" \
    -d text="⚠️ $zombies zombie-процессов на $(hostname)\n${details}"
fi
В cron каждые 5 минут:
*/5 * * * * /usr/local/bin/zombie_check.sh
Смотрим тренд:
grep zombies /var/log/zombie_check.log | tail -20
👀 Убить зомби через kill нельзя, он уже мёртв. Единственный способ: отправить SIGCHLD родителю чтобы он забрал exit code, или убить самого родителя. Если родитель это системный демон который плодит зомби, это баг в приложении который нужно фиксить, а не обходить.

💬 Вопрос на собеседовании для DevOps-инженера Давайте разберем один из частых вопросов, который может быть задан на собеседо
💬 Вопрос на собеседовании для DevOps-инженера
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Вопрос: Что такое epoll и почему он эффективнее select() и poll()? ✅Ответ: epoll — это механизм мультиплексирования ввода-вывода в Linux, предназначенный для эффективной работы с большим количеством сетевых соединений. Именно на нём построены современные веб-серверы, прокси и балансировщики нагрузки. Как это работает: • Приложение один раз регистрирует файловые дескрипторы в epoll через epoll_ctl(). • Ядро самостоятельно отслеживает события на этих дескрипторах. • При вызове epoll_wait() возвращаются только те сокеты, на которых действительно произошло событие.

SSSD для интеграции Linux с Active Directory: настройка и тонкости Интеграция Linux-серверов и рабочих станций в Active Direc
SSSD для интеграции Linux с Active Directory: настройка и тонкости Интеграция Linux-серверов и рабочих станций в Active Directory (AD) — стандартная задача в смешанных инфраструктурах. SSSD (System Security Services Daemon) — современный и гибкий способ обеспечить аутентификацию и получение информации из AD без установки громоздких клиентов вроде winbind. Базовая схема настройки 1️⃣Подключаем Linux к AD Если есть realmd, достаточно:
realm join example.com -U Administrator
Он автоматически настроит SSSD, Kerberos и разрешения. Если без realmd — делаем вручную. 2️⃣ Настраиваем /etc/sssd/sssd.conf Пример минимального конфига:
[sssd]
domains = example.com
config_file_version = 2
services = nss, pam

[domain/example.com]
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
ad_domain = example.com
krb5_realm = EXAMPLE.COM
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
fallback_homedir = /home/%u@%d
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
3️⃣ Права на файл конфигурации
chmod 600 /etc/sssd/sssd.conf
4️⃣ Запускаем и добавляем в автозагрузку
systemctl enable --now sssd
5️⃣ Настраиваем PAM Обновляем /etc/pam.d/common-auth и common-session для вызова pam_sss.so и автоматического создания домашней директории. Пример для common-session:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077

🔍Тестовое собеседование на Middle Python с разработчиком из Яндекса сегодня вечером Уже сегодня вечером в 19:00 по мск прихо
🔍Тестовое собеседование на Middle Python с разработчиком из Яндекса сегодня вечером Уже сегодня вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика. Как это будет: 📂 Хачатур, старший разработчик в Яндексе, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Хачатур будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Хачатуру Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot Реклама. О рекламодателе.

Когда DNS resolution становится узким местом Сервис отвечает, CPU и I/O в порядке, но часть запросов периодически «подвисает»
Когда DNS resolution становится узким местом
Сервис отвечает, CPU и I/O в порядке, но часть запросов периодически «подвисает». Задержка возникает не внутри приложения, а на этапе резолва - до установления соединения.
Каждый getaddrinfo() может блокироваться: ожидание ответа от DNS, попытки по нескольким nameserver’ам, fallback с IPv6 на IPv4, поиск по search-доменам. При сетевых сбоях или медленных резолверах это превращается в десятки–сотни миллисекунд на каждый запрос. В асинхронных сервисах это особенно заметно: потоков много, а блокировка происходит в libc. Проверить, где теряется время:
strace -tt -e trace=network,connect,recvfrom,sendto -p <pid>
Если видны паузы на recvfrom/sendto к DNS-серверам - задержка вне приложения. Посмотреть, какие резолверы используются:
cat /etc/resolv.conf
Порядок nameserver, наличие search и options напрямую влияет на количество попыток и время ожидания. Проверить реальное время резолва:
dig +stats example.com
Если время скачет или есть retries - проблема в DNS-инфраструктуре или сетевом пути. Дополнительно:
ss -u -a | grep :53
Позволяет увидеть активность UDP-запросов к DNS.

photo content

Скрипт сбора статистики ошибок на интерфейсах по расписанию ethtool -S показывает hardware-счётчики которые ip -s link не вид
Скрипт сбора статистики ошибок на интерфейсах по расписанию ethtool -S показывает hardware-счётчики которые ip -s link не видит: CRC ошибки, missed пакеты, rx_fifo_errors, tx_heartbeat. Именно там видна ранняя деградация линка до того как она становится очевидной. Проблема в том, что счётчики накопительные с момента загрузки. Нужна дельта между двумя снимками, а не абсолютное значение. Скрипт с дельтами и порогами
#!/bin/bash
IFACES=("eth0" "eth1")
SNAPSHOT_DIR="/var/lib/iface_stats"
LOG="/var/log/iface_errors.log"
THRESHOLD=100

ERROR_KEYS="rx_errors tx_errors rx_missed_errors rx_fifo_errors
            rx_crc_errors rx_frame_errors tx_aborted_errors
            rx_length_errors rx_over_errors"

mkdir -p "$SNAPSHOT_DIR"

for iface in "${IFACES[@]}"; do
  SNAP="$SNAPSHOT_DIR/${iface}.snap"
  CURRENT=$(mktemp)

  ethtool -S "$iface" 2>/dev/null | awk '{gsub(/:/,"",$1); print $1, $2}' \
    | sort > "$CURRENT"

  if [ ! -f "$SNAP" ]; then
    cp "$CURRENT" "$SNAP"
    rm "$CURRENT"
    continue
  fi

  join "$SNAP" "$CURRENT" | while read -r key prev curr; do
    for ekey in $ERROR_KEYS; do
      if [ "$key" = "$ekey" ]; then
        delta=$(( curr - prev ))
        if [ "$delta" -ge "$THRESHOLD" ]; then
          echo "$(date '+%Y-%m-%d %H:%M:%S') $iface $key +$delta" >> "$LOG"
        fi
      fi
    done
  done

  cp "$CURRENT" "$SNAP"
  rm "$CURRENT"
done
В cron каждые 5 минут:
*/5 * * * * /usr/local/bin/iface_stats.sh
Смотрим лог за сегодня:
grep "$(date '+%Y-%m-%d')" /var/log/iface_errors.log
Если конкретный счётчик растёт стабильно, смотрим подробнее:
ethtool -S eth0 | grep -E "crc|missed|fifo|frame"

💬 Вопрос на собеседовании для сисадмина Давайте разберем один из частых вопросов, который может быть задан на собеседовании
💬 Вопрос на собеседовании для сисадмина
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Вопрос: Что такое S.M.A.R.T. и почему одного статуса PASSED недостаточно для оценки состояния диска? ✅Ответ: S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) - это система самодиагностики HDD и SSD, которая отслеживает десятки параметров, связанных с состоянием накопителя. Однако статус PASSED означает лишь то, что производитель не считает диск критически неисправным, а не то, что он полностью исправен. На что обращать внимание: • Reallocated_Sector_Ct - количество переназначенных секторов. • Current_Pending_Sector - нестабильные сектора, ожидающие повторной проверки. • Offline_Uncorrectable - сектора, которые не удалось прочитать. • Для SSD - Percentage Used, Media_Wearout_Indicator, объём записанных данных (TBW).