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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/devops_ready
Download Telegram
🧐 Крутая статья для тех, кто хочет руками собрать рабочий Linux‑VPS и привести его в порядок по чек‑листу.

В этой статье:
• Показывают базовую первичную настройку сервера: подключение по SSH, обновление системы, hostname и timezone.

• Разбирают, что нужно сделать сразу после установки, чтобы VPS был готов к работе и не оставался «голым» сервером.

• Объясняют, как превратить этот набор действий в нормальный старт для DevOps, администрирования или дальнейшего развёртывания сервисов.


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


➡️ DevOps Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥106👍6
Знали, что можно добавлять timestamp к любому выводу terminal pipeline без изменения приложения и логгера?

Во многих CLI-утилитах, shell-скриптах и legacy-сервисах отсутствуют временные метки, из-за чего сложно анализировать задержки, интервалы выполнения и последовательность событий.

Утилита ts из пакета moreutils добавляет timestamp к каждой строке stdin в реальном времени:
$ tail -f app.log | ts '%Y-%m-%d %H:%M:%S'


Теперь каждая строка получает точное время:
2026-05-22 18:41:03 request started
2026-05-22 18:41:07 request finished


Это особенно полезно при отладке конвейеров команд, shell-автоматизации, CI-логов, docker-контейнеров и long-running процессов, где нельзя быстро изменить сам источник логов.

Можно использовать свой формат времени:
$ tail -f app.log | ts '[%H:%M:%S]'


Или измерять интервалы между событиями:
$ ping 1.1.1.1 | ts -i


Иногда программы буферизуют вывод — тогда поможет:
$ stdbuf -oL -eL some-command | ts


🔥 Приём кажется небольшим, но на практике сильно упрощает анализ поведения систем и CLI-инструментов без внедрения полноценного логгирования.

➡️ DevOps Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥8🤝61
📂 Базовые принципы построения надёжного стека логирования для DevOps!

На картинке — 14 ключевых правил построения enterprise-grade системы логирования, разделенных на лучшие практики и элементы надёжности, а также бонусный чек-лист для проверки твоего стека.

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍136🔥6
Знали ли вы, что MAC-адрес можно подменить за секунду для обхода фильтров в сети?

Многие администраторы используют фильтрацию по MAC-адресам как единственный барьер защиты, но этот идентификатор легко подделывается на программном уровне.

Спуфинг позволяет обойти ограничения доступа к Wi-Fi или «прикинуться» легитимным устройством, чтобы беспрепятственно работать в локальной сети.

Для начала необходимо временно отключить сетевой интерфейс:

sudo ip link set dev eth0 down


Установка нового произвольного адреса (замените eth0 на имя вашего интерфейса):

sudo ip link set dev eth0 address 08:00:27:8d:11:4b


Включение интерфейса обратно для работы с новым ID:

sudo ip link set dev eth0 up


🔥 Чтобы не придумывать адрес вручную, используйте утилиту macchanger -r eth0, которая сама подберет валидный и случайный MAC-адрес.

➡️ DevOps Ready | #совет
👍9🔥64😁3
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ Gizmo AI — нейросеть для обучения и запоминания информации!

AI-сервис, который помогает превращать заметки, PDF, статьи, видео и другие материалы в карточки для обучения и квизы. Нейросеть автоматически выделяет главное, генерирует вопросы и помогает быстрее запоминать информацию с помощью повторения и интерактивного формата обучения.

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍6🤝5
🖼️ Разбираем 7 ключевых команд для управления доступом!

Права доступа — одна из основ безопасности в Linux. Через chmod, chown и umask можно управлять доступом к файлам, а команды вроде ls -l и stat помогут быстро проанализировать текущие разрешения и владельцев.

➡️ DevOps Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝14🔥8👍5
📂 Напоминалка по SSH — как устанавливается защищённое соединение!

Например, SSH сначала согласовывает версии и алгоритмы шифрования, затем выполняет обмен ключами и только после этого открывает безопасную сессию для передачи команд и данных.

На картинке — полный цикл работы SSH: от TCP-подключения до шифрования команд и проверки ключей клиента.

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍6🔥5
Знали, что можно добавлять timestamp к любому выводу terminal pipeline без изменения приложения и логгера?

Во многих CLI-утилитах, shell-скриптах и legacy-сервисах отсутствуют временные метки, из-за чего сложно анализировать задержки, интервалы выполнения и последовательность событий.

