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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/linux_ready
Download Telegram
Проверяем, каким маршрутом ядро отправит пакет с помощью ip route get!

Когда на сервере несколько интерфейсов, VPN, policy routing или просто странное сетевое поведение, читать таблицы маршрутов бывает недостаточно. В таких случаях проще напрямую спросить у ядра, какой маршрут оно выберет для пакета до конкретного адреса.

Для этого есть ip route get. Команда показывает, какой маршрут будет выбран при поиске маршрута (route lookup), а также исходный адрес и интерфейс, через который пакет будет отправлен.

Проверить маршрут до конкретного IP:
ip route get 8.8.8.8


В выводе обычно видно via, dev и src — через какой следующий узел пойдёт трафик, через какой интерфейс и с какого исходного адреса он будет отправлен.

Пример:
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.10


Здесь видно, что пакет будет отправлен через eth0, следующий узел — 192.168.1.1, а исходным адресом будет 192.168.1.10.

Понять, какой маршрут выберется для конкретного исходного IP:
ip route get 8.8.8.8 from 192.168.1.10


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

Проверить поиск маршрута с указанием интерфейса:
ip route get 8.8.8.8 oif eth0


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

Можно также выполнить lookup так, как если бы пакет пришёл на определённый интерфейс:
ip route get 1.1.1.1 iif eth1


Опция iif указывает входной интерфейс и позволяет посмотреть, какой маршрут выберет ядро для форвардинга такого пакета. Это полезно при разборе асимметричной маршрутизации (asymmetric routing), policy-маршрутизации (policy routing) и правил, завязанных на интерфейсы.

Если нужно посмотреть таблицы маршрутизации:
ip route


Если используется policy-маршрутизация, полезно также проверить правила:
ip rule


А чтобы увидеть маршруты во всех таблицах:
ip route show table all


ip route показывает записи в таблицах маршрутизации, а ip route get — какой маршрут ядро реально выберет для конкретного пакета при route lookup.

🔥 Особенно полезно на серверах с несколькими интерфейсами, VPN-узлах и в сложных сетевых конфигурациях.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍9🤝91
This media is not supported in your browser
VIEW IN TELEGRAM
😎 Linux Cheat Sheets — полезнейшие шпаргалки по командной строке Linux!

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

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

🚪 Linux Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥10🤝9
Как ускорить работу с директориями?

В повседневной работе часто приходится создавать директории и переходить в них. Обычно это делается двумя командами подряд.

Функция mkcd объединяет эти действия в одну команду:
mkcd() { mkdir -p -- "$1" && cd -- "$1"; }
mkcd project


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

Создание временной рабочей директории. Это удобно, когда нужно быстро распаковать архив, протестировать скрипт или поэкспериментировать с файлами:
tmpcd() { cd -- "$(mktemp -d)"; }
tmpcd


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

🔥 Чтобы пользоваться ими постоянно, достаточно добавить функции в файл конфигурации вашей оболочки (~/.bashrc, ~/.zshrc).

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥9🤝82
This media is not supported in your browser
VIEW IN TELEGRAM
😍 Backend Cheats — Linux-база для backend и DevOps!

В репозитории собраны материалы по основам Linux для разработчиков: работа с shell, управление пакетами, права доступа, процессы, SSH и сетевые утилиты. Всё оформлено в виде наглядных схем, таблиц и кратких объяснений. Материал разбит на небольшие блоки: шпаргалки, краткое пояснения ключевых терминов и ссылки на источники для углубленного изучения.

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


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥9🤝9
Работа с временными каталогами через 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 через фиксированные имена может привести к конфликтам и проблемам безопасности.

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

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

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

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

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥109
👩‍💻 Создаём временный HTTP-сервер для передачи файлов!

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

В этом посте:
Запускаем встроенный HTTP-сервер Python;

Ограничиваем каталог раздачи, чтобы не светить лишние файлы;

Скачиваем файл с другой машины через curl или браузер;

Используем такой сервер как быстрый способ передачи логов, сборок и архивов.


Полезный приём для администрирования и разработки: сервер быстро поднимается, не требует установки дополнительных сервисов и работает на любой системе с Python.

🚪 Linux Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍15🤝101
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ Нашел вам Losst — где всё о Linux и никакой воды — только суть!

Это мощный блог с чёткими и понятными гайдами по Ubuntu, shell-скриптам, настройке серверов, сетей и утилит.
Каждая статья — как мини-мануал: команды, объяснения, примеры.

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

🚪 Linux Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍189🔥9👎1
📂 Напоминалка по структуре директорий Linux!

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

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

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

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍10🔥9
Быстрый повтор и поиск команд из истории Bash!

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

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

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


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


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

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


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

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1911🔥9
This media is not supported in your browser
VIEW IN TELEGRAM
👍 Linux Cheatsheet — полезный справочник по командам!

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

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


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤝9🔥73
Быстро привести 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 или логами, он экономит кучу времени.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥97🤝3
☕️ Интересную статью нашёл на Хабре: «Анатомия DPI-анализа: что происходит с твоим пакетом за первые 16 КБ»!

В этой статье:
• Пошагово разобрано, как системы DPI анализируют сетевой трафик — от первого TCP-SYN пакета до поведенческого анализа соединения;
• Показано, какие признаки используются для детекции протоколов;
• Разбирается, как после установления TLS-соединения анализ продолжается по метаданным потока — размерам пакетов, интервалам передачи, соотношению входящего и исходящего трафика и др.


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


🚪 Linux Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🤝12👍10👎1
👩‍💻 Массовая обработка файлов в терминале!

В этом посте собраны утилиты для пакетной работы с файлами в командной строке. Рассмотрены безопасная передача аргументов через xargs, связка с find, массовое переименование, итерация по файлам и параллельное выполнение задач. Полезно для автоматизации и обработки больших наборов файлов.

🚪 Linux Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍10🤝9