Библиотека девопса | DevOps, SRE, Sysadmin
Все самое полезное для девопсера в одном канале. Наши курсы: https://clc.to/ZJ7Z1w По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
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 390 subscribers, ranking 11 449 in the Technologies & Applications category and 61 235 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 10 390 subscribers.
According to the latest data from 27 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 6 over the last 30 days and by 0 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 10.22%. Within the first 24 hours after publication, content typically collects 4.22% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 062 views. Within the first day, a publication typically gains 439 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 1.
- 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
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787”
Thanks to the high frequency of updates (latest data received on 28 August, 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.
#!/bin/bash
set -euo pipefail
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}
backup_files() {
local source_dir="$1"
local dest_dir="$2"
log "Backing up $source_dir to $dest_dir"
cp -r "$source_dir" "$dest_dir"
}
# Main
backup_files "/var/www" "/backups/www"
log "Done."
Обратите внимание на local перед переменными внутри backup_files. Без local переменная source_dir существует глобально. Если где-то ещё в скрипте есть переменная с таким же именем, вы получите баг, который сложно отловить. С local переменная живёт только внутри своей функции и нигде больше.
Ещё плюс это переиспользование. Функцию log можно взять и вставить в любой другой скрипт без изменений.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptservices:
floci:
image: hectorvent/floci:latest
ports:
- "4566:4566"
volumes:
- ./data:/app/data
Все сервисы доступны на http://localhost:4566. Регион и учётные данные могут быть любыми.
Если вы использовали LocalStack в CI или локальной разработке и не хотите переходить на платный тариф, Floci закрывает эту потребность.
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераgit reflog
Увидите список всех состояний HEAD с хэшами. Находим запись до того, как всё сломалось:
abc1234 HEAD@{3}: commit: my important work
Восстанавливаем коммит
Вариант 1. Вернуть ветку на нужный коммит:
git reset --hard abc1234
Вариант 2. Cоздать новую ветку из того коммита:
git checkout -b recovery-branch abc1234
Если были незакоммиченные изменения
Reflog тут не поможет — git reset --hard уничтожает их без следа. Но есть варианты:
• Проверьте .git/ORIG_HEAD. Иногда Git сохраняет предыдущее состояние туда
• Попробуйте git fsck --lost-found —- ищет «висячие» объекты в репозитории
• Если работаете в VS Code или IntelliJ, то проверьте Local History, часто спасает
Git почти никогда не удаляет данные сразу. У вас есть ~30 дней, пока сборщик мусора не почистит потерянные объекты.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt#!/bin/bash
set -euo pipefail
# Проверка количества аргументов
if [[ $# -lt 1 ]]; then
echo "Usage: $0 <filename>"
exit 1
fi
filename="$1"
# Проверка что файл существует
if [[ ! -f "$filename" ]]; then
echo "Error: file '$filename' not found"
exit 1
fi
$# это количество переданных аргументов. $0 — имя самого скрипта. $1, $2 и далее это аргументы по порядку.
Валидация в начале — это контракт скрипта. Либо все условия выполнены и работа начинается, либо скрипт завершается с понятным сообщением до того, как что-то пошло не так.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptyq — обработка YAML, XML и TOML из командной строки, аналог jq для структурированных форматов
fatsort — сортировка файлов на FAT-разделах
nss-mdns — поддержка mDNS для резолвинга .local-имён в сети
iotop на Python заменён на iotop-c, это переписанная на C версия с меньшими зависимостями и более стабильной работой.
Исправлен скрипт yay-prepare, который падал с ошибками при подготовке AUR-окружения.
➡️ Release notes
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии--auto-approve убирает единственную паузу, которую Terraform делает перед тем, как что-то сломать — подтверждение плана. Именно там человек видит «1 to destroy» и успевает остановиться. Без этой паузы план исполняется немедленно.
Разработчик переносит ресурс из инлайн-определения в shared module. Имя ресурса меняется. Terraform видит это как «уничтожить старый, создать новый» и это корректная логика. CI-пайплайн с --auto-approve не даёт никому это увидеть до того, как база уже удалена.
# Без --auto-approve вы бы увидели это и остановились: ~ aws_security_group.web # изменить — окей + aws_cloudwatch_alarm.cpu # добавить — окей - aws_db_instance.primary # УДАЛИТЬ — стоп # С --auto-approve это уже исполняется, пока вы читаете телегуЧто делать вместо этого Разделить
plan и apply на два шага:
# Шаг 1 — сохранить план
terraform plan -out=plan.tfplan
# Шаг 2 — проверить на деструктивные операции
terraform show -json plan.tfplan | \
jq '[.resource_changes[]? | select(.change.actions[] == "delete")]'
# Шаг 3 — применить именно этот план, без новых сюрпризов
terraform apply plan.tfplan
Добавить prevent_destroy для критичных ресурсов:
resource "aws_db_instance" "primary" {
# ...
lifecycle {
prevent_destroy = true
}
}
Terraform упадёт с ошибкой ещё на этапе плана до того, как что-либо будет удалено.
Когда --auto-approve допустим
Только для эфемерной инфраструктуры: тестовые окружения, которые поднимаются и сносятся в рамках одного CI-прогона, sandbox-окружения без реальных данных.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера[ ] — это не синтаксис bash, а внешняя команда /usr/bin/[. Двойные [[ ]] — встроенная конструкция самого bash. Разница не только косметическая.
Где одиночные скобки ломаются
Пустая переменная без кавычек это синтаксическая ошибка:
name=""
# [ ] — падает с "unary operator expected"
if [ $name = "admin" ]; then
# [[ ]] — работает корректно
if [[ $name == "admin" ]]; then
Строка с пробелами без кавычек:
file="my file.txt"
# [ ] — видит два аргумента, ломается
if [ -f $file ]; then
# [[ ]] — обрабатывает как одно значение
if [[ -f $file ]]; then
Что умеют только [[ ]]
Паттерн-матчинг без внешних утилит:
filename="access.log"
if [[ "$filename" == *.log ]]; then
echo "log file"
fi
Регулярные выражения через =~:
version="2.4.1"
if [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "valid semver"
fi
Логические операторы && и || внутри скобок:
# [ ] — нельзя, нужно выносить наружу
if [ "$a" = "x" ] && [ "$b" = "y" ]; then
# [[ ]] — можно внутри
if [[ "$a" == "x" && "$b" == "y" ]]; then
Одно исключение
[ ] нужен для POSIX-совместимых скриптов с #!/bin/sh — там [[ ]] не работает. Если шебанг #!/bin/bash — используйте [[ ]] везде.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptkubectl describe pod, kubectl logs --previous, kubectl get events... и пытаетесь склеить картину в голове.
kubectl-crashloop делает это за вас одной командой:
kubectl crashloop payments-api-proglib -n production
Плагин объединяет в один терминальный отчёт:
- Warning Events из кластера
- LastTerminationState (exit code, причина, время)
- Логи предыдущего контейнера (--previous)
- Если предыдущих логов уже нет — фолбэк на текущие с пометкой
Что ещё умеет
-o json — JSON-вывод для автоматизации и incident-тулинга
--tail N — количество строк логов на контейнер
--limit N — максимум записей о крашах
-c container — ограничить вывод одним контейнером
Установка через Krew:
kubectl krew install crashloop
Базовый запуск:
kubectl crashloop payments-api-proglib
С указанием namespace:
kubectl crashloop payments-api-proglib -n production
Конкретный контейнер, больше логов:
kubectl-crashloop payments-api-6d9c9b77d9-x2n5k -n production -c api --tail 10
JSON-вывод для скриптов:
kubectl crashloop payments-api-6d9c9b77d9-x2n5k -n production -o json
Важный нюанс
Плагин работает на уровне конкретного пода, а не деплоймента. Если хотите проверить деплоймент, то выберите один из реплика-подов вручную. Это сознательное ограничение: инструмент остаётся простым и предсказуемым.
Необходимые права доступа
Минимальный набор RBAC-прав в нужном namespace:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: kubectl-crashloop
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get"]
- apiGroups: [""]
resources: ["events"]
verbs: ["list"]
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераCVE-2026-27654 — переполнение в модуле WebDAV при обработке запросов COPY и MOVE с директивой alias. Позволяет обратиться к файлам за пределами базового каталога. Примечательно, что уязвимость обнаружена с помощью AI-модели Claude.
CVE-2026-27784 и CVE-2026-32647 — переполнения буфера в модуле ngx_http_mp4_module при обработке специально сформированных MP4-файлов. Последствия могут не ограничиваться аварийным завершением процесса.
Остальные три:
CVE-2026-27651 — разыменование нулевого указателя при некорректном использовании CRAM-MD5 или APOP.
CVE-2026-28753 — манипуляция PTR-записями DNS для подстановки данных атакующего в SMTP-соединение к бэкенду.
CVE-2026-28755 — обход OCSP-проверки сертификата в модуле stream.
Новое в 1.29.7
Добавлена поддержка Multipath TCP: пакеты теперь можно доставлять одновременно по нескольким маршрутам через разные сетевые интерфейсы. Включается параметром multipath в директиве listen.
В директиву keepalive блока upstream добавлен параметр local: для каждого блока location и server теперь можно поддерживать отдельное соединение к upstream вместо общего. Сама директива keepalive в блоке upstream теперь включена по умолчанию.
Важное изменение поведения: в режиме прокси теперь по умолчанию используется HTTP/1.1 с keep-alive. Если бэкенд поддерживает только HTTP/1.0, нужно явно вернуть старое поведение:
proxy_http_version 1.0;
proxy_set_header Connection "Close";
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии#!/bin/bash
set -euo pipefail
Первая строка это шебанг. Она говорит системе, каким интерпретатором запускать скрипт. Без неё поведение зависит от оболочки пользователя, а это непредсказуемо.
Вторая строка включает три флага сразу.
set -e останавливает скрипт, если любая команда завершилась с ошибкой. По умолчанию bash игнорирует ошибки и идёт дальше.
set -u превращает обращение к необъявленной переменной в ошибку. Опечатка в имени переменной без этого флага просто вернёт пустую строку и скрипт продолжит работу с пустым значением там, где ожидал путь или имя файла.
set -o pipefail ловит ошибки внутри пайпов. Без него такая конструкция:
cat file.txt | grep "pattern"
вернёт успех, даже если cat не смог открыть файл. Флаг фиксирует ошибку в любом месте цепочки.
Шебанг + set -euo pipefail это минимальный стандарт для любого bash-скрипта, который делает что-то важное.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptkali-undercover добавили режим BackTrack: рабочий стол трансформируется в интерфейс BackTrack 5 с оригинальными обоями, цветами и темой окон.
Запустить можно из меню или командой:
kali-undercover --backtrackПовторный запуск возвращает обычный Kali. 8 новых инструментов •
AdaptixC2 — фреймворк для постэксплуатации и эмуляции атак
• Atomic-Operator — запуск тестов Atomic Red Team на разных ОС
• Fluxion — аудит безопасности и социальная инженерия
• GEF — расширенный интерфейс для GDB
• MetasploitMCP — MCP-сервер для Metasploit
• SSTImap — автоматическое обнаружение SSTI-уязвимостей
• WPProbe — быстрый энумератор плагинов WordPress
• XSStrike — продвинутый сканер XSS
Всего: 25 новых пакетов, 9 удалено, 183 обновления. Ядро обновлено до 6.18.
Известная проблема
Метапакет kali-tools-sdr и пакеты gr-air-modes и gqrx-sdr сломаны в этом релизе. Исправление ожидается в следующем выпуске.
NetHunter
• Исправлены баги в приложении: WPS-сканирование, проверка HID-разрешений, кнопка «Назад»
• Новое ядро для Redmi Note 8 (Android 16)
• На Samsung S10 наконец заработали reaver, bully и kismet
• Первый рабочий патч для Wi-Fi-инъекций на чипсетах Qualcomm потенциально открывает поддержку для большинства телефонов на Qualcomm
Обновиться с предыдущей версии:
sudo apt update && sudo apt -y full-upgrade
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрииMCP и A2A-взаимодействие, чтобы агенты могли вас читать;
— научиться контролировать стоимость (лимиты, кэш, роутинг между моделями);
— настроить AgentOps: трейсинг, логирование и отлов регрессий.
Всё это ждёт вас на обновлённом курсе «Разработка AI-агентов». Мы специально сделали фокус на утилитарном инжиниринге и production-ready решениях.
Кстати, до 29 марта можно забрать курс с большой скидкой, и стоит поторопиться — мест на потоке всё меньше.
Зафиксировать цену и начать деплоить агентов без слива бюджета 👈/api — одни серверы, /static — другие
— Манипуляция заголовками, SSL-терминация
— Sticky sessions (привязка сессии к конкретному серверу)
— Rate limiting, аутентификация, логирование
— Защита от XSS и SQL-инъекций — некоторые L7-балансировщики работают как WAF
Цена: типичная задержка L7 около 10 миллисекунд против микросекунд у L4. Плюс CPU на парсинг каждого запроса.
Когда что использовать
Выбирайте L4, если:
— Протокол не HTTP (DNS, базы данных, кастомный TCP)
— Нужна максимальная скорость и минимальный оверхед
— Простое распределение без контентного роутинга
Выбирайте L7, если:
— Работаете с HTTP/HTTPS/gRPC
— Нужен роутинг по путям, заголовкам, кукам
— Хотите SSL-терминацию в одном месте
— Важна наблюдаемость и безопасность
Как это выглядит в продакшне
Netflix комбинирует L4-балансировщики на региональном уровне с L7-шлюзами (Zuul/Envoy) для разделения логики. AWS предлагает Classic ELB (L4) и ALB (L7), большинство современных архитектур выбирают ALB.
Практическое правило: начинайте с L7 для HTTP-нагрузок. Переходите к L4 только когда упираетесь в производительность или нужен протоколо-агностичный роутинг.
Балансировщик это первый рубеж вашей архитектуры. Каждое его решение влияет на пользователя ещё до того, как запрос добрался до вашего кода.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера