DevOps
8.74K subscribers
1.37K photos
864 videos
28 files
1.7K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
Wal-listener — это инструмент для прослушивания логов транзакций PostgreSQL (WAL) и конвертации их в удобный для обработки формат JSON.

Возможности

- Прослушивание изменений в PostgreSQL в режиме реального времени.
- Поддержка нескольких слотов репликации.
- Удобный вывод в формате JSON.
- Готов к использованию в качестве сервиса.

Пример использования

1. Создаём слот репликации:

SELECT * FROM pg_create_logical_replication_slot('test_slot', 'wal2json');


2. Запускаем wal-listener:

wal-listener --dsn "host=localhost port=5432 user=postgres dbname=test" --slot test_slot


3. Получаем JSON-объекты при изменениях в базе данных.

https://github.com/ihippik/wal-listener

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍2
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
👎10🤮5💩3
Kubernetes: как не угробить прод с неправильными Liveness/Readiness пробыми 🧟‍♂️

Если ваши поды «умирают» слишком рано или слишком долго не проходят readiness, возможно, вы не до конца понимаете, как работают пробы в Kubernetes. А между тем, это критично для uptime и стабильности продакшена.


📌 Пробы - не «просто пинги»

- livenessProbe отвечает за "жив ли под". Если не проходит - kubelet убивает контейнер.
- readinessProbe - "готов ли под принимать трафик". Пока не готов - не пускается в сервис.

Неправильная настройка может привести к:
- бесконечным перезапускам (flapping),
- недоступности сервиса после деплоя,
- ненужной нагрузке на кластер.


🛠 Типичные ошибки

1. Тот же эндпоинт для обеих проб
Readiness может требовать больше инициализации. Разделяйте эндпоинты:
/healthz/live и /healthz/ready - хорошая практика.

2. Слишком агрессивные тайминги
initialDelaySeconds, timeoutSeconds, failureThreshold - не забывайте учитывать холодный старт (особенно при Java, .NET, DB init).

3. Тестирование только на dev/stage
На проде нагрузка выше, сеть может вести себя иначе. Профиль подов должен учитывать real-world сценарии.

4. Liveness вместо retries
Liveness не замена retry-логике в приложении. Используйте circuit breakers, retries и grace periods на уровне сервиса.


Как делать правильно

- Используйте простые GET-запросы, без heavy логики.
- Не тестируйте зависимости (БД, внешние API) в liveness - пусть это останется за readiness.
- Применяйте terminationGracePeriodSeconds и preStop hook, чтобы избежать резкого отключения.


🧩 Стартовый шаблон для readiness/liveness

livenessProbe:
httpGet:
path: /healthz/live
port: 8080
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 3

readinessProbe:
httpGet:
path: /healthz/ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 3



Вывод: Настройка prob - это не ритуал ради YAML-а. Это инструмент стабильности и доступности. Подходите к ним осознанно, валидируйте на нагрузке и помните, что "здоровый" под ≠ "готовый к трафику".

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍5
🚀 Ускоряем CI/CD пайплайны на GitHub Actions: кеширование по-взрослому

CI тормозит? Пайплайн гоняет npm install по 5 минут? Пора серьёзно поговорить о кешировании в GitHub Actions.


GitHub Actions — мощный инструмент, но без кеша даже самый простой билд превращается в черепаху. Разберёмся, как грамотно использовать actions/cache, чтобы выжать максимум скорости.

🔧 Основы кеширования

GitHub предоставляет официальный экшен actions/cache, который позволяет сохранять каталоги между запусками воркфлоу. Ключевое понятие здесь — ключ кеша (cache key).

Пример:


- uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-


Что тут происходит:
- path — папка, которую кешируем (`~/.npm`).
- key — уникальный ключ, зависящий от lock-файла.
- restore-keys — запасной вариант, если точного совпадения ключа нет.

Трюки для ускорения

1. Разделяй кеш по задачам. Не пихай всё в один архив. Кешируй отдельно npm, node_modules, dist/ — это гибко и эффективно.

2. Для Docker-образов — кешируй слои. Используй BuildKit и флаг --cache-to, --cache-from. Пример:


