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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/devops_ready
Download Telegram
Быстро привести JSON в читаемый вид через jq!

Иногда API возвращает JSON одной длинной строкой. В терминале читать такое совершенно неудобно. Самый простой способ привести всё в нормальный вид — прогнать через jq.

Например, если JSON лежит в файле:
jq . file.json


jq просто отформатирует его: разобьёт на строки и добавит отступы.

Часто это используют прямо при работе с API:
curl -s https://api.github.com/repos/torvalds/linux | jq .


Так сразу видно структуру ответа.

Если нужно вытащить конкретное поле:
jq '.name' file.json


То же самое можно сделать прямо из ответа API:
curl -s https://api.github.com/repos/torvalds/linux | jq '.description'


Иногда удобно забрать сразу несколько полей:
jq '{name, description, language}' file.json


Если в JSON есть массив, можно пройтись по всем элементам:
jq '.items[]' file.json


Например, вытащить из каждого объекта поле name:
jq '.items[].name' file.json


Когда нужен вывод без кавычек, пригодится флаг -r:
jq -r '.name' file.json


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

Иногда ещё удобно быстро посмотреть, какие вообще пути есть в JSON:
jq 'paths' file.json


Команда покажет все доступные ключи и вложенные пути.

jq отлично вписывается в обычные shell-пайплайны. Например:
curl -s https://api.example.com/users | jq -r '.users[].email'


Так можно сразу вытащить нужные данные из ответа API.

🔥 В целом jq — один из самых удобных инструментов для работы с JSON в терминале. Если часто возишься с API или логами, он экономит кучу времени.

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

Например, /etc хранит системные конфигурации, /var используется для логов и изменяемых данных, а /home содержит домашние директории пользователей.

На картинке — основные каталоги, которые важно знать при работе с системой, серверами и разработкой.

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥128🤝8👍1
Быстрый повтор и поиск команд из истории Bash!

Часто приходится выполнять длинные команды: docker, git, kubectl, сборки, скрипты или сложные пайплайны. Печатать их заново может быть долго и неудобно.

В Bash можно обращаться к истории команд напрямую.

Чтобы найти нужную команду, можно отфильтровать историю:
history | grep docker


Каждая команда имеет номер. Любую из них можно выполнить снова:
!482


Также можно повторить последнюю команду, которая начиналась с определённого слова.

Bash найдёт последнюю команду, начинающуюся с docker, и выполнит её снова. Это особенно удобно при работе с длинными CLI-командами:
!docker


🔥 Использование !номер и !команда позволяет запускать сложные команды без копирования и ручного набора.

➡️ DevOps Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥9🤝8
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Infosec Cheatsheets — огромная база шпаргалок по кибербезопасности!

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

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


➡️ DevOps Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍108🔥8
Работа с временными каталогами через mktemp!

При написании скриптов важно безопасно создавать временные файлы и каталоги. Для этого используется утилита mktemp, которая создаёт уникальные имена и исключает гонки (race conditions).

Создание временного файла:
mktemp


Команда создаёт файл в /tmp и выводит его путь.

Создание временного каталога:
mktemp -d


Флаг -d создаёт каталог вместо файла.

Создание файла с собственным шаблоном имени:
mktemp /tmp/script.XXXXXX


XXXXXX заменяются случайной последовательностью символов.

Использование временного файла в shell-скрипте:
tmpfile=$(mktemp)
echo "data" > "$tmpfile"


Путь сохраняется в переменную, после чего файл можно использовать внутри скрипта.

Создание временного каталога для обработки данных:
tmpdir=$(mktemp -d)
cp *.log "$tmpdir"


Часто используется при обработке архивов или промежуточных файлов.

Автоматическая очистка временного файла через trap:
tmpfile=$(mktemp)
trap 'rm -f "$tmpfile"' EXIT


trap гарантирует удаление временного файла при завершении скрипта.

Создание файла в конкретном каталоге:
mktemp -p /var/tmp backup.XXXXXX


Полезно, если требуется другой каталог вместо /tmp.

🔥 Использование mktemp считается стандартной практикой для shell-скриптов — ручное создание файлов в /tmp через фиксированные имена может привести к конфликтам и проблемам безопасности.

➡️ DevOps Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥8🤝8
😎 Нашёл полезную статью на Хабре: «Звук на 2-х и более устройств в Ubuntu одновременно»!

В этой статье:
• Автор на примере Ubuntu разбирает, как выводить аудио одновременно на несколько устройств;
• Пошагово объясняется, какие модули и утилиты нужны для мультивыхода;
• Приводятся рабочие команды для создания виртуального аудиоустройства и его настройки.


🔊 Продолжайте читать на Habr!


➡️ DevOps Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥118🤝8👎1
👩‍💻 Проверяем скорость сети и пропускную способность прямо из терминала!

В этом посте 7 утилит, которые помогают быстро оценить каналы связи: измерить реальную скорость, нагрузку на интерфейсы, задержку, активные соединения и текущий входящий/исходящий трафик. Подходят для диагностики, настройки и мониторинга сети без лишних инструментов.

➡️ DevOps Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍97
Поднимаем временный RAM-диск и тестим скорость.
tmpfs в действии: супербыстрые операции с файлами!


RAM-диск — это временное хранилище прямо в оперативной памяти. Без дисковых задержек, с молниеносным I/O.

Создаём точку монтирования:
mkdir /mnt/ramdisk


