Admin Guides | Сисадмин
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов. Админ, реклама: @Ak_Mihail Биржа: https://telega.in/c/admguides РКН: https://kurl.ru/nQejS
نمایش بیشتر📈 تحلیل کانال تلگرام Admin Guides | Сисадмин
کانال Admin Guides | Сисадмин (@admguides) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 11 777 مشترک است و جایگاه 10 520 را در دسته فناوری و برنامهها و رتبه 55 309 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 11 777 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 29 ژوئیه, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 125 و در ۲۴ ساعت گذشته برابر 1 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 12.46% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 6.97% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 468 بازدید دریافت میکند. در اولین روز معمولاً 821 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 10 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند ядро, /proc, grep, latency, linux تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.
Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides
РКН: https://kurl.ru/nQejS”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 30 ژوئیه, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
در حال بارگیری داده...
| تاریخ | رشد مشترکین | اشارات | کانالها | |
| 30 ژوئیه | +5 | |||
| 29 ژوئیه | +4 | |||
| 28 ژوئیه | +4 | |||
| 27 ژوئیه | +8 | |||
| 26 ژوئیه | +12 | |||
| 25 ژوئیه | +7 | |||
| 24 ژوئیه | +14 | |||
| 23 ژوئیه | +15 | |||
| 22 ژوئیه | +11 | |||
| 21 ژوئیه | +5 | |||
| 20 ژوئیه | +3 | |||
| 19 ژوئیه | +4 | |||
| 18 ژوئیه | +10 | |||
| 17 ژوئیه | +8 | |||
| 16 ژوئیه | +1 | |||
| 15 ژوئیه | +9 | |||
| 14 ژوئیه | +4 | |||
| 13 ژوئیه | +5 | |||
| 12 ژوئیه | +9 | |||
| 11 ژوئیه | +2 | |||
| 10 ژوئیه | +4 | |||
| 09 ژوئیه | +4 | |||
| 08 ژوئیه | +5 | |||
| 07 ژوئیه | +5 | |||
| 06 ژوئیه | +5 | |||
| 05 ژوئیه | +9 | |||
| 04 ژوئیه | +8 | |||
| 03 ژوئیه | 0 | |||
| 02 ژوئیه | +7 | |||
| 01 ژوئیه | +4 |
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 или механизм самого оркестратора.| 2 | После настройки keepalived оба узла стали MASTER одновременно: | 824 |
| 3 | 🚀 Мечтаешь войти в DevOps, но не знаешь с чего начать? Это твой шанс!
Привет, меня зовут Вячеслав Федосеев. Я работаю руководителем команды в DevOps, выступаю как спикер в учебном центре Слёрм и веду собственный проект DevOps Bootcamp.
У себя в Telegram-канале я регулярно провожу прямые эфиры, публикую полезные статьи и лекции, а главное — отвечаю на вопросы и помогаю новичкам сделать первые шаги в профессии. Присоединяйтесь, чтобы не пропустить самое интересное!
👉 Канал: @devopsupgrade
🔥 Бонус для начинающих
Вместе с командой Слёрм мы подготовили бесплатный мини-курс«Быстрый старт в DevOps».
На нём разложим по полочкам главные темы, которые волнуют новичков:
👉 что такое DevOps, и как выстроить работу команды в рамках этой методологии;
👉 Kubernetes, Docker и т.д.: как базовые инструменты выстраивают работу в DevOps;
👉 DevOps и компания: как состыковать критерии успеха.
ЗАБРАТЬ БЕСПЛАТНЫЙ КУРС | 902 |
| 4 | Поиск бинарников не из пакетного менеджера
Любой файл в /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 | 806 |
| 5 | Во второй половине июля 2026 года вышло обновление HWMonitor 1.66
Это бесплатная утилиты для мониторинга компонентов ПК под Windows.
Проект развивается уже более 16 лет и позволяет отслеживать температуру, напряжение, скорость вращения вентиляторов и другие параметры оборудования.
Также поддерживается чтение данных S.M.A.R.T., встроенных датчиков процессора и температуры видеокарт.
Что изменилось в HWMonitor 1.66:
• улучшен отчёт о температуре в зонах перегрева видеокарт AMD Radeon RX 9000;
• окно графика стало прозрачным. | 944 |
| 6 | Мониторинг 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, или убить самого родителя. Если родитель это системный демон который плодит зомби, это баг в приложении который нужно фиксить, а не обходить. | 902 |
| 7 | 💬 Вопрос на собеседовании для DevOps-инженера
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
❓Вопрос: Что такое epoll и почему он эффективнее select() и poll()?
✅Ответ: epoll — это механизм мультиплексирования ввода-вывода в Linux, предназначенный для эффективной работы с большим количеством сетевых соединений. Именно на нём построены современные веб-серверы, прокси и балансировщики нагрузки.
Как это работает: • Приложение один раз регистрирует файловые дескрипторы в epoll через epoll_ctl(). • Ядро самостоятельно отслеживает события на этих дескрипторах. • При вызове epoll_wait() возвращаются только те сокеты, на которых действительно произошло событие. | 1 049 |
| 8 | 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 | 1 009 |
| 9 | 🔍Тестовое собеседование на Middle Python с разработчиком из Яндекса сегодня вечером
Уже сегодня вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Хачатур, старший разработчик в Яндексе, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Хачатур будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Хачатуру
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе. | 964 |
| 10 | Когда 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. | 1 067 |
| 11 | بدون متن... | 1 222 |
| 12 | Скрипт сбора статистики ошибок на интерфейсах по расписанию
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" | 1 344 |
| 13 | 💬 Вопрос на собеседовании для сисадмина
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
❓Вопрос: Что такое 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). | 1 482 |
| 14 | Скрипт проверки актуальности ARP-записей на шлюзе
ARP-таблица на шлюзе накапливает записи которые давно не обновлялись: устройства ушли из сети, IP переназначен, а запись осталась.
При конфликте IP или после замены оборудования старые записи могут маршрутизировать трафик не туда.
Смотрим, что сейчас в таблице и какие записи помечены как устаревшие:
ip neigh show
ip neigh show nud stale
ip neigh show nud failed
nud stale - это записи, которые не подтверждались давно, но ещё не признаны мёртвыми. nud failed - это записи, где ARP-запрос не получил ответа.
Скрипт проверки живости каждой записи
#!/bin/bash
IFACE=${1:-eth0}
STALE_LOG="/var/log/arp_check.log"
echo "=== ARP check $(date) ===" >> "$STALE_LOG"
ip neigh show dev "$IFACE" | while read -r ip _ _ _ mac state; do
[ "$ip" = "" ] && continue
[ "$mac" = "FAILED" ] && {
echo "FAILED: $ip" >> "$STALE_LOG"
continue
}
if ping -c 1 -W 1 -I "$IFACE" "$ip" &>/dev/null; then
status="OK"
else
status="UNREACHABLE"
echo "UNREACHABLE: $ip (mac: $mac, state: $state)" >> "$STALE_LOG"
fi
echo "$ip $mac $state -> $status"
done
Принудительное обновление устаревших записей
Если запись stale, ядро обновит её при следующем трафике. Но если нужно прямо сейчас:
ip neigh show nud stale | awk '{print $1}' | while read -r ip; do
ip neigh change "$ip" dev eth0 nud reachable 2>/dev/null || \
arping -c 1 -I eth0 "$ip" &>/dev/null
echo "Refreshed: $ip"
done
Удаляем записи которые не ответили на ping несколько раз подряд:
ip neigh show nud failed | awk '{print $1, $3}' | while read -r ip iface; do
ip neigh del "$ip" dev "$iface"
echo "Removed failed entry: $ip"
done
В cron раз в 15 минут:
*/15 * * * * /usr/local/bin/arp_check.sh eth0 | 1 241 |
| 15 | Тест: Как хорошо вы знаете Linux?⚡️
Какой командой можно проверить текущий каталог в терминале Linux?
7 вопросов по Linux ждут вас внутри бота👇
ПРОВЕРИТЬ СВОИ ЗНАНИЯ | 871 |
| 16 | بدون متن... | 1 579 |
| 17 | Как использовать ss –bpf для фильтрации соединений по произвольным критериям
ss поддерживает фильтрацию через Berkeley Packet Filter выражения, это не то же самое что tcpdump BPF.
Здесь фильтруются не пакеты а сокеты по их атрибутам: состояние, адреса, порты, метки. Позволяет строить запросы которые обычными флагами ss не выразить.
Базовый синтаксис фильтра передаётся как последний аргумент без флага, просто выражение после опций:
ss -tn state established '( dport = :443 or dport = :80 )'
Скобки и пробелы обязательны, без них парсер не поймёт выражение.
Фильтрация по состоянию и порту одновременно
Все установленные соединения кроме SSH и loopback:
ss -tn state established \
'( not dport = :22 and not src 127.0.0.0/8 )'
Только соединения в TIME_WAIT старше определённого порога, полезно для детекта проблем с закрытием сокетов:
ss -tn state time-wait
ss -tn state time-wait | wc -l
Фильтрация по подсети источника или назначения
Все соединения от конкретной подсети, например найти кто из внутренней сети ломится на внешние адреса:
ss -tn state established 'src 10.0.0.0/8 and not dst 10.0.0.0/8'
Или наоборот, внешние соединения к нашим портам:
ss -tn state established 'dst 10.0.0.0/8 and not src 10.0.0.0/8'
Комбинируем с watch для живого мониторинга
watch -n 2 "ss -tn state established '( dport = :443 )' | wc -l"
Счётчик активных HTTPS-соединений в реальном времени без внешних инструментов.
Фильтрация UDP
ss -un 'dport = :53'
Все UDP-сокеты которые отправляют DNS-запросы, полезно для детекта процессов которые ходят мимо локального резолвера.
Смотрим с процессами:
ss -tunp state established \
'( not dst 10.0.0.0/8 and not dst 127.0.0.0/8 )' | \
awk '{print $NF}' | sort | uniq -c | sort -rn
Покажет какие процессы держат больше всего внешних соединений. | 1 339 |
| 18 | Вышел стабильный релиз Perl 5.44.
Проект продолжает придерживаться ежегодного графика обновлений: в разработке новой версии приняли участие 71 разработчик, изменения затронули 860 файлов и около 270 тысяч строк кода.
Главными нововведениями стали экспериментальная поддержка именованных параметров в сигнатурах функций, алиасы в foreach, а также новый режим /xx для регулярных выражений, позволяющий разбивать классы символов на несколько строк и добавлять комментарии.
Кроме того, Perl 5.44 получил поддержку Unicode 17.0, более безопасную генерацию случайных чисел через getentropy(), исправления нескольких уязвимостей и оптимизации производительности арифметических операций, сигнатур функций и работы с хэшами. | 1 518 |
| 19 | Разбор /proc/net/dev_snmp6 для мониторинга IPv6 без внешних агентов
Стандартные инструменты мониторинга часто игнорируют IPv6-счётчики или требуют отдельного агента. /proc/net/dev_snmp6 отдаёт полную статистику IPv6 по каждому интерфейсу прямо из ядра, без snmpd, без node_exporter, без ничего.
Смотрим что там есть:
cat /proc/net/dev_snmp6/eth0
Вывод это пары ключ-значение: имя счётчика и его значение. Счётчики группируются по RFC: Ip6InReceives, Ip6OutForwDatagrams, Ip6InDiscards и так далее.
Ключевые счётчики на которые смотрим:
grep -E "InReceives|OutRequests|InDiscards|OutDiscards|InHdrErrors|InAddrErrors" \
/proc/net/dev_snmp6/eth0
InDiscards и OutDiscards это дропы на сетевом уровне, ненулевые значения требуют внимания. InHdrErrors говорят о битых пакетах или несовместимости реализаций.
Скрипт мониторинга с дельтами
Абсолютные значения бесполезны, нужна динамика:
#!/bin/bash
IFACE=${1:-eth0}
INTERVAL=60
FILE="/proc/net/dev_snmp6/$IFACE"
METRICS="Ip6InReceives Ip6OutRequests Ip6InDiscards Ip6OutDiscards"
declare -A prev
while IFS=" " read -r key val; do
prev[$key]=$val
done < "$FILE"
sleep $INTERVAL
echo "=== IPv6 stats delta for $IFACE ==="
while IFS=" " read -r key val; do
for m in $METRICS; do
if [ "$key" = "$m" ]; then
delta=$(( val - ${prev[$key]:-0} ))
echo "$key: +$delta"
fi
done
done < "$FILE"
Запускаем с указанием интерфейса:
./ipv6_monitor.sh eth0
Сравниваем несколько интерфейсов разом
for iface in /proc/net/dev_snmp6/*; do
name=$(basename $iface)
discards=$(grep "Ip6InDiscards" $iface | awk '{print $2}')
[ "$discards" -gt 0 ] && echo "$name: InDiscards=$discards"
done
Покажет только интерфейсы где есть дропы, остальные не шумят. | 1 342 |
| 20 | Telegraf собирает метрики, но часть хостов пропадает из Grafana:
| 1 506 |
