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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/devops_ready
Download Telegram
🖼️ Ansible CLI: 7 приёмов для управления инфраструктурой.

Ansible — это не только написание YAML-файлов, но и умение виртуозно владеть его консольными инструментами. Правильные флаги помогают избежать ошибок при деплое, быстро проверять изменения без риска для продакшена и безопасно управлять секретами.

➡️ DevOps Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥7👍6🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
❤️ PayloadsAllTheThings — список информации об обходе безопасности веб-приложений и пентестингу/захвату флага!

В репозитории собраны готовые строки и техники для эксплуатации веб-уязвимостей: XSS, SQL Injection, SSRF, RCE, XXE, CSRF, обходы WAF, повышение привилегий и десятки других сценариев атак. Всё удобно структурировано по типам уязвимостей и дополнено методологиями, примерами эксплуатации и файлами для автоматизированного тестирования.

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


➡️ DevOps Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥8🤝8
Разбираемся с поиском файлов по содержимому!

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

Рекурсивный поиск в текущей папке:
grep -r "search_text" .


Команда пройдёт по всем подпапкам и покажет совпадения с именем файла и строкой.

-r — ищет рекурсивно, не заходя в символические ссылки;
-R — тоже рекурсивно, но идёт по symlink’ам, поэтому можно случайно улететь в лишние каталоги или циклы;

Показать только файлы, где есть совпадения:
grep -rl "search_text" .


Выведет просто список файлов без самих строк.

Без учёта регистра:
grep -ril "search_text" .


Найдёт и Text, и TEXT, и text.

Искать только в файлах нужного типа:
grep -r --include="*.conf" "search_text" /etc


Полезно, когда знаешь, что нужное лежит, например, только в конфигах.

Исключить лишние системные каталоги:
grep -r --exclude-dir=proc --exclude-dir=sys --exclude-dir=dev --exclude-dir=run "search_text" /


Если искать по всей системе, без этого можно получить тонну мусора.

Если раздражают ошибки доступа — можно добавить в конец:
2>/dev/null


Поиск по имени файла + содержимому (через find):
find /var/www -type f -name "*.php" -exec grep -nH "search_text" {} +


Сначала выбираются нужные файлы, потом проверяется их содержимое.

-H — показывает имя файла
-n — номер строки
{} + — обрабатывает файлы пачками (обычно быстрее)

Вариант через xargs:
find /var/www -type f -name "*.php" -print0 | xargs -0 grep -nH "search_text"


Нормально работает с пробелами в именах файлов и тоже быстрый на больших объёмах.

🔥 Эти приёмы позволяют быстро находить конфиги, секреты в тестовых средах, точки использования API и любые текстовые данные в системе или проекте.

➡️ DevOps Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍87🤝3
Прямое сетевое соединение из Bash без сетевых утилит!

В bash есть возможность открывать TCP/UDP-соединения через путь /dev/tcp/host/port. Это не реальный файл, а спец-путь, который интерпретируется самим bash (сетевые редиректы).

Открываем сокет к серверу и получаем файловый дескриптор:
exec 3<>/dev/tcp/example.com/80


Теперь можно отправлять данные напрямую, как в обычный файл:
printf "GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n" >&3


И читать ответ сервера без curl, nc и telnet (чтение завершится, когда сервер закроет соединение):
cat <&3


Работает именно в bash (не в sh/dash/busybox ash) и при включённой поддержке сетевых редиректов.

🔥 Это удобно на урезанных системах, контейнерах и rescue-окружениях, где нет сетевых утилит, но есть bash.

➡️ DevOps Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥95🤝4
📂 Напоминалка по 8 популярным сетевым протоколам!

Например, HTTP работает по request-response, TCP через SYN-ACK handshake, а UDP — без подтверждений, идеально для видео.

На картинке — таблица с принципами работы (handshake, шифрование, каналы) и примерами: веб-сёрфинг (HTTP/HTTPS), чаты (WebSocket), файлы (FTP), почта (SMTP).
Сохрани, чтобы не забыть!

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥6🤝6
Использование магических ссылок /proc для восстановления удаленных файлов в Linux!

Мы научимся восстанавливать файлы, которые были удалены из файловой системы, но все еще удерживаются запущенными процессами.

Это фундаментальный принцип Linux «все есть файл», позволяющий вернуть данные через файловую систему процессов /proc.

Для начала создадим файл, запустим процесс, который его читает, и имитируем удаление данных злоумышленником:
echo "секретные данные" > secret.log
tail -f secret.log > /dev/null &
# Запоминаем PID последнего процесса и удаляем файл
PID=$!; rm secret.log


Файл исчез из списка ls, но данные все еще доступны через дескрипторы активного процесса.

Теперь ищем дескриптор удаленного файла в директории fd процесса:
ls -l /proc/$PID/fd | grep "deleted"


В выводе вы увидите номер (например, 3), указывающий на призрачную ссылку удаленного файла.

Чтобы вернуть данные, достаточно скопировать содержимое этой магической ссылки обратно в обычный файл:
cp /proc/$PID/fd/3 restored_secret.log


Файл успешно восстановлен в текущую директорию из оперативной памяти.

Проверка работоспособности:
cat restored_secret.log && ls -l restored_secret.log


Ожидаемый вывод: секретные данные (и информация о новом файле).

