ch
Feedback
Библиотека девопса | DevOps, SRE, Sysadmin

Библиотека девопса | DevOps, SRE, Sysadmin

前往频道在 Telegram

Все самое полезное для девопсера в одном канале. По рекламе: @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),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

10 431
订阅者
无数据24 小时
+87
无数据30
帖子存档
📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека devops'a #пятничный_деплой
📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пятничный_деплой

⚙️ mysqldump через docker exec Самый простой способ сделать бэкап MySQL в Docker — запустить mysqldump прямо внутри контейнер
⚙️ mysqldump через docker exec Самый простой способ сделать бэкап MySQL в Docker — запустить mysqldump прямо внутри контейнера. Не нужно пробрасывать порты и ставить MySQL-инструменты на хост. Всё что нужно уже есть в контейнере. Базовая команда:
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 #арсенал_инженера

🌐 Облачные права для CI без долгоживущих ключей Каждый, кто настраивал непрерывную интеграцию и доставку, сталкивался с этим
🌐 Облачные права для CI без долгоживущих ключей Каждый, кто настраивал непрерывную интеграцию и доставку, сталкивался с этим моментом. Пайплайн должен обращаться к облаку, и нужно как-то передать ему права. Решение находится быстро, есть минимум четыре способа, пайп зеленеет, задача закрыта. Но именно здесь часто закладывается проблема, которая выстрелит позже. ➡️ Узнать ответ 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #задача_со_звёздочкой

✌🏻 У нас две новости — хорошая и плохая! Хорошая: Ваших знаний, скорее всего, хватит, чтобы собрать рабочую демку AI-агента в Colab. 🫡 Плохая: Вы вряд ли выведете его в прод, не обанкротившись на токенах и не слив базу. 🤯 Для защиты от таких сценариев мы полностью пересобрали курс «Разработка AI-агентов». Теперь внутри плотная работа с экономикой ресурсов, дебаг через time-travel в LangGraph, извлечение данных из кривых сканов для RAG и комплаенс по 152-ФЗ.
Если всё ещё сомневаетесь, послушайте голосовое от спикера курса Влада Прошинского, где он объясняет, как правильно тестировать агентов перед релизом.
Программа курса, полный состав спикеров и другие подробности 👈🏻 ВАЖНО! До 5 апреля на курс действует скидка, но свободные места могут закончиться раньше.

💡 Сканируйте образы перед деплоем Вы сделали всё правильно: многоступенчатая сборка, distroless-образ, non-root пользователь
💡 Сканируйте образы перед деплоем Вы сделали всё правильно: многоступенчатая сборка, distroless-образ, non-root пользователь, закреплённый дайджест. Образ компактный. А потом выходит CVE в библиотеке, которую подтянул базовый образ полгода назад. Сканирование образов закрывает эту дыру. Не нужен отдельный инструмент: Trivy бесплатный, быстрый и нормально вписывается в Go CI. Как запустить Одна команда и падаем на HIGH и CRITICAL уязвимостях:
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 из любой среды Docker Offload это облачный сервис, который решает конкретную боль: миллионы разработчико
🐳 Запускайте Docker из любой среды Docker Offload это облачный сервис, который решает конкретную боль: миллионы разработчиков в корпоративных средах не могли использовать Docker Desktop вообще. Крупные компании часто работают через VDI или управляемые рабочие столы с жёсткими политиками безопасности. На таких машинах Docker Desktop просто не запускался. Команды шли на компромиссы, платили за обходные решения и теряли время. Как это работает Контейнерный движок переезжает в облако Docker. Разработчик продолжает работать как раньше: тот же терминал, те же команды docker run, тот же интерфейс Docker Desktop. Единственное, что меняется это где именно работает движок. Соединение идёт через зашифрованный туннель, каждая сессия изолирована и не сохраняет данные после завершения. ➡️ Блог разработчиков 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

MWS Cloud Platform приглашает на сеньорский митап Что обсудим: → Почему vhost-user обходит virtio-net → Когда писать свой бал
MWS Cloud Platform приглашает на сеньорский митап Что обсудим: → Почему vhost-user обходит virtio-net → Когда писать свой балансировщик вместо HAProxy → Почему нельзя выбрать один язык для платформы Поспорим на дебатах Go vs Kotlin — все желающие могут присоединиться и задавать вопросы из зала. 📅 9 апреля, 18:00 📍 Место Санкт-Петербург, Конногвардейский бульвар, 4, Mishka Bar Для кого: сеньоров-разработчиков, сетевых инженеров и архитекторов облачных платформ Сложность докладов: 8/10 Места ограничены, регистрация обязательна. 👉

🛠 Функции в bash-скриптах Если ваш скрипт перевалил за 30 строк и вы уже сами не понимаете, что происходит в середине это си
🛠 Функции в bash-скриптах Если ваш скрипт перевалил за 30 строк и вы уже сами не понимаете, что происходит в середине это сигнал разбить его на функции. Одна функция — одна задача Это не правило из учебника, это практика. Когда каждая функция делает ровно одно дело, скрипт читается сверху вниз без лишних усилий. Видите имя функции и понимаете, что она делает. Вот простой пример. Скрипт делает бэкап директории и пишет лог.
#!/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_prompt