Утилита ts из пакета moreutils добавляет timestamp к каждой строке stdin в реальном времени:
$ tail -f app.log | ts '%Y-%m-%d %H:%M:%S'


Теперь каждая строка получает точное время:
2026-05-22 18:41:03 request started
2026-05-22 18:41:07 request finished


Это особенно полезно при отладке конвейеров команд, shell-автоматизации, CI-логов, docker-контейнеров и long-running процессов, где нельзя быстро изменить сам источник логов.

Можно использовать свой формат времени:
$ tail -f app.log | ts '[%H:%M:%S]'


Или измерять интервалы между событиями:
$ ping 1.1.1.1 | ts -i


Иногда программы буферизуют вывод — тогда поможет:
$ stdbuf -oL -eL some-command | ts


🔥 Приём кажется небольшим, но на практике сильно упрощает анализ поведения систем и CLI-инструментов без внедрения полноценного логгирования.

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

На сайте собрана большая коллекция материалов по Linux, системному администрированию и серверной инфраструктуре. Здесь можно найти шпаргалки по командам, настройку сервисов, работу с сетью, Bash, Docker, SSH, Nginx и другие практические темы, с которыми регулярно сталкиваются админы и backend-разработчики.

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

➡️ DevOps Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5🤝4
Слышали, что Bash умеет выводить set -x не в терминал, а в отдельный log-файл?

Обычно при debugging shell-скриптов используют set -x, но весь trace смешивается с обычным stdout/stderr и быстро делает вывод неудобным для чтения.

В Bash существует специальная переменная BASH_XTRACEFD, которая перенаправляет xtrace в отдельный файловый дескриптор:
$ exec {FD}>>debug.log
$ export BASH_XTRACEFD=$FD


Теперь debugging не ломает основной вывод программы:
$ bash -x ./deploy.sh


Все trace-команды уходят только в debug.log, а stdout/stderr продолжают работать как обычно.

Это особенно полезно в автоматизации, CI/CD, deploy-скриптах, где важно сохранить чистый вывод программы, но при этом иметь полную трассировку выполнения для отладки.

После завершения debugging дескриптор корректно закрывается:
$ set +x
$ exec {FD}>&-


🔥 Механизм работает внутри Bash и использует обычные файловые дескрипторы оболочки без внешних утилит.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥155👍3
📂 Напоминалка по перенаправлениям ввода/вывода!

Например, > перенаправляет вывод команды в файл, 2> — ошибки, а 2>&1 объединяет STDOUT и STDERR.

На картинке — основные файловые дескрипторы (STDIN, STDOUT, STDERR), примеры перенаправлений и другое.

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍5🤝3
Работа с systemctl edit — переопределение systemd unit без изменения оригинального файла!

Многие администраторы и разработчики до сих пор изменяют unit-файлы напрямую в:
/usr/lib/systemd/system/


или:
/lib/systemd/system/


Но это vendor unit-файлы, устанавливаемые пакетным менеджером. После обновления пакета изменения могут быть перезаписаны.

Правильный способ настройки сервисов в systemd — использовать override-конфигурации через:
systemctl edit


Например, добавим переменные окружения для nginx:
sudo systemctl edit nginx.service


После сохранения systemd создаст файл:
/etc/systemd/system/nginx.service.d/override.conf


Это безопасный способ переопределения параметров сервиса без изменения оригинального unit-файла.

Пример добавления переменных окружения:
[Service]
Environment="APP_ENV=production"
Environment="WORKERS=4"


После сохранения systemctl edit обычно автоматически выполняет daemon-reload, поэтому достаточно просто перезапустить сервис:
sudo systemctl restart nginx


Если unit-файлы или override-конфигурации изменялись вручную в /etc/systemd/system/, тогда дополнительно выполняют:
sudo systemctl daemon-reload


Проверить итоговую конфигурацию сервиса можно так:
systemctl cat nginx.service


Команда покажет: оригинальный unit-файл, все override-конфигурации, порядок применения настроек.

А для просмотра итоговых параметров сервиса полезно использовать:
systemctl show nginx.service


Это особенно полезно при диагностике сложных production-конфигураций.

Переопределение ExecStart, один из важных нюансов systemd — перед новым ExecStart старое значение нужно очистить. Пример:
sudo systemctl edit app.service


Override:
[Service]
ExecStart=
ExecStart=/usr/local/bin/app --port 8080


Пустой ExecStart= сбрасывает предыдущее значение из исходного unit-файла. Без очистки systemd может выдать ошибку, поскольку для сервисов с типом, отличным от Type=oneshot, допускается только один ExecStart.

