Библиотека девопса | DevOps, SRE, Sysadmin
Все самое полезное для девопсера в одном канале. Наши курсы: https://clc.to/ZJ7Z1w По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787 Заявка: 8137718351
Show more📈 Analytical overview of Telegram channel Библиотека девопса | DevOps, SRE, Sysadmin
Channel Библиотека девопса | DevOps, SRE, Sysadmin (@devopsslib) in the Russian language segment is an active participant. Currently, the community unites 10 338 subscribers, ranking 11 827 in the Technologies & Applications category and 61 477 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 10 338 subscribers.
According to the latest data from 27 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -44 over the last 30 days and by -3 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 10.79%. Within the first 24 hours after publication, content typically collects 4.87% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 115 views. Within the first day, a publication typically gains 503 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 2.
- Thematic interests: Content is focused on key topics such as devops'a, навигация, скрипт, docker, git.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Все самое полезное для девопсера в одном канале.
Наши курсы: https://clc.to/ZJ7Z1w
По рекламе: @tproger_sales_bot
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Заявка: 8137718351”
Thanks to the high frequency of updates (latest data received on 28 October, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
leaf — терминальный превьювер Markdown на Rust. Показывает .md файлы прямо в консоли с подсветкой синтаксиса, таблицами, оглавлением и навигацией. По ощущениям ближе к GUI, чем к обычному cat.
В версии 1.21.0 два заметных обновления.
Флаг --inline для вывода в stdout
Раньше leaf работал только в интерактивном режиме — открывал TUI и ждал ввода. Теперь можно рендерить Markdown и сразу печатать результат в stdout без запуска интерфейса.
Это полезно, когда нужно встроить leaf в пайплайн или скрипт. Например, отрендерить файл и сохранить результат:
leaf --inline README.md > rendered.txt
Или прокинуть через пайп:
cat CHANGELOG.md | leaf --inline
Обновиться:
leaf --update➡️ Источник 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека devops'a #пульс_индустрии
wc -l считает строки в файле или в пайпе. Одна из тех вещей, которые используешь каждый день. Логи, CSV, исходники, конфиги.
Везде, где нужно быстро понять объём:
$ wc -l server.log
4821 server.log
Набирать wc -l несложно, но можно сделать ещё проще. Создаём алиас lc (line count) и добавляем в конфиг шелла:
# Добавьте в ~/.bashrc или ~/.zshrc, затем: source ~/.bashrc
alias lc='wc -l'
Теперь вместо wc -l пишем просто lc:
$ lc server.log
4821 server.log
Работает и с пайпами:
$ cat access.log | grep "500" | lc
37
37 пятисотых ошибок. Быстро и понятно.
➡️ du -sh * — сколько весит каждая папка
Когда заканчивается место на диске, первым делом хочется понять, кто его съел.
du -sh * покажет размер каждого элемента в текущей директории в человекочитаемом формате:
$ du -sh * 1.2G node_modules 4.0K README.md 256M dist 12K src
node_modules на первом месте. Как обычно.
Если нужно отсортировать по размеру, добавляем sort:
$ du -sh * | sort -rh
1.2G node_modules
256M dist
12K src
4.0K README.md
Флаг -r сортирует по убыванию, -h понимает суффиксы K, M, G.
➡️ xargs — передать результат одной команды как аргументы другой
xargs берёт строки из stdin и подставляет их как аргументы. Например, найти все .log файлы и удалить их:
$ find /tmp -name "*.log" | xargs rm
Если в именах файлов есть пробелы, безопаснее использовать разделитель через null:
$ find /tmp -name "*.log" -print0 | xargs -0 rm
Ещё полезный приём. Посчитать общее количество строк во всех Python файлах проекта:
$ find . -name "*.py" | xargs wc -l
➡️ column -t — превратить текст в ровную таблицу
Вывод многих команд выглядит как каша из слов, разделённых пробелами. column -t выравнивает столбцы и делает вывод читаемым:
$ cat data.txt
name age city
alice 30 berlin
bob 25 munich
$ column -t data.txt
name age city
alice 30 berlin
bob 25 munich
Хорошо работает с CSV, если указать разделитель:
$ column -t -s',' users.csv
➡️ watch — повторять команду каждые N секунд
watch запускает любую команду с заданным интервалом и обновляет вывод в терминале. По умолчанию интервал 2 секунды:
$ watch df -hЭта команда будет каждые 2 секунды показывать состояние дисков. Удобно, когда ждёте, пока освободится место, или следите за каким-то процессом. Можно изменить интервал через
-n:
$ watch -n 5 kubectl get pods
Каждые 5 секунд обновляет статус подов. Проще, чем жать стрелку вверх и Enter раз за разом.
Все эти команды работают в любом Linux и macOS из коробки. Ничего ставить не нужно.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptПрошел путь от фулстека до Backend Platform Developer в SMIT.Studio.🟣 Международный исследовательский опыт
Работал исследователем в Институте ИИ НИУ ВШЭ и в Национальном университете Сингапура (NUS).🟣 Преподаватель-практик
Ведет семинары в НИУ ВШЭ, в том числе по проектированию и разработке агентских систем.🟣 Мастер интеграции AI в Backend
Его главная суперсила — умение правильно встраивать LLM через API, выстраивать workflow и агентную логику в сложных распределенных системах.🔗 Зарегистрироваться на вебинар
ratty это эмулятор на Rust, который добавляет в консоль полноценный 3D-рендеринг через Bevy и GPU-ускоренную отрисовку текста.
Что умеет
Вместо обычного курсора в ratty крутится 3D-модель крысы. Модель, скорость вращения, амплитуду покачивания и яркость можно настроить через TOML-конфиг.
Главная фича — 3D-режим. По нажатию Ctrl+Alt+Enter терминал «выгибается» в трёхмерное пространство. Степень искривления регулируется через Ctrl+Alt+Up/Down.
Как устроен рендеринг
Пайплайн рендеринга выглядит так. ratatui формирует UI-буфер на CPU. parley_ratatui через Vello рендерит текст на GPU. Результат считывается обратно в CPU как RGBA-данные и передаётся в Bevy, который отображает картинку в 2D или 3D.
Установка
Нужен Rust-тулчейн и GPU-стек, совместимый с Bevy/wgpu.
cargo install --git https://github.com/orhun/ratty```
Конфиг по умолчанию лежит в config/ratty.toml. Его нужно скопировать в $HOME/.config/ratty/ratty.toml и менять под себя.
Пример настройки курсора:
[cursor.model]
path = "CairoSpinyMouse.obj"
scale_factor = 6.0
brightness = 0.5
x_offset = 0.5
plane_offset = 18.0
visible = true
[cursor.animation]
spin_speed = 1.4
bob_speed = 2.2
bob_amplitude = 0.08
Через spin_speed можно разогнать крысу до абсурдных скоростей. Судя по отзывам, это одно из главных развлечений в проекте.
➡️ Покрутить крысу
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрииleaf рендерит Markdown прямо в терминале, с подсветкой синтаксиса, таблицами, оглавлением и поиском.
Инструмент написан на Rust, работает на macOS, Linux, Windows и даже в Termux на Android.
Что умеет
leaf отображает Markdown-файлы с форматированием, максимально близким к графическому превью. Поддерживаются жирный текст, курсив, зачёркивание, цитаты, списки, горизонтальные линии и таблицы с Unicode-рамками.
Есть боковая панель с оглавлением (TOC) — она отслеживает текущую секцию и поддерживает двухуровневую навигацию. Переключается по клавише t.
Поиск по тексту работает через / или Ctrl+F, навигация по совпадениям — n и N.
Watch-режим
При запуске с флагом -w файл автоматически перезагружается каждые 250 мс при сохранении.
# Терминал 1 — генерация claude "explain Rust lifetimes" > notes.md # Терминал 2 — живой просмотр leaf -w notes.mdТакже
leaf принимает Markdown через stdin, что позволяет использовать его в пайплайнах:
cat README.md | leaf
claude "explain async in Python" | leaf
Выбор файлов
Если запустить leaf без аргументов, откроется fuzzy-поиск по Markdown-файлам в текущей директории. Для классического файлового браузера есть флаг --picker. Оба режима можно комбинировать с -w — после выбора файла сразу включается watch-режим.
Темы и редактор
Через Shift+T открывается выбор тем с предпросмотром прямо в терминале. Ctrl+E открывает текущий файл в системном редакторе, а Shift+E позволяет выбрать редактор из списка.
Установка
macOS, Linux, Termux:
curl -fsSL https://raw.githubusercontent.com/RivoLink/leaf/main/scripts/install.sh | sh
Windows:
irm https://raw.githubusercontent.com/RivoLink/leaf/main/scripts/install.ps1 | iexОбновление до последней версии:
leaf --updateКоманда скачивает бинарник, проверяет SHA256-хеш по опубликованному
checksums.txt и устанавливает.
leaf — компактный и для тех, кто много работает с Markdown и не хочет выходить из терминала ради превью.
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераnwinfo.exe --format=json > report.json
Или через готовый PowerShell-скрипт из репозитория:
.\hw_report.ps1
Что появилось в v1.6.3
Основные изменения касаются работы с процессорами Intel и AMD.
Для Intel добавлены сенсоры через MCHBAR и PCH, определение микроархитектуры, OC Mailbox API для чтения данных по разгону, отображение TDP и VDDQ TX IccMax/Voltage. Исправлено чтение напряжений через MSR.
Для AMD исправлена PM-таблица для Pinnacle Ridge, обновлён ryzen_smu.c.
Из общих изменений: системный трей с возможностью установки PawnIO прямо из него, настраиваемые единицы температуры (Цельсий / Фаренгейт), отключён WoW64-редирект реестра для корректного чтения на 64-битных системах, обновлены libcpuid и Nuklear.
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии0 — выключение системы.
1 — однопользовательский режим, только root, сеть не поднята. Используется для восстановления.
2 — многопользовательский без NFS (в Debian/Ubuntu — полноценный многопользовательский).
3 — многопользовательский с сетью, без графики. Типичный режим для серверов.
4 — не используется стандартно, резерв.
5 — многопользовательский с графическим интерфейсом.
6 — перезагрузка.
Как проверить
Команда runlevel выводит предыдущий и текущий уровень:
runlevelВывод выглядит так:
N 3
N означает, что предыдущего уровня не было (система только загрузилась). 3 — текущий runlevel.
На системах с systemd та же команда работает, но под капотом systemd транслирует уровни в targets. Можно спросить напрямую:
systemctl get-default
Это покажет default target — то, в каком режиме система запускается по умолчанию:
multi-user.targetА текущее активное состояние:
systemctl list-units --type=target --state=active
Когда это нужно
Чаще всего runlevel проверяют при диагностике — когда нужно понять, почему сервис не запустился, или убедиться, что сервер поднялся в правильном режиме после перезагрузки.
На современных системах с systemd runlevel остаётся для совместимости, но systemctl get-default даёт более точный ответ.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера# Debian/Ubuntu
sudo apt install fail2ban
# RHEL/CentOS
sudo dnf install fail2ban
После установки проверяем, что всё работает:
fail2ban-client -h fail2ban-client versionКак это настраивается Конфигурация хранится в
/etc/fail2ban. Основной файл — jail.conf, но менять его напрямую не стоит. Вместо этого создаём /etc/fail2ban/jail.local и переопределяем нужные параметры.
Пример минимальной конфигурации для защиты SSH:
[sshd] enabled = true port = ssh logpath = /var/log/auth.log maxretry = 5 bantime = 3600 findtime = 600
maxretry — сколько неудачных попыток допускается за период findtime (в секундах). Если их больше, IP блокируется на bantime секунд.
В данном примере пять ошибок за 10 минут приведут к блокировке на час.
Управление банами
Посмотреть активные джейлы и заблокированные IP:
sudo fail2ban-client status
sudo fail2ban-client status sshd
Разблокировать IP вручную:
sudo fail2ban-client set sshd unbanip 1.2.3.4
Fail2Ban снижает нагрузку от перебора, но не заменяет нормальную аутентификацию.
Если сервис работает на паролях, лучше перейти на ключи или двухфакторку. Fail2Ban при этом остаётся полезным дополнительным слоем защиты.
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#дайджест_недели# Debian/Ubuntu
sudo apt install fail2ban
# RHEL/CentOS
sudo dnf install fail2ban
После установки проверяем, что всё работает:
fail2ban-client -h fail2ban-client versionКак это настраивается Конфигурация хранится в
/etc/fail2ban. Основной файл — jail.conf, но менять его напрямую не стоит. Вместо этого создаём /etc/fail2ban/jail.local и переопределяем нужные параметры.
Пример минимальной конфигурации для защиты SSH:
[sshd] enabled = true port = ssh logpath = /var/log/auth.log maxretry = 5 bantime = 3600 findtime = 600Что означают эти параметры:
maxretry — сколько неудачных попыток допускается за период findtime (в секундах). Если их больше, IP блокируется на bantime секунд.
В данном примере пять ошибок за 10 минут приведут к блокировке на час.
Управление банами
Посмотреть активные джейлы и заблокированные IP:
sudo fail2ban-client status
sudo fail2ban-client status sshd
Разблокировать IP вручную:
sudo fail2ban-client set sshd unbanip 1.2.3.4
Что важно учитывать
Fail2Ban снижает нагрузку от перебора, но не заменяет нормальную аутентификацию. Если сервис работает на паролях, лучше перейти на ключи или двухфакторку.
Fail2Ban при этом остаётся полезным дополнительным слоем защиты.
➡️ https://clc.to/rCL1dg
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt- Разберем реальные кейсы стартапов и ограничения LLM. - Обсудим рабочие архитектуры: RAG, human-in-the-loop, контроль качества. - Ответим на ваши вопросы и разберем кейсы участников.🎁 Бонусы: в конце вебинара подарим промокод на скидку 10.000 ₽ на курсы и разыграем подписки на полезные AI-сервисы. 👉 Зарегистрироваться на вебинар
kubectl get pods -o wide выдаёт слишком много данных, которые в этот момент не нужны.
Для таких случаев есть флаг -o custom-columns. Он позволяет выбрать только те поля, которые важны прямо сейчас.
Чтобы получить таблицу с именем пода и образом контейнера, достаточно одной команды:
kubectl get pods -o custom-columns='NAME:.metadata.name,IMAGE:.spec.containers[*].image'
Результат — чистая таблица без лишнего. [*] в пути означает, что команда учитывает все контейнеры в поде, включая сайдкары.
Формат колонки строится по простому правилу: сначала заголовок, потом путь к полю в JSON-структуре объекта. Любое поле из kubectl get pod -o json можно вытащить таким же способом.
Это особенно удобно в скриптах и CI, где важна предсказуемость вывода. Никаких сюрпризов при обновлении версии kubectl.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptnetwork address sets, драйверы хранилища Linstor и TrueNAS, а также перебалансировка кластера через placement scriptlet.
➡️ Полный changelog | онлайн-демо
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрииpayment-service в продакшне шлёт DEBUG-логи, которые никто не смотрит:
service_name = payment-service log_level = DEBUG drop rate = 100%Batch-джоба пишет одно и то же тысячи раз в день. Оставляем 10% для выборки:
service_name = batch-processor
drop rate = 90%
Выбросить конкретный паттерн. Сервис пишет GET /healthz 200 каждые несколько секунд. Указываем строку в теле лога и дропаем 100%.
Как это работает внутри
Каждый входящий лог проходит три шага по порядку:
1. Exemptions — если лог попадает под исключение, он записывается без изменений.
2. Drop rules — правила применяются по приоритету. Первое совпавшее правило задаёт процент дропа.
3. Patterns — к оставшимся логам применяются рекомендации от самого Adaptive Logs на основе анализа 15 дней запросов.
Exemptions нужны для логов, которые нельзя терять ни при каких условиях, — аудит, ошибки из критичных сервисов. Drop rules — для того, что точно не нужно. Patterns — для всего остального, что Grafana сама определит как малоценное.
Как начать
Функция доступна в public preview в Grafana Cloud. Нужна роль plugins:grafana-adaptivelogs-app:admin — по умолчанию она есть у Grafana Admin и Org Admin.
Путь в интерфейсе:
Adaptive Telemetry → Adaptive Logs → Drop rules → Create a new drop rule
Управлять правилами также можно через CLI gcx если нужна автоматизация или интеграция с агентами.
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptutilyze решает именно эту проблему. Он измеряет SOL (Speed-of-Light) — насколько GPU использует свой теоретический максимум по вычислениям и пропускной способности памяти. И делает это в реальном времени, не замедляя нагрузку.
Что под капотом
Инструмент написан на Go и C++, использует NVIDIA CUPTI и Perf SDK для сбора аппаратных счётчиков. Работает на Linux amd64, требует GPU архитектуры Ampere и CUDA 11.0+.
Установка:
curl -sSfL https://systalyze.com/utilyze/install.sh | sh
При установке потребуется sudo — инструмент ставится системно. Если CUPTI 12+ не найден, при первом запуске предложит доустановить его через PyPI.
Запуск:
# мониторинг всех GPU
sudo utlz
# только конкретные устройства
sudo utlz --devices 0,2
# показать эндпоинты инференс-серверов на каждом GPU
sudo utlz --endpoints
По умолчанию NVIDIA ограничивает доступ к профилировочным счётчикам для не-root пользователей.
Чтобы запускать без sudo, нужно один раз отключить это ограничение:
echo 'options nvidia NVreg_RestrictProfilingToAdminUsers=0' | sudo tee /etc/modprobe.d/nvidia-profiling.conf
sudo reboot
Поддержка инференс-серверов
utlz умеет обнаруживать эндпоинты инференс-серверов и показывать roofline-потолки для каждого GPU — то есть, какой максимум достижим при текущей конфигурации. Сейчас поддерживается только vLLM, поддержка других бэкендов заявлена.
Сборка из исходников
Если нужна сборка самостоятельно — потребуется Go 1.25+, Docker и CUDA Toolkit:
# собрать нативную библиотеку и CLI
make all
# только CLI
make utlz
Есть экспериментальная поддержка ARM64 через sbsa-linux CUDA target.
Если вы занимаетесь LLM-инференсом или любой другой GPU-нагрузкой и хотите понять, насколько эффективно используется железо, utilyze даёт ответ конкретными числами, а не процентом занятости.
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера