Запись и воспроизведение терминальной сессии!
Иногда нужно показать, как ты что-то делал в терминале: отладку, деплой, последовательность команд.
Linux умеет записывать терминал как сессию, включая тайминги:
После этого делаем все что нужно.
Завершаем запись обычным выходом:
Теперь можно проиграть сессию с теми же паузами:
🔥 Помогает, когда нужно зафиксировать ручной деплой, приложить воспроизводимую сессию к баг-репорту или восстановить ход действий.
➡️ DevOps Ready | #совет
Иногда нужно показать, как ты что-то делал в терминале: отладку, деплой, последовательность команд.
Linux умеет записывать терминал как сессию, включая тайминги:
script -t 2> timing.log session.log
После этого делаем все что нужно.
Завершаем запись обычным выходом:
exit
Теперь можно проиграть сессию с теми же паузами:
scriptreplay timing.log session.log
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍8🔥7😁1
Например,
ssh -D 1080 user@server поднимает локальный SOCKS-прокси и позволяет пускать трафик приложений через SSH-сервер.На картинке — наглядно показано, как работает SSH Dynamic Port Forwarding: локальный порт, SSH-туннель и проброс трафика к конечным адресам.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥9🤝6❤2
Когда кластер начинает вести себя нестабильно, время на поиск решения ограничено. Эти команды помогут мгновенно локализовать сбой, проверить события жизненного цикла контейнеров и пробросить порты для глубокой отладки без правок в конфигах.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
Сайт шаг за шагом объясняет, как работать с Docker: контейнеры, образы, сети. Все примеры можно сразу повторить у себя в терминале, без сложной теории. Полезно для разработчиков, которые хотят разобраться в контейнеризации и понять, как Docker используется в реальных проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥9🤝7❤2
Работа с архивами tar в Linux!
tar — инструмент для упаковки и распаковки данных. Часто используется для бэкапов, доставки артефактов, упаковки проектов и обмена данными между серверами.
Создание архива с gzip-сжатием:
Создание архива с zstd-сжатием (нужен GNU tar с поддержкой
Основные ключи:
Просмотр содержимого без извлечения:
Проверка целостности (проверяется поток сжатия, не структура tar):
Извлечение архива:
Инкрементальный архив (GNU tar):
Потоковая передача по SSH (без промежуточного файла):
🔥
➡️ DevOps Ready | #практика
tar — инструмент для упаковки и распаковки данных. Часто используется для бэкапов, доставки артефактов, упаковки проектов и обмена данными между серверами.
Создание архива с gzip-сжатием:
tar -czvf archive.tar.gz /path/to/data
Создание архива с zstd-сжатием (нужен GNU tar с поддержкой
--zstd и установленный zstd):tar --zstd -cvf archive.tar.zst /path/to/data
Основные ключи:
c — create
x — extract
t — list
z — gzip
v — verbose
f — файл/поток
-C — директория
--zstd — zstd
Просмотр содержимого без извлечения:
tar -tzvf archive.tar.gz
tar --zstd -tvf archive.tar.zst
Проверка целостности (проверяется поток сжатия, не структура tar):
gzip -t archive.tar.gz
zstd -t archive.tar.zst
Извлечение архива:
tar -xzvf archive.tar.gz -C /tmp/extract/
tar -xzvf archive.tar.gz path/inside/archive/file.conf
Инкрементальный архив (GNU tar):
tar -czvf backup.tar.gz -g snapshot.file /path/to/data
snapshot.file нужно переиспользовать между запусками.Потоковая передача по SSH (без промежуточного файла):
tar -czf - /data | ssh user@server "tar -xzf - -C /srv/data"
tar по умолчанию сохраняет права доступа, владельца/группу, mtime и симлинки; ACL и xattrs требуют явных опций (--acls, --xattrs).Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥8❤6🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Это тренажёр с терминалом, где Linux изучается через реальные задания, а не через статьи. Здесь можно на практике поработать с systemd, файловыми системами, процессами и Docker в полноценном окружении. Формат обучения максимально ориентирован на реальные задачи администрирования и работы в командной строке.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍11🔥7
Даже опытные инженеры иногда путаются в отступах или не знают, как заставить Helm проверить наличие секрета в кластере перед деплоем. Эти функции сделают ваши чарты чище, безопаснее и гибче.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤5👍5
Например,
pvcreate инициализирует диск или раздел под LVM, а vgcreate объединяет физические тома в volume group.На картинке — наглядная схема архитектуры LVM и самые часто используемые команды для управления physical volumes, volume groups и logical volumes.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🔥6🤝3
Как защитить скрипт от двойного запуска?
Бывает, что cron/CI/ручной запуск запускают один и тот же скрипт дважды.
Своеобразным замком может послужить
Здесь мы открыли файл-замок и привязали его к FD
Пробуем взять
Дальше можно выполнять работу, пока процесс жив,
Для проверки откроем второй терминал и запустим тот же блок, второй экземпляр завершится (или можешь заменить
🔥
➡️ DevOps Ready | #совет
Бывает, что cron/CI/ручной запуск запускают один и тот же скрипт дважды.
Своеобразным замком может послужить
flock, он берёт advisory lock на файл через дескриптор:exec 9>/tmp/myjob.lock
Здесь мы открыли файл-замок и привязали его к FD
9.Пробуем взять
lock без ожидания, если уже занято, сразу выходим:flock -n 9 || exit 0
Дальше можно выполнять работу, пока процесс жив,
lock удерживается ядром:echo "running: $$"
Для проверки откроем второй терминал и запустим тот же блок, второй экземпляр завершится (или можешь заменить
exit 0 на сообщение):sleep 10
flock - способ защитить скрипт от повторного запуска: блокировка привязана к процессу, автоматически снимается ядром и не требует ручной очистки файлов.Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7🔥7
В этой статье:
• Разбирают эволюцию DevOps от «собака-деплоер» к платформенной инженерии;
• Показывают, какие скиллы востребованы;
• Объясняют карьерный трек: что отличает mid от senior/platform engineer и как перейти от «фикса серваков» к дизайну инфраструктуры.🔊 Продолжай читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4🔥4
Поиск открытых, но удалённых файлов!
Если файл удалён, но процесс продолжает удерживать его файловый дескриптор, место на диске не освобождается до закрытия этого дескриптора.
Поиск таких файлов:
Команда показывает файлы с
Фильтрация по пути:
Позволяет отфильтровать файлы, связанные с указанным путём (по имени/расположению файла).
Формат вывода зависит от версии
Освобождение места без перезапуска системы:
Работает только для демонов, которые корректно обрабатывают сигнал перезагрузки конфигурации и переоткрывают файловые дескрипторы.
Завершение процесса:
Отправляется
Проверка после очистки:
Важно убедиться, что удалённые файлы больше не удерживаются процессами.
🔥 Типичная ситуация при ручном удалении логов без
➡️ DevOps Ready | #практика
Если файл удалён, но процесс продолжает удерживать его файловый дескриптор, место на диске не освобождается до закрытия этого дескриптора.
Поиск таких файлов:
sudo lsof -nP +L1
Команда показывает файлы с
link count = 0 — то есть удалённые из файловой системы (unlinked), но всё ещё открытые процессами.Фильтрация по пути:
sudo lsof -nP +L1 /var
Позволяет отфильтровать файлы, связанные с указанным путём (по имени/расположению файла).
Формат вывода зависит от версии
lsof и ширины терминала, поэтому парсинг через awk возможен, но небезопасен — используйте вывод как ориентир.Освобождение места без перезапуска системы:
sudo kill -HUP PID
Работает только для демонов, которые корректно обрабатывают сигнал перезагрузки конфигурации и переоткрывают файловые дескрипторы.
Завершение процесса:
sudo kill PID
Отправляется
SIGTERM — процесс штатно завершается, закрывает файловые дескрипторы и освобождает место. SIGKILL (-9) — крайняя мера, если процесс не реагирует.Проверка после очистки:
df -h
sudo lsof -nP +L1
Важно убедиться, что удалённые файлы больше не удерживаются процессами.
logrotate или при аварийной ротации файлов.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥7🤝6❤2
Выдача бинарникам точечных привилегий через setcap!
Иногда программе нужен root только для одной операции (bind к 80 порту, raw socket, cap_sys_ptrace). Для этого в Linux есть capabilities — они управляются через
Проверка
Типичный вывод:
В современных дистрибутивах
Пример: разрешить бинарнику слушать порт
Теперь запуск возможен от обычного пользователя:
Проверка назначенных
Удаление
Несколько
Просмотр списка и описания всех
Важно: работает только на файловых системах с поддержкой extended attributes,
🔥
➡️ DevOps Ready | #практика
Иногда программе нужен root только для одной операции (bind к 80 порту, raw socket, cap_sys_ptrace). Для этого в Linux есть capabilities — они управляются через
setcap.Проверка
capabilities у исполняемого файла:getcap /usr/bin/ping
Типичный вывод:
/usr/bin/ping cap_net_raw=ep
В современных дистрибутивах
ping часто не setuid-root, а работает через capabilities, получая доступ к raw socket.Пример: разрешить бинарнику слушать порт
<1024 без root:sudo setcap cap_net_bind_service=ep ./server
Теперь запуск возможен от обычного пользователя:
./server
Bind к :80 будет работать без sudo.Проверка назначенных
capabilities:getcap ./server
Удаление
capabilities у бинарника, если нужно полностью убрать выданные ранее права и вернуть его в обычное состояние:sudo setcap -r ./server
Несколько
capabilities сразу, если бинарнику требуется больше одного привилегированного действия:sudo setcap cap_net_bind_service,cap_sys_time=ep ./tool
Просмотр списка и описания всех
capabilities:man 7 capabilities
Важно: работает только на файловых системах с поддержкой extended attributes,
cp по умолчанию сбрасывает xattr (используйте cp --preserve=xattr или -a), tar сохраняет capabilities только с --xattrsCapabilities — способ выдавать минимально необходимые права, вместо запуска всего от root.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5🤝5❤1