- name: Build Docker image
run: |
docker buildx build \
--cache-from=type=gha \
--cache-to=type=gha,mode=max \
-t my-app .


3. Осторожно с ключами. Часто меняющийся ключ = каждый раз новый кеш = медленно. Сделай разумный баланс между стабильностью и свежестью.

4. Тестируй локально. Используй act, чтобы отлаживать воркфлоу на локалке — сэкономишь время и нервы.


Вывод

Кеш в GitHub Actions — не волшебная пуля, но при правильной настройке он может сократить время CI в разы. Следи за размером кеша, обновляй ключи с умом и профилируй пайплайн. И не забывай: кеш — твой друг, пока ты его контролируешь.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍2
💡McFly - это улучшенная история командной строки с возможностями поиска на основе временной оси, контекста и машинного обучения.

McFly заменяет стандартную историю bash с возможностью быстрого поиска по истории команд с учётом контекста текущего каталога, времени и других факторов. Он написан на Rust и работает в терминале с поддержкой fzf-подобного интерфейса.

Поддерживает:
- Bash
- Zsh
- Fish

Возможности:
- Умный поиск по истории команд.
- Учёт текущего каталога и других факторов.
- Простое подключение к вашему shell.

Установка:
Доступен через Homebrew, AUR, Nix и другие.

https://github.com/cantino/mcfly

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
2👍2
Трюки для ускорения Docker-образов на проде

Контейнеры это сердце современных приложений. Но тяжёлые образы = медленные деплои и высокие затраты. Как ускорить образы без боли?

Мультистейдж билды - must have

Используй multi-stage builds, чтобы собрать приложение в одном контейнере, а продакшн-образ сделать минимальным:

# Сборка
FROM golang:1.22 as builder
WORKDIR /app
COPY . .
RUN go build -o app

# Продакшн
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/app .
CMD ["./app"]


Минимизируй базовые образы

Выбирай облегчённые базовые образы:
- alpine вместо ubuntu
- distroless для максимальной безопасности и минимального веса

Оптимизируй порядок слоёв

Чем выше изменяемость, тем ниже слой:
- Сначала COPY go.mod, npm package.json, установка зависимостей
- Потом COPY . . с кодом проекта

Это позволяет кэшировать большую часть слоёв даже при частых изменениях кода.

Чисть за собой

Всегда удаляй временные файлы и зависимости для сборки:

RUN apt-get install -y build-essential && \
make build && \
apt-get remove --purge -y build-essential && \
apt-get autoremove -y && \
apt-get clean


Сжимай образы

Используй docker-slim, он автоматически оптимизирует образ, удаляя всё ненужное:

docker-slim build --http-probe my-app:latest



Как применять и чего избегать
- В продакшне старайся держать образы <100MB
- Не добавляй лишние пакеты “на всякий случай”
- Проверяй образы на уязвимости: trivy image your-app:tag

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍51👎1
Yandex B2B Tech представила Monium — платформу observability для мониторинга ИТ-систем, которая изначально была разработана командой Yandex Infrastructure для мониторинга критических сервисов внутри Яндекса, а теперь она доступна всем внешним пользователям.

Что по цифрам:
• До 3 млрд семплов метрик в секунду
• Около 44 млн спанов трассировки
• До 60 ГБ логов ежесекундно
• Порядка 16 тысяч внутренних пользователей

Платформа объединяет метрики, логи и трейсы в одном интерфейсе и помогает быстрее находить причину инцидентов. Поддерживаются стандарты Prometheus и OpenTelemetry, что упрощает интеграцию с существующими DevOps-конвейерами.
Среди первых внешних тестовых пользователей — ОТП Банк.
По прогнозам Gartner, к 2027 году до 80% крупных компаний будут использовать observability-платформы для управления рисками стабильности сервисов.
👍81
Bruno — это новый, современный и удобный инструмент для работы с API. В отличие от Postman и аналогов, Bruno хранит все данные локально в виде обычных файлов и папок, что позволяет легко версионировать их с помощью Git.

Основные особенности:
- Локальное хранение данных без облака
- Полная совместимость с Git
- Высокая производительность и минималистичный интерфейс
- Открытый исходный код