Автоматический перезапуск сервиса. Для production-сервисов часто настраивают автоматический перезапуск:
[Service]
Restart=on-failure
RestartSec=5


Так systemd будет автоматически перезапускать сервис только при ошибках, а не после штатной остановки.

Systemd умеет ограничивать ресурсы процессов через cgroup. Пример ограничения памяти:
[Service]
MemoryMax=1G


Это особенно полезно для Node.js, Python, Java и других серверных приложений с непредсказуемым потреблением памяти.

Иногда требуется изменить почти весь unit-файл. Для этого используется:
sudo systemctl edit --full app.service


В этом режиме systemd создаёт полный локальный unit-файл в:
/etc/systemd/system/


который заменяет оригинальный unit из пакета.

Но использовать --full стоит осторожно — после этого вы фактически берёте поддержку unit-файла на себя и можете пропустить изменения из новых версий пакета.

Практический пример настройки сервиса:
[Service]
Environment="NODE_ENV=production"
WorkingDirectory=/srv/app
ExecStart=
ExecStart=/usr/bin/node /srv/app/server.js
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
MemoryMax=1G


Так часто настраивают production-сервисы для Node.js, Go, Python, Java и других серверных приложений.

Дополнительно полезно знать:
systemctl show app.service -p FragmentPath -p DropInPaths


Команда покажет: путь к основному unit-файлу, все подключённые override-конфигурации.

🔥 Это стандартный и рекомендуемый способ настройки systemd без риска потерять изменения после обновления системы.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥76
This media is not supported in your browser
VIEW IN TELEGRAM
👍 Linux Audit — полезные материалы по Linux и безопасности!

На сайте собраны статьи и гайды по Linux, системному администрированию, hardening и безопасности серверов. Здесь можно найти разбор команд, настройку сервисов, аудит системы, советы по защите инфраструктуры и практические рекомендации для админов и backend-разработчиков.

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

➡️ DevOps Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6🤝5
Bash умеет массово генерировать пути и имена файлов без циклов и скриптов!

В Bash существует brace expansion — механизм, который разворачивает шаблоны ещё до запуска команды.

Можно мгновенно создавать структуры директорий:
$ mkdir -p build/{api,worker,nginx,db}


Shell превратит это в:
build/api
build/worker
build/nginx
build/db


Точно так же удобно генерировать наборы файлов:
$ touch app/{main,test,dev}.js


Получаются:
main.js
test.js
dev.js


Очень полезный приём для backup:
$ cp file{,.bak}


Bash автоматически развернёт команду в:
$ cp file file.bak


Brace expansion работает на уровне shell ещё до выполнения команды, поэтому не требует циклов, xargs или внешних утилит.

🔥 Это ускоряет работу с файлами, структурами развёртывания, генерацией шаблонов и автоматизацией shell-сценариев.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥7🤝5
📂 Напоминалка по проектированию правильных Health-Check'ов!

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

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

➡️ DevOps Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3🤝3
Bash умеет массово генерировать пути и имена файлов без циклов и скриптов!

В Bash существует brace expansion — механизм, который разворачивает шаблоны ещё до запуска команды.

Можно мгновенно создавать структуры директорий:
$ mkdir -p build/{api,worker,nginx,db}


Shell превратит это в:
build/api
build/worker
build/nginx
build/db


Точно так же удобно генерировать наборы файлов:
$ touch app/{main,test,dev}.js


Получаются:
main.js
test.js
dev.js


Очень полезный приём для backup:
$ cp file{,.bak}


Bash автоматически развернёт команду в:
$ cp file file.bak


Brace expansion работает на уровне shell ещё до выполнения команды, поэтому не требует циклов, xargs или внешних утилит.

🔥 Это ускоряет работу с файлами, структурами развёртывания, генерацией шаблонов и автоматизацией shell-сценариев.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥137👍5
☕️ Наткнулся на интересную статью на Хабре: «far2l 2.8.0 в Ubuntu 26.04: новые классные фичи»!

В этой статье:
• Разбираются ключевые обновления far2l 2.8.0;
• Как far2l постепенно превращается из простого порта Far Manager в мощный нативный инструмент для Linux и macOS;
• Практические улучшения для разработчиков и администраторов: перенос слов, номера строк, кликабельные ссылки, улучшенная работа с терминалами и поддержка kitty graphics protocol.


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


➡️ DevOps Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥7🤝5