Библиотека девопса | DevOps, SRE, Sysadmin
Все самое полезное для девопсера в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/25874ec4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Показати більше📈 Аналітичний огляд Telegram-каналу Библиотека девопса | DevOps, SRE, Sysadmin
Канал Библиотека девопса | DevOps, SRE, Sysadmin (@devopsslib) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 10 431 підписників, посідаючи 11 852 місце в категорії Технології та додатки та 62 915 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 10 431 підписників.
За останніми даними від 10 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на 0, а за останні 24 години на 0, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 8.49%. Протягом перших 24 годин після публікації контент зазвичай збирає 5.65% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 886 переглядів. Протягом першої доби публікація в середньому набирає 589 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 4.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як devops'a, навигация, скрипт, docker, git.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Все самое полезное для девопсера в одном канале.
По рекламе: @proglib_adv
Учиться у нас: https://proglib.io/w/25874ec4
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787”
Завдяки високій частоті оновлень (останні дані отримано 11 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
docker exec mysql-container mysqldump \
-u root -p'yourpassword' \
--single-transaction \
--routines \
--triggers \
mydatabase > backup_$(date +%Y%m%d_%H%M%S).sql
Флаг --single-transaction обязателен для InnoDB. Он делает консистентный снимок без блокировки таблиц, приложение продолжает работать в штатном режиме. Флаги --routines и --triggers включают в дамп хранимые процедуры и триггеры, которые mysqldump по умолчанию пропускает.
Бэкап всех баз сразу:
docker exec mysql-container mysqldump \
-u root -p'yourpassword' \
--single-transaction \
--all-databases > full_backup_$(date +%Y%m%d_%H%M%S).sql
Восстановление:
docker exec -i mysql-container mysql \
-u root -p'yourpassword' mydatabase < backup_20260403_040000.sql
Но у этого подхода есть потолок. Нет планировщика, нет сжатия, нет отправки на удалённое хранилище. Всё это придётся добавлять самостоятельно.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераLangGraph, извлечение данных из кривых сканов для RAG и комплаенс по 152-ФЗ.
Если всё ещё сомневаетесь, послушайте голосовое от спикера курса Влада Прошинского, где он объясняет, как правильно тестировать агентов перед релизом.Программа курса, полный состав спикеров и другие подробности 👈🏻 ВАЖНО! До 5 апреля на курс действует скидка, но свободные места могут закончиться раньше.
trivy image --exit-code 1 --severity HIGH,CRITICAL myapp:latest
Для GitHub Actions:
- name: Scan image
uses: aquasecurity/trivy-action@master
with:
image-ref: myapp:latest
exit-code: '1'
severity: 'HIGH,CRITICAL'
Запускайте после каждой сборки. Поймаете проблему до прода, а не после звонка от безопасников или, что хуже, после инцидента.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераdocker run, тот же интерфейс Docker Desktop.
Единственное, что меняется это где именно работает движок. Соединение идёт через зашифрованный туннель, каждая сессия изолирована и не сохраняет данные после завершения.
➡️ Блог разработчиков
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии#!/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
#арсенал_инженера
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