https://github.com/usebruno/bruno

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍7👎1
CI/CD без боли: оптимизация пайплайнов на GitHub Actions 🚀

GitHub Actions — мощный инструмент, но без оптимизации ваш пайплайн легко превратится в тормозную мясорубку. Разбираемся, как выжать максимум из CI/CD на GitHub.


Почему это важно:
Быстрые и надёжные пайплайны — ключ к высокой скорости доставки. Медленные сборки = потеря времени, нервов и денег.


1. Кэшируй разумно
Используй actions/cache для ускорения зависимостей, но не кэшируй всё подряд. Пример для Node.js:


- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-


⚠️ Ключ должен быть завязан на lock-файлы, иначе можно словить конфликты версий.


2. Делай job-ы параллельными
Разделяй пайплайн на независимые шаги — unit-тесты, линтеры, сборка. Добавляй needs: там, где реально нужно, а не везде.


3. Matrix strategy — must-have
Хочешь тестировать на разных версиях языка/ОС? Используй matrix:


strategy:
matrix:
node-version: [16, 18, 20]


Это масштабирует проверку без дублирования кода.


4. Отключи ненужные события
Не запускай воркфлоу на каждом чихе. Используй on: грамотно:


on:
push:
branches:
- main
pull_request:
paths:
- 'src/**'


Это поможет не перегружать runners.


5. Используй workflow_dispatch для ручных запусков
Иногда надо протестить пайплайн руками — не бойся добавить ручной триггер:


on:
workflow_dispatch:



6. Логи и таймауты — твои друзья
Добавляй timeout-minutes к job-ам и выводи ключевые логи через ::group:: и ::endgroup::, чтобы не утонуть в консоли.


Вывод:
Грамотно настроенный GitHub Actions экономит время и снижает головную боль. Избегай монолитных пайплайнов, кэшируй умно и тестируй только то, что нужно. Автоматизация — это про контроль, а не хаос.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍3
🚨 Helm: как не сломать прод — 5 ошибок, которые делают все

Helm — must-have инструмент для деплоя в Kubernetes. Но даже опытные инженеры наступают на одни и те же грабли, особенно в проде. Разберём, какие ошибки чаще всего приводят к падениям и багам.


🔸 1. helm upgrade без флага --atomic
Без --atomic Helm не откатывает релиз при ошибке — в кластере остаётся полусломанное состояние.
Решение: всегда используйте --atomic на проде:


helm upgrade my-app ./chart --atomic --install


🔸 2. Забытый values.yaml с тестовыми значениями
Нередко инженеры коммитят values.yaml с включёнными debug-логами, выключенным HPA и отключённым SSL.
Решение:

* Разделяй values по окружениям (values-prod.yaml, values-staging.yaml)
* Используй .gitignore для временных файлов
* Применяй валидацию с helm-schema-gen

🔸 3. Не pinned зависимости в Chart.yaml
Если чарты-зависимости подтягиваются без фиксации версий (version: ^1.2.3), то обновления могут неожиданно всё сломать.
Решение:
Фиксируй зависимости чётко: version: 1.2.3 и контролируй обновления вручную.

🔸 4. Отсутствие pre-upgrade и post-upgrade хуков
Если приложение требует миграций БД или прогрева кэша, а хуки не заданы — велика вероятность получить нерабочий релиз.
Решение:
Определи хуки в templates/hooks.yaml:


apiVersion: batch/v1
kind: Job
metadata:
annotations:
"helm.sh/hook": pre-upgrade


🔸 5. Helm secrets хранятся в чистом виде в Git
Распакованный secrets.yaml в Git — это инцидент.
Решение:

* Используй helm-secrets с sops
* Шифруй secrets.yaml и расшифровывай только при деплое:


helm secrets upgrade my-app -f secrets.enc.yaml



Вывод:
Helm — мощный, но не прощающий ошибок инструмент. Настрой atomic деплой, следи за values и зависимостями, автоматизируй pre/post-хуки и защищай секреты. Это минимальный чеклист для прод-готовности.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍32
Netshoot — набор инструментов для устранения сетевых проблем с Docker и Kubernetes.

