DevOps Ready | IT
6.32K subscribers
758 photos
68 videos
395 links
Авторский канал по DevOps разработке.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Автор: @energy_c
Download Telegram
Разбираемся с диагностикой утечек дискового пространства!

Иногда сервер начинает терять свободное место, но при этом du не показывает ничего критичного. Один из типовых сценариев — удалённые файлы, которые продолжают удерживаться процессами.

С точки зрения Linux файл уже удалён из дерева каталогов, но inode и блоки остаются заняты, пока хотя бы один процесс держит файловый дескриптор открытым.

Базовая проверка состояния диска:
df -h


Это первый шаг — смотрим, есть ли реальное заполнение файловой системы. Если раздел почти полный, а по каталогам картина не бьётся с ожиданиями, дальше имеет смысл копать глубже.

Сравнение с фактическим использованием:
du -xhd1 /var


-x важен: он ограничивает обход текущей файловой системой и исключает мусор с других mount points.

Если df показывает занято много, а du — нет, почти всегда это либо удалённые открытые файлы, либо редкие случаи с скрытыми mount/overlay слоями (контейнеры тоже сюда попадают).

Поиск удалённых файлов, удерживаемых процессами:
sudo lsof +L1


Здесь важный момент — +L1 означает link count < 1, то есть файл уже удалён, но ещё открыт процессом.

Типичный пример:
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NLINK NAME
java 1234 app 45w REG 8,1 12G 0 /var/log/app.log (deleted)


Файл исчез из каталога, но процесс продолжает писать в него. На практике это часто логи или временные буферы.

Быстро отфильтровать только проблемные записи:
sudo lsof +L1 | grep deleted


Удобно, когда вывода много и нужно сразу увидеть реальные утечки.

Посмотреть открытые дескрипторы процесса:
ls -l /proc/PID/fd


Каждый файл там — это активный файловый дескриптор. Если среди них есть (deleted), это и есть удерживаемое место.

Приближённая оценка объёма:
sudo lsof +L1 | awk '{print $7}' | grep -E '^[0-9]+$' | awk '{sum+=$1} END {print sum/1024/1024/1024 " GB"}'


Честно говоря, это грубая оценка. SIZE/OFF не всегда чистый байтовый формат, поэтому цифра больше для ориентира, чем для точного аудита.

Как освобождается место: самый нормальный вариант — дать процессу корректно закрыть файл:
sudo systemctl restart service_name


Если это сервис с поддержкой переоткрытия логов:
kill -HUP PID


Классический сценарий — лог-файл удалили вручную через rm, но процесс продолжает писать в уже открытый inode. В итоге место на диске исчезло, хотя файлов как будто нет.

Если df показывает заполнение, а du не объясняет куда делось место — первым делом проверяются открытые удалённые файлы через lsof +L1. Это один из самых быстрых способов найти невидимую утечку диска в Linux-системах.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥105👍5
Любую уже запущенную команду можно отправить в background, даже если забыли поставить &!

Очень частая ситуация. Запустили долгую команду, сборку, скрипт, rsync или анализ логов и только потом поняли, что терминал оказался заблокирован.

Большинство в такой ситуации останавливают процесс и запускают всё заново с &.

На самом деле это не нужно.

Если команда уже работает в foreground:
$ sleep 1000


Нажмите:
Ctrl + Z


Shell отправит процессу сигнал SIGTSTP и временно остановит выполнение.

Теперь достаточно выполнить:
$ bg


Процесс продолжит работу уже в background, а терминал снова станет свободным.

Проверить список фоновых задач можно так:
$ jobs


Если позже нужно вернуть процесс обратно в foreground:
$ fg


🔥 Полезный встроенный механизм job control в Bash. Он особенно выручает при долгих командах, когда перезапуск означает потерю времени или состояния.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍6🤝41
👩‍💻 Отслеживаем появление USB-устройств в реальном времени — свой мини-монитор на udev + Bash!

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

В этом посте:
Создаём udev-правило, которое срабатывает при подключении любого USB-устройства;

Пишем Bash-скрипт, который логирует дату и идентификаторы устройства;

Добавляем вывод idVendor и idProduct для удобной диагностики;

Проверяем работу и смотрим живой лог в /var/log.


Такой подход помогает быстро анализировать новое железо, вести аудит подключений и упрощает диагностику проблем c USB.

🚪 Linux Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍7🔥6
erid: 2W5zFJMvwZ3

Хотите монетизировать канал в MAX, но не знаете, с чего начать?

MAX Клаб — это готовый сервис для запуска платных каналов и закрытых сообществ.

Вы создаете контент, а сервис берет на себя:
· прием платежей;
· выдачу доступа;
· управление подписчиками.

🖥️Не нужно писать код, искать разработчиков или настраивать сложные интеграции.

Попробуйте сервис за 199 ₽ и оцените его возможности.
https://max.ru/id972103845933_2_bot?start=ref_zy73cq
👎10🤝1
Знали, почему большинство пользователи Linux почти всегда используют find вместе с -print0?

Обычная передача списка файлов через xargs небезопасна. Если имя файла содержит пробел, перевод строки, кавычки или другие специальные символы, команда может обработать его неправильно.

Чтобы исключить эту проблему, find умеет разделять имена файлов нулевым байтом:
$ find . -type f -print0


Теперь этот поток можно безопасно передать в xargs:
$ find . -type f -print0 | xargs -0 sha256sum


Так будут корректно обработаны любые допустимые имена файлов, независимо от пробелов, табуляции и других символов.

Тот же приём подходит для удаления файлов:
$ find . -type f -print0 | xargs -0 rm


И для передачи файлов любой другой программе:
$ find . -type f -print0 | xargs -0 grep "TODO"