Монтируем tmpfs с нужным объёмом:
sudo mount -t tmpfs -o size=512M tmpfs /mnt/ramdisk


Проверим, работает ли — создадим и скопируем файл:
dd if=/dev/zero of=/mnt/ramdisk/test bs=1M count=100
cp /mnt/ramdisk/test /mnt/ramdisk/test2


Весь ввод-вывод — напрямую в RAM. Это идеальное решение для временных файлов, кэшей и промежуточных вычислений.

Готово? Осталось только отмнотировать и всё:
sudo umount /mnt/ramdisk


🔥 Быстрый и надёжный способ ускорить работу без всяких SSD и оркестраторов. Работает на любом VPS.

➡️ DevOps Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6🤝61
📂 Напоминалка по расширению параметров в Bash!

Например, ${var%.*} убирает расширение файла, а ${var##*/} позволяет быстро получить имя файла из полного пути.

На картинке — основные приёмы работы с переменными в bash: удаление префиксов и суффиксов, замена строк, работа с подстроками и значения по умолчанию.

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍12🔥8
Как не выполнять одну и ту же команду несколько раз?

В работе часто возникает ситуация: команда тяжёлая, медленная или ходит в сеть. Например, kubectl, docker, curl, запросы к API или работа с логами.

Чтобы не гонять её снова и снова для разных проверок:
kubectl get pods
kubectl get pods | grep api
kubectl get pods | wc -l


Каждый раз это новый запрос, новая нагрузка и потеря времени.

Гораздо быстрее выполнить её один раз и сохранить результат:
out=$(kubectl get pods)


Теперь можно сколько угодно анализировать данные без повторных вызовов:
echo "$out" | grep api
echo "$out" | wc -l


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

🔥 Если команда дорогая — не запускай её повторно. Сохрани результат и работай с ним локально.

➡️ DevOps Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝12👍7🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
❤️ Linux Commands Cheat Sheet — шпаргалка по 400+ командам Linux!

В репозитории собран справочник по Linux-командам — более 400 утилит с описаниями и примерами использования. Каждая команда сопровождается кратким объяснением и примерами, поэтому можно быстро понять, как она работает и где применяется. Удобно использовать как справочник в работе и подготовке к собеседованиям.

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


➡️ DevOps Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍9🔥8
sponge: утилита, которая спасает, когда нужно перезаписать файл через pipe!

Есть старый неприятный момент в shell: если читаешь файл и тут же пишешь результат обратно в него же через >, можно случайно получить пустой файл.

Например:
grep -v DEBUG app.log > app.log


На первый взгляд выглядит нормально. На практике — нет.
Shell откроет app.log на запись сразу, ещё до того, как grep дочитает его до конца. В итоге файл можно просто обнулить.

В таких случаях выручает sponge из moreutils.

Он работает просто: сначала полностью читает входной поток, и только потом записывает результат в файл.

То же самое, но безопасно:
grep -v DEBUG app.log | sponge app.log


Несколько примеров, где это реально удобно.

Заменить текст в конфиге:
sed 's/localhost/db.internal/' config.yml | sponge config.yml


Убрать пустые строки:
grep -v '^$' file.txt | sponge file.txt


Отсортировать файл:
sort file.txt | sponge file.txt


Отформатировать JSON:
jq '.' data.json | sponge data.json


Из нюансов: sponge сначала забирает весь поток целиком, а уже потом пишет в файл. Для обычных задач это вообще не проблема, но на очень больших файлах про это лучше помнить.

🔥 Если коротко: когда нужно безопасно перезаписать файл результатом команды, sponge делает именно то, что ожидаешь.

➡️ DevOps Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥9🤝72
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 Awesome Hacker Search Engines — инструменты, которые используют в инфосеке!

Подборка специализированных поисковиков, которые активно применяются в OSINT, пентесте и разведке инфраструктуры. Сервисы для поиска утечек, открытых портов, уязвимых сервисов, исходного кода, доменов, IP-адресов и другой критичной информации. Отлично подойдёт тем, кто хочет понять, как собирается информация перед атакой или тестированием.

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


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

Например, DNS отвечает за преобразование доменных имен в IP-адреса, TCP обеспечивает надежное соединение и порядок доставки пакетов, а HTTP используется для обмена запросами и ответами между клиентом и сервером.

На картинке — основные сетевые протоколы и уровни, которые участвуют в передаче данных.

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍10🤝8
Убиваем залипшие процессы с fuser и kill. Когда Ctrl+C не помогает, а процесс держит порт или файл!

Иногда процесс залипает и не хочет умирать даже после Ctrl+C. Или наоборот — ты не знаешь, что за процесс мешает работать. В таких случаях помогает связка fuser + kill.

Проверим, кто использует порт (например, 8080):
fuser -n tcp 8080


Или файл, занятый каким-то процессом:
fuser /var/log/syslog


Если надо сразу завершить все процессы, держащие ресурс:
fuser -k 8080/tcp


Или убить по PID (который вернул fuser):
kill -9 <PID>


🔥 fuser показывает, какие процессы используют файл или порт, а -k завершает их. Аккуратно — можно прибить что-то важное.

➡️ DevOps Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍6🔥4🤝3👎1
This media is not supported in your browser
VIEW IN TELEGRAM
👍 DevOps Daily — образовательный ресурс по DevOps и инфраструктуре!

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

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

➡️ DevOps Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍108🔥8