Лига сисадминов
Статьи, переводы статей, заметки, и юмор на тему системного администрирования. Написать администратору: @s_league_admin_bot КНД: https://clck.ru/3Fy4kQ
نمایش بیشتر📈 تحلیل کانال تلگرام Лига сисадминов
کانال Лига сисадминов (@sysodmins_league) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 13 020 مشترک است و جایگاه 9 643 را در دسته فناوری و برنامهها و رتبه 50 320 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 13 020 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 26 ژوئیه, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 6 و در ۲۴ ساعت گذشته برابر 0 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 15.32% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 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