Именно связка -print0 и -0 считается стандартным способом безопасной обработки имён файлов в Unix-подобных системах.

🔥 Если пишете shell-сценарии или автоматизацию, этот приём избавляет от целого класса трудноуловимых ошибок.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍65
This media is not supported in your browser
VIEW IN TELEGRAM
👍 Devhints — шпаргалки по Linux, Bash и терминальным утилитам!

На сайте собрана большая база компактных шпаргалок, среди которых есть полезные справочники по Linux, Bash, SSH, systemd, Vim, Tmux, Docker, Git, Regex и другим инструментам. Основные команды, параметры и примеры использования собраны максимально компактно, поэтому нужную информацию можно найти буквально за несколько секунд.

📌 Оставляю ссылочку: devhints.io

🚪 Linux Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍5🤝5
Сборка мультизагрузочного Live-USB накопителя для аварийного аудита и восстановления.

В арсенале любого специалиста по безопасности должен быть портативный инструмент для оперативного восстановления систем, сброса паролей и анализа цифровых следов. Мы соберем собственный тревожный Live-USB накопитель с помощью утилиты Ventoy, которая позволяет загружать любые ISO-образы простым копированием без форматирования флешки. Это превратит обычный USB-диск в универсальный швейцарский нож, готовый к запуску Kali Linux, Tails или системных реаниматоров на любом железе.

Для начала установим консольную утилиту Ventoy в операционную систему Linux для разметки флешки.

wget https://github.com/ventoy/Ventoy/releases/download/v1.0.99/ventoy-1.0.99-linux.tar.gz && tar -xvf ventoy-1.0.99-linux.tar.gz


Архив успешно скачан и распакован в текущую рабочую директорию.

Выполним разметку и установку загрузчика Ventoy на ваш USB-накопитель (например, /dev/sdX).

cd ventoy-1.0.99 && sudo ./Ventoy2Disk.sh -i /dev/sdX


Накопитель будет разбит на два раздела: скрытый с загрузчиком и основной под ISO-образы.

Смонтируем флешку и скопируем необходимые дистрибутивы для аудита и пентеста напрямую в корень накопителя.

sudo mount /dev/sdX1 /mnt && cp kali-linux-live.iso tails-amd64.iso /mnt/


Файлы образов скопированы, и загрузчик Ventoy автоматически добавит их в системное стартовое меню.

Контрольный просмотр содержимого готового накопителя:

ls -la /mnt/*.iso


Ожидаемый вывод: /mnt/kali-linux-live.iso /mnt/tails-amd64.iso

Безопасное размонтирование флешки перед извлечением:

sudo umount /mnt


Созданный таким образом Live-USB накопитель позволяет на лету докидывать новые инструменты, скрипты и образы без перезаписи всей флешки. Держите на ней Kali для сетевого пентеста, Tails для анонимной работы и чистый дистрибутив Linux для сброса забытых локальных паролей через chroot.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥96👍4
This media is not supported in your browser
VIEW IN TELEGRAM
❤️‍🔥"Это разъ*бный сетап, бро!" 😤

Так сказал мой друг из Африки, когда увидел этот стол)
Не знаю уж че за сетап, меня зовут Саша и качественную необычную мебель из натурального дерева я делаю уже больше 12-ти лет, столько же занимаюсь и темой здоровья.

Когда я услышал, что до 10% смертности связано с сидячим образом жизни, меня это поразило и я задался целью делать максимально функциональные и полезные рабочие пространства, ибо геморрой в 30 это конечно довольно нишево, но все же сомнительно 😂

Ну а собрать такой комплект под свои задачи и при этом сразу прикинуть цены вы можете в удобном Mini App конструкторе
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥1
🖼️ Разбираем iptables: 7 команд для отладки доступа и правил!

Даже если ты часто правишь firewall — эти ключи ускорят диагностику и правки: посмотреть текущие цепочки, быстро вставить правило в начало, удалить шум или настроить NAT и фильтрацию по TCP. Полезно при дебаге доступа, перенаправлении портов и быстрой ревизии правил перед деплоем.

➡️ DevOps Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🤝6👍4
📂 Напоминалка по миграции сервисов в Kubernetes без большого взрыва!

Перенос инфраструктуры в Kubernetes не обязательно должен происходить за один релиз. Гораздо безопаснее мигрировать сервисы поэтапно: начиная с наименее критичных компонентов, постепенно переносить зависимости, проверять стабильность каждого этапа и только потом переходить к ключевым сервисам.

На картинке — пошаговый план миграции в Kubernetes: от инвентаризации сервисов и подготовки платформы до пилотного проекта, постепенного переноса приложений, стратегий Blue/Green и Canary, а также финальной оптимизации и вывода старой инфраструктуры из эксплуатации.

Сохрани, чтобы не потерять!

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥5
DevOps Exercises более 2600 задач и вопросов по DevOps!

В репозитории собраны практические задания, вопросы и готовые разборы по Linux, Docker, Kubernetes, Terraform, Ansible, CI/CD, сетям, облачным платформам и мониторингу. Материалы можно проходить по отдельным темам, использовать для проверки своих знаний или подготовки к собеседованию.

Оставляю ссылочку: GitHub

➡️ DevOps Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥83👍3
Шпаргалка по безопасной настройке прав в Linux!

Например, chmod 600 ~/.ssh/id_ed25519 закрывает приватный ключ от других пользователей, а режим 2755 включает setgid для каталога и помогает сохранять его группу у новых файлов.

На картинке специальные биты setuid, setgid и sticky bit, рекомендуемые права для SSH, скриптов и web-root, а также причины ошибок Permission denied, особенности символических ссылок, ACL и рекурсивного chmod.

Сохрани, чтобы не потерять!

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥2