Разбор логов в 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
ClusterIP даёт доступ к Pod’ам только внутри кластера, NodePort открывает фиксированный порт на каждом узле, LoadBalancer публикует сервис через внешний балансировщик, а ExternalName мапит сервис на внешний домен для интеграции с внешними ресурсами.Сохрани, чтобы не путаться при настройке экспозиции сервисов в
K8s!Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6🤝6
В этом посте — базовые инструменты для анализа сетевых портов и сервисов. Рассмотрены команды для просмотра слушающих сокетов, проверки доступности TCP-портов, сопоставления портов с процессами и выполнения сетевого сканирования. Подходит для эксплуатации, отладки и оперативной диагностики.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤8👍7🤝1
Например, Ctrl + A переносит курсор в начало строки, а Ctrl + R запускает инкрементальный поиск по истории команд.
На картинке — полезные сочетания клавиш для быстрой навигации и редактирования команд в терминале.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤝7🔥6❤2
Как не уничтожить лишнее при массовых операциях?
Любая массовая команда в Linux — это потенциально опасный инструмент.
Ошибка в маске, неверный путь или лишний * и можно затронуть не те файлы. Поэтому сначала всегда проверяем, что именно выберет фильтр:
Когда результат полностью совпадает с ожиданиями, добавляем действие:
Если важен контроль и наглядность, лучше использовать
🔥
➡️ DevOps Ready | #совет
Любая массовая команда в Linux — это потенциально опасный инструмент.
Ошибка в маске, неверный путь или лишний * и можно затронуть не те файлы. Поэтому сначала всегда проверяем, что именно выберет фильтр:
find /data -type f -name "*.log" -print
-print показывает полный список совпадений. Это позволяет увидеть неожиданные вложенные каталоги, лишние расширения или неверный путь.Когда результат полностью совпадает с ожиданиями, добавляем действие:
find /data -type f -name "*.log" -delete
Если важен контроль и наглядность, лучше использовать
-exec:find /data -type f -name "*.log" -exec rm -v {} +rm -v покажет каждый удалённый файл, что особенно полезно в скриптах и при ручной работе в проде.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥9❤8
This media is not supported in your browser
VIEW IN TELEGRAM
Это удобный справочник по командам Linux с разбивкой по категориям: файлы, сеть, процессы, пользователи, Git, SSH, пакетные менеджеры и многое другое. Подходит как для начинающих, так и для тех, кто работает в терминале постоянно и хочет иметь под рукой удобную шпаргалку.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍8🤝7
Перенаправление потоков и pipe!
Процесс в Unix обычно имеет три стандартных дескриптора:
0 —
Shell не обрабатывает вывод — он до запуска команды переназначает, к каким объектам привязаны дескрипторы (терминал, файл, pipe). Поэтому процесс стартует уже с изменённой таблицей дескрипторов.
Базовый случай — перенаправление
Оператор
Важно помнить, что
Для
Так можно разделить обычный вывод и ошибки в разные файлы:
Поскольку
Редиректы применяются слева направо, поэтому порядок критичен:
Это именно копирование назначения дескриптора, а не абстрактное объединение потоков.
В этом случае файл становится источником данных для процесса.
Оператор
Через
Shell также позволяет работать с дополнительными дескрипторами, что удобно в скриптах:
В этом контексте
🔥 Основные принципы просты: редиректы настраиваются до запуска, применяются слева направо;
➡️ DevOps Ready | #практика
Процесс в Unix обычно имеет три стандартных дескриптора:
0 —
stdin, 1 — stdout, 2 — stderr.Shell не обрабатывает вывод — он до запуска команды переназначает, к каким объектам привязаны дескрипторы (терминал, файл, pipe). Поэтому процесс стартует уже с изменённой таблицей дескрипторов.
Базовый случай — перенаправление
stdout в файл:echo "test" > file.txt
Оператор
> открывает файл с перезаписью (truncate). Если нужно дописывать данные в конец, используется >>:echo "line" >> file.txt
Важно помнить, что
> по умолчанию влияет только на stdout (fd 1).Для
stderr используется дескриптор 2:command 2> error.log
Так можно разделить обычный вывод и ошибки в разные файлы:
command > out.log 2> error.log
Поскольку
stdout и stderr — независимые дескрипторы, их можно направить в один файл:command > all.log 2>&1
2>&1 означает: направить stderr туда же, куда в этот момент направлен stdout. Редиректы применяются слева направо, поэтому порядок критичен:
command > all.log 2>&1 # оба потока в файл
command 2>&1 > all.log # stderr останется в терминале
Это именно копирование назначения дескриптора, а не абстрактное объединение потоков.
stdin (fd 0) тоже можно переназначить:sort < input.txt
В этом случае файл становится источником данных для процесса.
Оператор
| создаёт pipe — канал между процессами: stdout левой команды подключается к stdin правой.grep 500 access.log | wc -l
Через
pipe передаётся только stdout. Если нужно передать и stderr, его сначала перенаправляют в stdout:make 2>&1 | tee build.log
Shell также позволяет работать с дополнительными дескрипторами, что удобно в скриптах:
exec 3> debug.log
echo "debug info" >&3
exec 3>&-
В этом контексте
exec изменяет дескрипторы текущего shell-процесса, позволяя организовать отдельные каналы вывода.2>&1 копирует stdout, pipe соединяет stdout одной команды со stdin другой.Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8🔥5🤝3
Например,
ssh -R используется для публикации локальных сервисов через удалённый SSH-сервер. На изображении показано: базовый синтаксис
ssh -R, отличие short и long form, маршрут трафика через SSH-туннель, влияние параметра GatewayPorts на стороне сервераСохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝7👍5🔥5❤2
Изоляция процессов в Linux через Unshare без Docker и тяжелых утилит!
Мы научимся использовать системный вызов
Это позволяет запустить процесс с собственной таблицей хостов или файловой системой, не влияя на основную
Сначала создадим изолированную среду с собственной сетевой петлей и новым пространством имен для имени хоста:
Теперь вы находитесь внутри изолированного процесса, где изменения параметров сети не коснутся основной системы.
Внутри новой оболочки зададим уникальное имя хоста, чтобы убедиться в полной изоляции
Имя хоста изменится только для этой сессии, в то время как основная система сохранит прежнее название.
Для полной демонстрации сетевой изоляции попробуем поднять интерфейс, который будет существовать только в этом пространстве:
Внутри этого пространства вы увидите чистый сетевой стек, полностью отделенный от физических интерфейсов сервера.
Проверка работоспособности:
Ожидаемый вывод: ваше старое имя хоста (подтверждает, что изоляция работает).
🔥 Помните, что для некоторых флагов изоляции (например, монтирования) требуются права суперпользователя или настройка
➡️ DevOps Ready | #практика
Мы научимся использовать системный вызов
unshare для создания изолированного пространства имен (namespaces), что является фундаментом контейнеризации в Linux. Это позволяет запустить процесс с собственной таблицей хостов или файловой системой, не влияя на основную
ОС. Сначала создадим изолированную среду с собственной сетевой петлей и новым пространством имен для имени хоста:
sudo unshare --fork --uts --net bash
Теперь вы находитесь внутри изолированного процесса, где изменения параметров сети не коснутся основной системы.
Внутри новой оболочки зададим уникальное имя хоста, чтобы убедиться в полной изоляции
UTS namespace:hostname sandbox-env && hostname
Имя хоста изменится только для этой сессии, в то время как основная система сохранит прежнее название.
Для полной демонстрации сетевой изоляции попробуем поднять интерфейс, который будет существовать только в этом пространстве:
ip link set lo up && ip addr show lo
Внутри этого пространства вы увидите чистый сетевой стек, полностью отделенный от физических интерфейсов сервера.
Проверка работоспособности:
hostname
Ожидаемый вывод: ваше старое имя хоста (подтверждает, что изоляция работает).
User Namespaces.Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍9🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Это интерактивная площадка, где можно тренироваться в Linux, Docker, Kubernetes, Git, Terraform и других DevOps-инструментах прямо в браузере. Вместо теории, готовые лабораторные среды с задачами: запускаешь окружение, выполняешь команды, настраиваешь сервисы. Отличный вариант, если хочешь попрактиковаться без установки инструментов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍9🤝7