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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/devops_ready
Download Telegram
🖼️ Жёсткая чистка Linux: удаляем мусор и освобождаем место!

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

В этом посте:
Удаляем кеш APT и старые версии пакетов.

Чистим временные файлы и мусор от приложений.

Удаляем старые логи, освобождаем /var/log.

Проверяем свободное место и очищаем остатки.


Такой подход помогает освободить несколько гигабайт и держать систему в порядке.

➡️ DevOps Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥148👍8🤝2
🧐 На Хабре вышла интересная статья про автоматизацию tmux-окружения с помощью скриптов.

В этой статье:
• Научитесь запускать tmux-сессии в фоне и управлять ими из bash-скрипта;
• Автоматически поднимете несколько окон и панелей с нужными командами;
• Разберётесь с new-session, new-window, split-window и send-keys для сценариев «всё готово за один запуск»;
• Соберёте удобный шаблон, который можно адаптировать под разработку, мониторинг или отладку.


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


➡️ DevOps Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥107👍6🤝2
📂 Напоминалка по популярным кибератакам!

Например, Phishing обманывает пользователя и заставляет ввести свои данные на поддельной странице, а SQL Injection позволяет атакующему получить доступ к базе данных через уязвимость в запросах.

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

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥8👍6🤝2
Ищем и убираем дубликаты строк в терминале!

Частая задача: есть файл с логами, списком ID, email-адресами или любыми строками, где встречаются повторы. Нужно быстро привести данные в порядок прямо в консоли.

Базовый инструмент — uniq. Важно понимать: он удаляет только соседние одинаковые строки. Поэтому в большинстве случаев перед ним нужна сортировка.

Самый простой вариант:
sort data.txt | uniq


Что здесь происходит: sort сортирует строки, чтобы одинаковые значения оказались рядом, uniq убирает повторяющиеся соседние строки.

Если нужны только строки, которые встретились ровно один раз:
sort data.txt | uniq -u


Если нужно посчитать, сколько раз встречается каждая строка:
sort data.txt | uniq -c


Если нужно сразу увидеть самые частые значения сверху:
sort data.txt | uniq -c | sort -nr


Практический пример для логов — топ IP по количеству запросов:
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head


Если нужно записать результат обратно в тот же файл:
sort -u -o data.txt data.txt


Если важно игнорировать регистр:
sort -fu data.txt


Это эквивалентно связке с uniq, но короче.

Важно: uniq не ищет все дубликаты по всему файлу — он работает только с соседними строками. Без sort он уберет только те повторы, которые уже идут подряд.

🔥 Такого набора хватает для большинства задач: быстро почистить данные, посмотреть частоты, выявить лишние записи в логах.

🚪 Linux 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
☕️ DevOps Interview — интерактивная платформа для подготовки к собеседованиям!

Это ресурс, где собраны вопросы и практические сценарии по DevOps, разбитые по ключевым темам: Docker, Kubernetes, CI/CD, облака, безопасность, мониторинг и др. Формат построен как тренажёр, можно проходить вопросы по категориям. Отдельно выделяются реальные сценарии, где разбираются проблемы и их решения.

📌 Оставляю ссылочку: interview.devopscommunity.in

➡️ DevOps Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥9🤝64
Как переиспользовать команды из history?

Набрал длинную команду, но забыл sudo и получил отказ. Вместо перепечатывания просто можно повторить её с повышенными правами:
$ apt install nginx
$ sudo !!


Bash подставит предыдущую команду целиком и выполнит её с sudo.

Нужно вернуться к команде, которую выполнял пару шагов назад, не листая историю:
$ !-2


Bash возьмёт команду по относительному номеру из history и выполнит её сразу.

Если помнишь только начало команды, можно вызвать последнюю подходящую:
$ !docker
$ !grep


Bash найдёт последнюю команду, начинающуюся с этого слова, и выполнит её.

Команда выполняется сразу. Для проверки можно добавить :p (например, !grep:p).

🔥 Это ускоряет работу в терминале кратно, особенно когда команды длинные и сложные.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍107🤝7🔥5
📂 Напоминалка как работает SSH!

Например, при подключении по SSH сначала устанавливается TCP-соединение, затем происходит согласование версий и алгоритмов, после чего выполняется key exchange и аутентификация по ключам.

На картинке — полный процесс: от установления соединения до выполнения команд внутри зашифрованного канала.

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍97🔥6🤝4
Пробрасываем локальный порт через SSH — доступ к закрытому сервису за одну команду!

Частый кейс: сервис крутится на удалённой машине, но слушает только localhost (например, база, админка, dev-сервер). Напрямую к нему не подключиться — но можно аккуратно протянуть порт к себе.

Команда:
ssh -L 8080:localhost:3000 user@remote-server


Что происходит: 8080 — локальный порт на твоей машине; localhost:3000 — адрес сервиса на удалённой машине; всё, что ты открываешь на localhost:8080, идёт через SSH на localhost:3000 на удалённой машине.

Теперь просто открываешь в браузере: http://localhost:8080
И видишь сервис с удалённой машины, даже если он не доступен извне.

Чтобы не держать терминал:
ssh -f -N -L 8080:localhost:3000 user@remote-server