Отладка сетей Docker и Kubernetes может быть сложной. Однако при правильном понимании принципов работы сетей Docker и Kubernetes, а также наличии подходящих инструментов, вы сможете эффективно выявлять и устранять сетевые проблемы. Контейнер netshoot включает в себя мощный набор инструментов для диагностики сетевых проблем в Docker. Вместе с этими инструментами идут практические примеры, демонстрирующие, как netshoot можно использовать в реальных сценариях.

https://github.com/nicolaka/netshoot

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
2👍2
Media is too big
VIEW IN TELEGRAM
Kubernetes без интернета: как мы устанавливаем Deckhouse в закрытом контуре (обзор и видео доклада)

Всем привет! На связи Максим Набоких, архитектор и технический руководитель Deckhouse Kubernetes Platform. Deckhouse работает в компаниях из разных отраслей: нефтегазовые предприятия, финтех, государственные организации, банки, облачные провайдеры и так далее. И больше чем в половине этих организаций во внутренней инфраструктуре нет интернета — он просто запрещён. Поэтому нам надо было придумать процесс установки своей платформы в закрытый контур.

О том, как устанавливать Kubernetes (Deckhouse использует ванильный K8s), где «не ступал» ни один пакет из публичной сети, я рассказал на HighLoad++ 2023. Эта статья — текстовая версия моего доклада. Мы разберём целевую схему закрытого контура, нюансы работы инструментов для создания безопасной среды, посмотрим, как готовить дистрибутив Kubernetes-платформы к установке и осуществлять доставку приложений в закрытых окружениях.

https://habr.com/ru/companies/oleg-bunin/articles/798317/

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍31
Crd-to-sample-yaml or cty ( city )

Утилита для генерации манифестов YAML из CRD.

Это простая утилита, написанная на Go, которая читает CRD-файлы и создает из них YAML-образцы.

Она использует controller-tools/pkg/crd/schema и controller-tools/pkg/crd/markers для интерпретации и разбора схемы.

Установка:


go install github.com/Skarlso/crd-to-sample-yaml@latest


Использование:


crd-to-sample-yaml -path ./path/to/crds > output.yaml


https://github.com/Skarlso/crd-to-sample-yaml

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍41
💡 Как DevOps'у не утонуть в логах

Когда в продакшене случается затык, первое, что мы делаем - лезем в логи. Но с микросервисами, десятками подов и различными компонентами инфраструктуры, логов становится столько, что можно утонуть.

Вот несколько проверенных приёмов, которые реально спасают время:

🔹 Стандартизируй формат логов. JSON - твой друг. Структурированные логи можно парсить, фильтровать и индексировать.

🔹 Сразу думай про central logging. Loki + Grafana, Elasticsearch + Kibana или даже простой Fluent Bit + S3. Главное - не SSH на 20 серверов.

🔹 Добавляй trace_id во все логи. Это твой маяк в море. Особенно полезно, когда надо отслеживать один запрос через всю систему.

🔹 Фильтры, фильтры, фильтры. Хорошие правила фильтрации в Grafana или Kibana - это как хороший кофе с утра. Делают день лучше.

🔹 Логи - это не помойка. Не пиши туда print("Hello from service X"). Пиши полезное: ошибки, статусы, идентификаторы.

И напоследок: не забывай про ротацию и retention. Логи не должны жить вечно, особенно если ты не хочешь платить лишнее за storage.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍5
Порядок в инфраструктуре: BSA-модель на практике

Инфраструктурный код хранится в разных местах, каждая команда пишет по-своему, развертывание каждый раз проходит по разному сценарию, а ответственность не закреплена. Знакомо? В итоге — задержки, долгие согласования и лишние конфликты.

На вебинаре 13 марта «Экспресс42» и «Магнит OMNI» покажут, как модель BSA (Base–Service–Application) помогает упорядочить инфраструктуру, чётко разделить зоны ответственности и сделать процессы поставки стабильными и предсказуемыми. Продемонстрируем не только подход, но и практический опыт реализации в компании «Магнит OMNI».