🔥 При анализе взломанных систем всегда проверяйте /proc перед перезагрузкой — это ваш лучший шанс найти удаленные улики.

➡️ DevOps Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥96🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
😎 Linux Insides — подробное руководство по внутреннему устройству ядра!

Это перевод известной книги Linux Insides, где шаг за шагом разбирается, как работает ядро: процесс загрузки системы, переход в защищённый режим, управление памятью, прерывания, драйверы, планировщик и другие низкоуровневые механизмы.

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


➡️ DevOps Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥10🤝7
Параллельный запуск обычных команд без GNU Parallel!

Многие задачи в Linux можно ускорить в разы, задействовав несколько ядер CPU.

Ключ — опция -P у xargs, которая запускает несколько процессов одновременно (это именно многопроцессность, не потоки).

Например, выполнить задачи параллельно:
P=$(nproc)
seq "$P" | xargs -P"$P" -I{} ./task.sh {}


Здесь одновременно работают до P копий скрипта (обычно по числу доступных CPU).

Отлично подходит для тяжёлых операций над файлами:
find . -maxdepth 1 -name "*.log" -print0 | xargs -0 -P4 -I{} gzip "{}"


Файлы сжимаются параллельно, а не по одному. Использование -print0 / -0 безопасно для имён с пробелами и спецсимволами.

Можно комбинировать с find для массовой обработки каталогов:
find . -name "*.jpg" -print0 | xargs -0 -P6 -I{} convert "{}" -resize 50% "resized/{}"


Вывод лучше писать в другой файл или каталог, чтобы не перезаписывать исходники.

🔥 Это простой способ распараллелить многие CPU-интенсивные задачи, но итоговая скорость может упираться в диск или другие ресурсы.

➡️ DevOps Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥8🤝7
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ Kubernetes Goat — интерактивная обучающая среда по безопасности!

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

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

➡️ DevOps Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍6🤝6
Диагностируем процессы в Linux через strace!

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

Запускаем программу под трассировкой:
strace ls /tmp


Сразу видно, какие файлы открываются, какие библиотеки грузятся, где возникают ошибки.

Можно прицепиться к уже работающему процессу — удобно, если сервис завис:
sudo strace -p <PID>


Обычно быстро становится понятно, где он застрял: futex (блокировка), ожидание I/O (poll/epoll_wait), connect, чтение/запись и т.п.

Если программа создаёт дочерние процессы, без этого ключа часть событий не попадёт в вывод:
strace -f <command>


Проблемы с файлами, конфигами и правами:
strace -e trace=%file <command>


Покажет open/stat/access и другие файловые операции — удобно понять, какие пути реально проверяются.

Частый кейс — программа ищет файл, которого нет:
strace -e trace=%file <command> 2>&1 | grep ENOENT


Сразу видно, какой путь оказался отсутствующим.

Для сетевых проблем:
strace -e trace=%network <command>


Видно создание сокетов, попытки подключения и ошибки.

Если нужно сохранить вывод:
strace -o trace.log <command>


С дочерними процессами лучше так:
strace -ff -o trace.log <command>


Будут отдельные файлы по PID.

Иногда вывод обрезает длинные строки — увеличиваем лимит:
strace -s 200 <command>


Посмотреть, где именно тратится время:
strace -T <command>


Короткая сводка по системным вызовам:
strace -c <command>


🔥 strace незаменим при анализе поведения непрозрачных бинарников и в случаях, когда нет доступа к исходному коду. Он показывает, на каких системных вызовах процесс блокируется и какие операции фактически выполняет в пространстве ядра.

➡️ DevOps Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥128👍8
📂 Напоминалка по архитектуре Linux!

Например, ядро управляет процессами, памятью, устройствами, сетью и файловыми системами — именно эти подсистемы обеспечивают работу всей операционной системы.

На картинке — 5 основных компонентов ядра, которые важно понимать разработчикам, DevOps-инженерам и системным администраторам.

Сохрани, чтобы держать базовую архитектуру Linux под рукой!

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍9🤝5
🖼️ Terraform: 7 приёмов для идеального планирования и проверки кода!

Ошибки в инфраструктуре стоят дорого. Чтобы не уронить продакшн случайным изменением, важно использовать инструменты проверки Terraform на каждом этапе: от форматирования до анализа графа зависимостей и валидации в CI/CD.

➡️ DevOps Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥124👍4
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ Ryan’s Tutorials — системное руководство по командной строке Linux!

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

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

➡️ DevOps Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍7🔥7🤝1
Знали, что Linux умеет реагировать на события файловой системы в реальном времени?

Ядро через inotify сообщает, когда файл изменился, создан или заменён.

Команда блокируется и просыпается только при событии, поэтому почти не расходует CPU:
inotifywait -e close_write config.yaml


Можно отслеживать целую директорию (важно, если редактор сохраняет через temp-файл + rename) и автоматизировать любые действия - перезапуск сервисов, сборку проекта или бэкап:
inotifywait -m -e create,delete,modify,moved_to ./src


Очень удобно для авто-reload без Docker, IDE и сторонних инструментов:
while inotifywait -e close_write app.py; do
pkill -f "python app.py"; python app.py &
done


🔥 Такой прием пригодится для CI-скриптов, авторазвертывания, hot-reload и администрирования.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍148🔥6🤝4