Остановить можно, например:
pkill -f "ssh -L 8080"


Практический пример: PostgreSQL на сервере слушает только localhost:
ssh -L 5432:localhost:5432 user@remote-server


Теперь локально можно подключаться как будто база у тебя:
psql -h localhost -p 5432 -U user dbname


Если локальный порт уже занят — просто меняешь его:
ssh -L 9000:localhost:3000 user@remote-server


Важно: трафик шифруется через SSH, не нужно открывать порты на сервере; работает для любых TCP-сервисов (HTTP, DB, Redis и т.д.).

🔥 Это базовый приём: быстро получить доступ к любому закрытому сервису без изменения конфигурации сервера.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1710👍8🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
😎 krxnotes — информативные шпаргалки по Linux и системам!

Это структурированная коллекция заметок по Linux и смежным темам: процессы, файловые системы, shell и работа с ядром. Материал ориентирован на практическое понимание того, как устроена система на низком уровне. Информация подаётся в компактном формате без избыточной теории, с акцентом на реальные сценарии использования.

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


➡️ DevOps Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍138🤝6🔥3
Перехватываем вывод процесса через tee — лог и консоль одновременно!

Частый кейс: запускаешь задачу (деплой, миграция, билд) и хочешь одновременно видеть вывод в терминале и сохранять его в файл. Обычный редирект > убирает вывод из консоли. Решается через tee.

Команда:
command 2>&1 | tee output.log


Что происходит: 2>&1 объединяет stderr и stdout; tee дублирует поток — пишет в файл и выводит в терминал.

Добавление в файл (append):
command 2>&1 | tee -a output.log


Без потери кода возврата (важно для скриптов):
set -o pipefail
command 2>&1 | tee output.log
echo $?


Без pipefail код возврата будет от tee, а не от command.
echo $? нужно вызывать сразу после пайплайна, иначе значение перезапишется.

Альтернатива:
command 2>&1 | tee output.log
exit ${PIPESTATUS[0]}


Важно: PIPESTATUS нужно читать сразу после пайплайна, иначе он перезапишется.

Пример: деплой
set -o pipefail
./deploy.sh 2>&1 | tee deploy.log


Лог сохраняется, при этом видно всё в реальном времени.

Пример: долгий билд
make -j4 2>&1 | tee build.log


stderr не теряется, но порядок строк может перемешиваться (из-за параллельности и буферизации).

Разделение потоков с сохранением, stdout в файл, stderr отдельно:
command > >(tee out.log) 2> >(tee err.log >&2)


Используется process substitution (bash). stdout/stderr остаются в консоли, но порядок между потоками не гарантируется.

Пример: отладка пайплайна
tee raw.log < data.txt | grep error | tee filtered.log


Сохраняешь и исходные данные, и результат фильтрации.

Что это даёт: полный контроль над логами без потери интерактивности; удобно для CI, деплоя, отладки; прозрачная диагностика.

🔥 Ограничения и нюансы: pipe меняет код возврата (решается pipefail или PIPESTATUS); pipefail не POSIX (bash/zsh/ksh); некоторые программы буферизуют вывод; при больших потоках — нагрузка на диск.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍98🔥5🤝4
📂 Напоминалка по сетевым протоколам и портам!

Например, HTTP (80) используется для обычного веб-трафика, SSH (22) — для удалённого доступа к серверу, а DNS (53) — для преобразования доменных имён в IP.

На картинке — базовые и наиболее часто используемые сетевые протоколы с портами и типами транспорта (TCP/UDP).

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍127🔥5🤝5
Как передавать файлы между машинами без scp, rsync и настройки SSH?

Когда нет доступа по SSH, сломан scp или нужно быстро скинуть файл между контейнерами, серверами или в изолированной сети — выручает netcat.

На принимающей стороне открываешь порт и пишешь всё в файл:
$ nc -l 9000 > output.bin
$ ls -lh output.bin


На отправляющей стороне отправляешь данные напрямую в сокет:
$ nc -N <host> 9000 < input.bin
$ echo done


Если нужен прогресс передачи:
$ pv input.bin | nc -N <host> 9000
или на приёме:
$ nc -l 9000 | pv > output.bin


Важно: без шифрования и аутентификации (использовать в доверенной сети), синтаксис может отличаться (например, BusyBox: nc -l -p 9000).

🔥 Работает даже в минимальных окружениях, контейнерах и rescue-системах, где кроме nc почти ничего нет.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍8🤝5🔥3
📂 Разбор DNS Record Types!

Это наглядная шпаргалка по основным DNS-записям. Таблица охватывает A и AAAA для IPv4/IPv6, CNAME для алиасов, MX для почты, PTR для reverse DNS, NS для name servers и TXT для произвольной информации.

Идеально для быстрого понимания, как DNS связывает домены, IP-адреса и почтовую инфраструктуру.

➡️ 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
❤️ Ravesli — курс по Linux с разбором системы и практикой!

От базовых понятий и структуры системы до понимания дистрибутивов и принципов работы ОС. Материал построен последовательно и помогает сформировать целостное представление о Linux. Уроки ориентированы на системное понимание: объясняется не только работа команд, но и логика самой системы.

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

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