В этом посте собраны ключевые параметры и типы проверок (Liveness, Readiness, Startup), которые помогут кластеру понять, когда ваш контейнер готов принимать трафик, а когда его пора перезагрузить.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥10👍5🤝1
NAT позволяет устройствам из приватной сети выходить в интернет через один публичный IP, подменяя IP и порты на роутере.
На картинке — как меняется пакет до и после NAT, как работает NAT-таблица и почему несколько устройств могут использовать один public IP.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥10🤝7❤1
Работа с символическими и жёсткими ссылками!
Ссылки используются для повторного доступа к файлам и каталогам без дублирования данных. Применяются в пакетных менеджерах, конфигурациях, деплое и файловых структурах.
Создание жёсткой ссылки:
Жёсткая ссылка указывает на тот же inode, что и исходный файл. Удаление одного имени не удаляет данные, пока существует хотя бы одна ссылка.
Ограничения жёстких ссылок: они практически всегда применимы только к файлам; на каталоги, как правило, запрещены на уровне файловой системы.
Создание символической ссылки:
Симлинк — это отдельный файл, содержащий путь к целевому объекту (файлу или каталогу).
Просмотр ссылок и inode:
Одинаковый inode — жёсткие ссылки на один файл. Симлинк имеет собственный inode.
Проверка, куда указывает символическая ссылка:
Перезапись существующей символической ссылки:
Удаление ссылки:
Для жёсткой ссылки это удаление имени, а не данных.
🔥 Симлинки зависят от пути и могут «сломаться»; жёсткие ссылки устойчивы, но ограничены одной файловой системой и практически не применяются для каталогов.
➡️ DevOps Ready | #практика
Ссылки используются для повторного доступа к файлам и каталогам без дублирования данных. Применяются в пакетных менеджерах, конфигурациях, деплое и файловых структурах.
Создание жёсткой ссылки:
ln original.txt hardlink.txt
Жёсткая ссылка указывает на тот же inode, что и исходный файл. Удаление одного имени не удаляет данные, пока существует хотя бы одна ссылка.
Ограничения жёстких ссылок: они практически всегда применимы только к файлам; на каталоги, как правило, запрещены на уровне файловой системы.
Создание символической ссылки:
ln -s /path/to/original symlink
Симлинк — это отдельный файл, содержащий путь к целевому объекту (файлу или каталогу).
Просмотр ссылок и inode:
ls -li
Одинаковый inode — жёсткие ссылки на один файл. Симлинк имеет собственный inode.
Проверка, куда указывает символическая ссылка:
readlink symlink
readlink -f symlink
-f разворачивает цепочку ссылок до реального пути.Перезапись существующей символической ссылки:
ln -sfn /new/path symlink
-s — symbolic-f — удаляет существующий путь назначения перед созданием-n — не разыменовывать симлинк на каталогУдаление ссылки:
rm symlink
rm hardlink.txt
Для жёсткой ссылки это удаление имени, а не данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍8🔥7
Например, HTTP/1.1 использует постоянные соединения, HTTP/2 умеет мультиплексировать запросы в одном TCP-канале, а HTTP/3 работает поверх QUIC и UDP.
На картинке — наглядная эволюция HTTP от первых версий до современных стандартов.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6🤝6❤3
Параллельные команды в Bash!
Cразу получаешь PID процесса и FD для
Так отправляешь данные в stdin фоновой команды напрямую, без
Читаешь ответ синхронно, управляя порядком чтения и записи из Bash.
Ожидание завершения без busy-loop и sleep:
🔥
➡️ DevOps Ready | #совет
coproc запускает команду асинхронно и создаёт для неё каналы ввода и вывода, доступные из Bash через файловые дескрипторы.Cразу получаешь PID процесса и FD для
stdin/stdout и можешь работать с ним как с обычным I/O:echo "ping" >&"${WORKER[1]}"Так отправляешь данные в stdin фоновой команды напрямую, без
cmd | cmd и без временных файлов:read -r result <&"${WORKER[0]}"Читаешь ответ синхронно, управляя порядком чтения и записи из Bash.
Ожидание завершения без busy-loop и sleep:
wait "$WORKER_PID"
coproc - встроенный механизм параллелизма Bash, который даёт управляемые фоновые процессы с явным I/O-контролем.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤8🔥8
В этой статье:
• Показано, как превратить рутинные задачи в быстрые и удобные команды под себя;
• Разобраны реальные алиасы и скрипты для git, systemd, сети, дисков и мониторинга системы;
• На примерах видно, как со временем вырастает персональный набор инструментов, который реально экономит время работы.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤8🤝7👍2
Например,
ls показывает файлы в директории, ps и top помогают понять, какие процессы сейчас работают, а df и du — быстро проверить использование диска.На картинке — часто используемые команды, которые стоит держать под рукой.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤11🤝7🔥2
Разбор логов в Linux — это 90% работы при поиске причин падения сервисов. Правильное использование фильтров journalctl позволяет мгновенно отсечь системный шум и найти ту самую строку, из-за которой упал Nginx или Docker.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤6👍6🤝5
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь основной упор сделан на реальные команды и рабочие приёмы. Разбирают повседневные задачи администрирования, работу в терминале, настройку системы и полезные мелочи, которые реально экономят время. Простой и понятный формат: прочитал и сразу применил. Отличный ресурс, если хочется расширять набор рабочих решений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🤝7
Реализация swap-файла в Linux!
Swap — это механизм подстраховки по памяти, который помогает системе переживать пиковые нагрузки, снижать вероятность OOM и деградации сервисов.
Проверка текущего состояния — посмотреть активные swap-устройства:
Если swap не настроен, вывод будет пустым.
Для общего обзора памяти:
Создание swap-файла — создаётся обычным файлом нужного размера. Быстрый вариант:
Если fallocate недоступен или swapon отказывается работать с таким файлом, используется более универсальный способ:
На файловых системах с Copy-on-Write (например, btrfs) swap-файл требует отдельной настройки. (nocow, без compression и соблюдение требований FS), иначе swapon завершится ошибкой.
Права доступа:
Swap-файл должен быть доступен только root, иначе система откажется его использовать.
Инициализация и активация:
Swap начинает работать сразу, без перезагрузки. Проверка:
Автоподключение при загрузке — добавить в
Это стандартная и ожидаемая конфигурация.
Настройка swappiness — текущее значение:
На серверах значение часто уменьшают до 10–20, чтобы swap использовался как страховка, а не как активная память, конкретное значение зависит от профиля нагрузки.
Временное изменение — через sysctl, постоянное — через файл в
Отключение swap:
После этого файл можно удалить и убрать запись из
🔥 Swap-файл — простой и безопасный способ повысить устойчивость системы без переразметки дисков и с заметным снижением риска OOM.
➡️ DevOps Ready | #практика
Swap — это механизм подстраховки по памяти, который помогает системе переживать пиковые нагрузки, снижать вероятность OOM и деградации сервисов.
Проверка текущего состояния — посмотреть активные swap-устройства:
swapon --show
Если swap не настроен, вывод будет пустым.
Для общего обзора памяти:
free -h
Создание swap-файла — создаётся обычным файлом нужного размера. Быстрый вариант:
sudo fallocate -l 4G /swapfile
Если fallocate недоступен или swapon отказывается работать с таким файлом, используется более универсальный способ:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
На файловых системах с Copy-on-Write (например, btrfs) swap-файл требует отдельной настройки. (nocow, без compression и соблюдение требований FS), иначе swapon завершится ошибкой.
Права доступа:
sudo chmod 600 /swapfile
Swap-файл должен быть доступен только root, иначе система откажется его использовать.
Инициализация и активация:
sudo mkswap /swapfile
sudo swapon /swapfile
Swap начинает работать сразу, без перезагрузки. Проверка:
swapon --show
Автоподключение при загрузке — добавить в
/etc/fstab:/swapfile none swap defaults 0 0
Это стандартная и ожидаемая конфигурация.
Настройка swappiness — текущее значение:
cat /proc/sys/vm/swappiness
На серверах значение часто уменьшают до 10–20, чтобы swap использовался как страховка, а не как активная память, конкретное значение зависит от профиля нагрузки.
Временное изменение — через sysctl, постоянное — через файл в
/etc/sysctl.d/.Отключение swap:
sudo swapoff /swapfile
После этого файл можно удалить и убрать запись из
/etc/fstab, если он больше не нужен.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤝6❤5🔥4
Например,
docker build собирает образ из Dockerfile, docker run запускает контейнер, а docker push отправляет образ в реестр.На картинке — базовая схема работы Docker: клиент, демон, образы, контейнеры и реестр образов.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥9🤝9
Нужно понять, какие процессы потребляют CPU, особенно по SSH или внутри скрипта?
Эта команда выводит список всех процессов и сортирует их по использованию CPU, начиная с наименее нагруженных:
Если нужно сразу увидеть самых прожорливых, сортируйте в обратном порядке и ограничьте вывод.
Когда анализируете производительность, важно учитывать и архитектуру системы, потому что поведение процессов и лимиты могут отличаться:
Команда показывает разрядность системы, 32 или 64 бита и помогает избежать ложных выводов при отладке, установке софта или сравнении метрик.
🔥 Связка
➡️ DevOps Ready | #совет
Эта команда выводит список всех процессов и сортирует их по использованию CPU, начиная с наименее нагруженных:
ps aux | sort -nrk 3 | head
Если нужно сразу увидеть самых прожорливых, сортируйте в обратном порядке и ограничьте вывод.
Когда анализируете производительность, важно учитывать и архитектуру системы, потому что поведение процессов и лимиты могут отличаться:
getconf LONG_BIT
Команда показывает разрядность системы, 32 или 64 бита и помогает избежать ложных выводов при отладке, установке софта или сравнении метрик.
ps + sort даёт быстрый способ анализа нагрузки, а getconf LONG_BIT показывает разрядность системы.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥7❤6🤝3
В этой статье:
• Пошагово разбирается, как Linux работает с дисками, флешками, USB-устройствами и внешними носителями через терминал;
• Понятно объясняется логика /dev и /sys, почему устройства могут вести себя по-разному;
• На примерах показано, как монтировать, форматировать, диагностировать устройства и не ломать систему лишними действиями.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍9🔥7
Работа с curl в Linux!
Скачивание файла:
Скачивание с указанием имени:
Полезно для артефактов сборки и CI.
Скачивание с докачкой:
Продолжает загрузку с места обрыва, если сервер поддерживает
Просмотр HTTP-заголовков:
Показывает статус-код, Content-Type, Content-Length, cache-заголовки.
Подробный вывод для диагностики:
Отображает TLS-рукопожатие, запрос и ответ — полезно при сетевых проблемах.
GET-запрос с параметрами:
POST-запрос с JSON:
Передача файла
Используется для загрузки файлов в сервисы и хранилища.
🔥
➡️ DevOps Ready | #практика
curl — универсальный инструмент для работы с HTTP/HTTPS и другими протоколами. Используется для скачивания файлов, проверки API, диагностики сетевых проблем и автоматизации.Скачивание файла:
curl -O https://example.com/file.tar.gz
-O — сохранить файл с оригинальным именем.Скачивание с указанием имени:
curl -o app.tar.gz https://example.com/build/latest.tar.gz
Полезно для артефактов сборки и CI.
Скачивание с докачкой:
curl -C - -O https://example.com/bigfile.iso
Продолжает загрузку с места обрыва, если сервер поддерживает
Range.Просмотр HTTP-заголовков:
curl -I https://example.com
Показывает статус-код, Content-Type, Content-Length, cache-заголовки.
Подробный вывод для диагностики:
curl -v https://example.com
Отображает TLS-рукопожатие, запрос и ответ — полезно при сетевых проблемах.
GET-запрос с параметрами:
curl "https://api.example.com/items?limit=10&offset=0"
POST-запрос с JSON:
curl -X POST https://api.example.com/items \
-H "Content-Type: application/json" \
-d '{"name":"test","enabled":true}'
Передача файла
(multipart/form-data):curl -F "file=@backup.tar.gz" https://upload.example.com
Используется для загрузки файлов в сервисы и хранилища.
curl работает на уровне протокола и не интерпретирует формат передаваемых данных; явно задавайте метод, когда важно избежать автоповедение. Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍12🔥8