В программе:
— боли неструктурированного IaC;
— суть трёхуровневой модели BSA;
— опыт внедрения в Магнит OMNI;
— результаты использования модели;
— практические рекомендации.


13 марта в 12:00, онлайн
👉 Зарегистрироваться
Реклама. АО "ФЛАНТ". ИНН 7723661439.
2👍1
🔧 Про grep, который умеет больше, чем ты думаешь

Все знают grep как утилиту “найди мне это слово в этих логах”. Но давай копнём глубже — вот тебе пара трюков, которые удивят даже видавшего виды девопса:


📍 Ищем с контекстом
Хочешь не просто строку, а и то, что рядом?


grep -C 3 "ошибка" /var/log/syslog


Покажет 3 строки до и после найденной.


📍 Ищем по слову, а не по вхождению
Не хочешь ловить ошибка, если в логе есть предошибкака?


grep -w "ошибка" файл.log


Совпадение только по целому слову.


📍 Списки IP-шников? Без проблем.
Вытаскиваем IPv4 из текста:


grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' лог.txt



📍 Ищем рекурсивно, но только в файлах
Искать по директории, пропуская бинарники и показывая имя файла:


grep -rIn --exclude-dir={.git,node_modules} "TODO" .



📍 Цвет для глаз
Визуально быстрее цепляться за результат:


grep --color=auto "fail" журнал.log



Если ты думаешь, что grep — это просто "найди слово", то, возможно, ты не используешь весь его потенциал. А зря 😉

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
11
Периодическая таблица инструментов DevSecOps

Независимо от того, начинаешь ли ты с нуля, устраняешь пробелы или заменяешь существующие инструменты, начни с Периодической таблицы, чтобы подобрать оптимальные решения для своей DevOps-пайплайна.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
3👍2
Как проверить, что твои бэкапы не просто занимают место?

Резервное копирование — это как страховка: пока не случится беда, никто о нём не думает. Но когда приходит время восстановления, многие с удивлением обнаруживают, что бэкап либо повреждён, либо неполон, либо вовсе не содержит нужных данных. Как избежать этого?

🔹 Автоматическое тестирование восстановления
Настрой регулярное восстановление из резервных копий в тестовой среде. Например, можно развернуть временный сервер и поднять на нём восстановленную БД.

🔹 Сравнение контрольных сумм
Для файловых бэкапов сохраняй хэши (MD5, SHA256) до и после резервного копирования. Это поможет выявить изменения или повреждения данных.

🔹 Логирование и мониторинг
Настрой алерты на ошибки резервного копирования. Если скрипт завершился неудачно, ты должен об этом узнать раньше, чем твой прод улетит в тартарары.

🔹 Глубина хранения и дедупликация
Не удаляй старые бэкапы слишком рано. Иногда проблему замечают через несколько недель. Храни несколько версий резервных копий, но следи за размером и удостоверься, что не копируешь лишнее.

🔹 Периодические мануальные проверки
Раз в месяц пробуй восстановить данные вручную. Это займёт 15 минут, но может спасти компанию от потерь.

Бэкап, который не тестировали на восстановление — это просто набор битов. Убедись, что твои копии действительно можно использовать!

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍4💊1
Selectel Billing Exporter

Это экспортёр для Prometheus, который позволяет собирать метрики расходов в Selectel. С его помощью можно мониторить свои траты на сервисы Selectel прямо через привычные инструменты наблюдения.
Он поддерживает получение информации о балансе и детализации расходов по каждому сервису. Для работы потребуется указать API-токен Selectel.

https://github.com/mxssl/selectel-billing-exporter

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍1
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌

https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
🤡8💩3👍1
🗂️ Как найти большие файлы в системе

Иногда на сервере внезапно заканчивается место, и нужно срочно найти, какие файлы занимают больше всего пространства. Вот простая команда на bash:


find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null | awk '{ print $NF ": " $5 }' | sort -hr -k2


🔹 Что делает этот скрипт:

• Ищет все файлы больше 500 МБ по всему серверу.
• Показывает их размер и путь.
• Сортирует список по размеру - самые большие файлы будут вверху.

Совет:
Если нужно искать не по всему серверу, а только в домашней папке, просто поменяй / на ~/.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍51