Лига сисадминов
Статьи, переводы статей, заметки, и юмор на тему системного администрирования. Написать администратору: @s_league_admin_bot КНД: https://clck.ru/3Fy4kQ
Больше📈 Аналитический обзор Telegram-канала Лига сисадминов
Канал Лига сисадминов (@sysodmins_league) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 13 020 подписчиков, занимая 9 643 место в категории Технологии и приложения и 50 320 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 13 020 подписчиков.
Согласно последним данным от 26 июля, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 6, а за последние 24 часа — 0, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 15.32%. В первые 24 часа после публикации контент обычно набирает 6.71% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 1 994 просмотров. В течение первых суток публикация набирает 873 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 16.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как linux, ит_статьи, kubernetes, devops, docker.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Статьи, переводы статей, заметки, и юмор на тему системного администрирования.
Написать администратору: @s_league_admin_bot
КНД: https://clck.ru/3Fy4kQ”
Благодаря высокой частоте обновлений (последние данные получены 27 июля, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
alias g=git
Очевидно, что вместо git я мог просто писать g, что здорово экономит время для команды, которую я вызываю десятки раз в день!
# Теперь эти две команды абсолютно одинаковы: git status g statusРаньше я всегда задавал такие сокращения через alias. И за годы в моём ~/.bashrc их накопился огромный список. Но со временем, кажется, я нашел вариант получше: скрипт в $PATH. https://telegra.ph/V-chem-raznica-mezhdu-alias-i-skriptami-v-PATH-07-26 #ит_статьи #linux #shell #bash #zsh #alias #dotfiles
tail -f для сигналов в Linux
Нашёл интересный eBPF-инструмент sigwire:
Он показывает системный поток сигналов на хосте в реальном времени: кто отправил сигнал, какому процессу или потоку он предназначался, откуда появился и что произошло при доставке.
WHEN SENDER SIGNAL TARGET NOTE now bash·4402──SIGINT────> node·8813 kill(2) ↯ EINTR read caught 41µs 3.4s kernel·8813──SIGSEGV──> chrome·8813 fault default 4.1s postgres·507──SIGUSR1─> postgres·509 kill(2) caught 9µsОбычно сигналы приходится искать через
strace, подключаясь к конкретному процессу или его потомкам. sigwire вместо ptrace использует kernel tracepoints:
* signal:signal_generate;
* signal:signal_deliver;
* вход в rt_sigreturn;
* raw_syscalls:sys_exit.
Благодаря этому один запуск видит сигнальный трафик разных процессов на машине и не останавливает каждый tracee на событиях ptrace.
Для каждого события инструмент пытается связать генерацию и доставку сигнала и показать:
* отправителя и получателя;
* источник: kill(2), tgkill, timer, kernel fault и другие;
* был ли вызван userspace-handler;
* сколько времени прошло до rt_sigreturn;
* какие сигналы были заблокированы у целевого потока;
* прервал ли сигнал системный вызов.
Поиск проблем с EINTR
Самая полезная функция - обнаружение прерванных системных вызовов.
Если сигнал доставлен, пока поток находится в read, poll, accept, futex, nanosleep или другом блокирующем syscall, приложение может получить EINTR. Если код не повторяет такой вызов и handler не использует подходящий SA_RESTART, возникает классический тайминг-зависимый баг: «почему read() один раз неожиданно завершился ошибкой?»
sigwire показывает и сигнал, и пострадавший сискол:
↯ EINTR readКлавиша
e оставляет в ленте только прерванные или автоматически перезапущенные системные вызовы.
По описанию автора, основной оверхед - запись события в bounded ring buffer при генерации или доставке сигнала. Для обнаружения EINTR короткая BPF-программа также вызывается при каждом sys_exit в системе и быстро завершается, если сискол не вернул внутренний код -ERESTART*.
Ring buffer не блокирует процессы: если userspace не успевает читать события, новые записи могут быть потеряны. Публичных бенчмарков в репозитории пока нет, поэтому перед использованием на нагруженном production-хосте overhead лучше измерить самостоятельно.
Установка
curl -fsSL https://yeet.cx | sh
yeet login
yeet run github:yeet-src/sigwire
Нужен Linux с BTF/CO-RE, в частности файл:
test -r /sys/kernel/btf/vmlinux && echo BTF available
Интерфейс sigwire работает без root, но привилегированную загрузку BPF выполняет демон yeetd. Я скептически отношусь к установки чего-либо через curl | sh, так что в случае установки в продакшене я бы рекомендовал пользоваться установкой вручную.
Ограничения
- sigwire не блокирует, не задерживает и не изменяет сигналы.
- Корреляция generation/delivery выполняется без общего kernel event ID, поэтому при шторме одинаковых сигналов к одному потоку возможны неточности. Время handler измеряется до rt_sigreturn: если handler только устанавливает флаг, а основная работа выполняется позже runtime или event loop, в интерфейсе будет показано только время самого низкоуровневого обработчика.
- Проект совсем свежий, и до продовой готовности ему очень далеко. А вот для тестирования в лаборатории и мелкой диагностики подойдёт отлично.
#ит_заметки #linux #bpf #sigwire #github #syscallkill -9 shell-скрипт оставляет за собой кучу мусора в /tmp.
Классический подход с решением через trap и rm -rf тут пасует: сигнал SIGKILL просто не дает скрипту времени на очистку ресурсов.
Но есть решение изящнее и надежнее - изолированные пространства имен ядра и приватное монтирование TMPFS. Идея тут в том, чтобы привязать время жизни временных файлов напрямую к жизненному циклу самого процесса. Скрипт умер - файлы стерлись на уровне ядра, автоматически.
Сегодня разберём как это настроить с помощью unshare, обойти ограничения шебанга и заворачивать отдельные файлы в «невидимые» директории.
https://telegra.ph/EHfemernyj-TMPFS-dlya-skriptov-07-12
#ит_статьи #devops #linux #shell #kernel #tmpfs