💻 Локальный эмулятор AWS В марте 2026 года LocalStack Community Edition перестал быть бесплатным в полном смысле слова. Тепе
💻 Локальный эмулятор AWS В марте 2026 года LocalStack Community Edition перестал быть бесплатным в полном смысле слова. Теперь нужен токен авторизации, CI-поддержка только в платных тарифах, а обновления безопасности заморожены. Floci — это open-source замена. Без регистрации, без ограничений в CI. Запускается одной командой. Floci эмулирует больше 20 AWS-сервисов, в том числе те, которых не было в бесплатном LocalStack. S3, SQS, DynamoDB, SNS, Lambda, IAM, STS, Cognito, API Gateway v2, ElastiCache с IAM-аутентификацией, RDS (PostgreSQL и MySQL), Kinesis, KMS. Все 408 SDK-тестов проходят. Минимальный docker-compose.yml:
services:
  floci:
    image: hectorvent/floci:latest
    ports:
      - "4566:4566"
    volumes:
      - ./data:/app/data
Все сервисы доступны на http://localhost:4566. Регион и учётные данные могут быть любыми. Если вы использовали LocalStack в CI или локальной разработке и не хотите переходить на платный тариф, Floci закрывает эту потребность. ➡️ Репозиторий 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

🪄 Главный спаситель веток в Git Git хранит историю всех перемещений HEAD в reflog. Даже если коммит удалён, то может он ещё живёт в репозитории. Запускаем:
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

⭐️ Топ-вакансий для девопсов за неделю DevOps — до 400 000 ₽, удалёнка DevOps Engineer Middle — от150 000 ₽, удалёнка DevOps-инженер — от 200 000 ₽ , удалёнка ➡️ Еще больше топовых вакансий — в нашем канале Devops Jobs 🐸Библиотека devops'a #вакансия_недели

⚙️ Алерты о проде в MAX Шутка! Сегодня же первое апреля! 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека devops'a
⚙️ Алерты о проде в MAX Шутка! Сегодня же первое апреля! 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a

🛡 Всегда валидируйте входные данные в bash-скриптах Скрипт без проверок это скрипт, который упадёт в самый неподходящий моме
🛡 Всегда валидируйте входные данные в bash-скриптах Скрипт без проверок это скрипт, который упадёт в самый неподходящий момент с непонятной ошибкой. Или, что хуже, отработает успешно с неправильными данными. Две проверки, которые должны быть в начале любого скрипта:
#!/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_prompt

🔄 SystemRescue 13.00 Обновился SystemRescue. Это загрузочный Linux-дистрибутив для восстановления систем, работы с дисками и
🔄 SystemRescue 13.00 Обновился SystemRescue. Это загрузочный Linux-дистрибутив для восстановления систем, работы с дисками и диагностики, аналог старого SystemRescueCd. Что изменилось Ядро обновлено до Linux 6.12.20 с долгосрочной поддержкой (LTS). bcachefs — инструменты и модуль ядра обновлены до версии 1.37.3. bcachefs продолжает активно развиваться, обновления важны для работы с этой файловой системой. GParted обновлён до 1.8.1 — основной GUI-инструмент для работы с разделами. HiDPI-экраны — исправлена проблема с крошечным шрифтом: теперь используется шрифт по умолчанию из ядра. Дополнительно добавлен скрипт для настройки масштаба через конфиг. Новые утилиты: yq — обработка 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 #арсенал_инженера

📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека devops'a #пятничный_деплой
📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пятничный_деплой

🛠 [[ ]] вместо [ ] в bash не стиль, а безопасность Одиночные скобки [ ] — это не синтаксис 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_prompt

🤩 Один плагин вместо пяти команд Знакомая ситуация: под падает в CrashLoopBackOff, и вы начинаете по очереди гонять kubectl
🤩 Один плагин вместо пяти команд Знакомая ситуация: под падает в CrashLoopBackOff, и вы начинаете по очереди гонять kubectl 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 #арсенал_инженера

📰 Подборка обновлений недели и не только Последний дайджест марта, следующий выйдет уже в апреле. — Wayland 1.25 — Обновлени
📰 Подборка обновлений недели и не только Последний дайджест марта, следующий выйдет уже в апреле. — Wayland 1.25Обновление SysVinitОбновление Ansible5 ошибок проектирования интеграции с кафкойВышел Kali Linux 2026.1 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #дайджест_недели

Ubuntu 26.04 LTS Beta уже доступна Команда Ubuntu выпустила бета-версию Ubuntu 26.04 LTS с кодовым именем Resolute Raccoon. Ф
Ubuntu 26.04 LTS Beta уже доступна Команда Ubuntu выпустила бета-версию Ubuntu 26.04 LTS с кодовым именем Resolute Raccoon. Финальный релиз запланирован на 23 апреля 2026 года. Что изменилось относительно Ubuntu 25.10: Ядро обновилось до версии 7.0, а рабочий стол GNOME до версии 50. В инструментарии разработчика: LLVM 21 стал дефолтным компилятором, Rust обновился до 1.93.1, OpenJDK до версии 25, PHP до 8.5.2 с новым pipe-оператором. В базах данных крупные апдейты: PostgreSQL 18 с новой подсистемой I/O и приростом производительности до 3× при чтении с диска, MariaDB 11.8 теперь в main с полной поддержкой. Docker 29 с экспериментальной поддержкой nftables, containerd image store теперь дефолтный для свежих установок. Съёмные носители теперь монтируются в /run/media вместо /media. ➡️ Источник 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

Библиотека девопса | DevOps, SRE, Sysadmin - Telegram 频道 @devopsslib 的统计与分析