Часто разработчики сваливают все проверки в один простой эндпоинт, что приводит к ложным срабатываниям и падению сервисов под нагрузкой. На этой схеме — подробный гайд о том, как разделить уровни ответственности и настроить эффективный мониторинг, который реально отражает состояние системы.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3🤝3
Bash умеет массово генерировать пути и имена файлов без циклов и скриптов!
В Bash существует brace expansion — механизм, который разворачивает шаблоны ещё до запуска команды.
Можно мгновенно создавать структуры директорий:
Shell превратит это в:
Точно так же удобно генерировать наборы файлов:
Получаются:
Очень полезный приём для backup:
Bash автоматически развернёт команду в:
Brace expansion работает на уровне shell ещё до выполнения команды, поэтому не требует циклов,
🔥 Это ускоряет работу с файлами, структурами развёртывания, генерацией шаблонов и автоматизацией shell-сценариев.
🚪 Linux Ready | #совет
В 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 или внешних утилит.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤7👍5
В этой статье:
• Разбираются ключевые обновления far2l 2.8.0;
• Как far2l постепенно превращается из простого порта Far Manager в мощный нативный инструмент для Linux и macOS;
• Практические улучшения для разработчиков и администраторов: перенос слов, номера строк, кликабельные ссылки, улучшенная работа с терминалами и поддержка kitty graphics protocol.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥7🤝5
Например, set -euo pipefail помогает избежать многих ошибок в скриптах, а trap позволяет корректно обрабатывать сигналы и выполнять очистку перед завершением программы.
На картинке — основные конструкции Bash: переменные, условия, циклы, функции, массивы, работа с файлами, аргументы командной строки, перенаправление потоков, обработка сигналов и другое.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5❤3👎1
Работа с ss — замена netstat для диагностики сетевых подключений!
Во многих руководствах до сих пор встречается:
Но в большинстве современных Linux-дистрибутивов рекомендуется использовать:
Утилита входит в пакет
Посмотреть TCP-сокеты:
Посмотреть все TCP-соединения в числовом виде:
Посмотреть прослушивающие TCP-сокеты и UDP-сокеты:
Если нужно увидеть процессы, которым принадлежат сокеты:
Вывод покажет адреса прослушивания, порты, PID и имя процесса.
Частая задача — выяснить, кто занимает конкретный порт. Например, проверить порт 8080:
Либо отфильтровать сокеты, прослушивающие порт 443:
При диагностике веб-серверов полезно смотреть количество установленных соединений. Например:
Состояния соединений отображаются в первом столбце, например:
Подсчитать количество активных соединений:
Это помогает быстро оценить текущую нагрузку на сервис.
Для анализа SSH-подключений:
Либо так:
В зависимости от того, анализируется сервер или клиент.
Посмотреть только сокеты в состоянии
Так можно быстро проверить, действительно ли приложение слушает нужный порт.
Например, после запуска сервиса:
Для диагностики проблем с соединениями полезно смотреть сокеты в ожидании закрытия:
Большое количество
Показать общую статистику по протоколам:
Например:
Конкретные значения будут зависеть от текущего состояния системы. Команда позволяет быстро оценить сетевую активность системы.
Практический пример диагностики недоступного веб-приложения. Сначала проверяем, слушает ли процесс порт:
Затем смотрим активные подключения:
Если подключений нет — проблема может быть в балансировщике, firewall или DNS.
Если подключения есть, но много соединений находится в состоянии:
Стоит проверить сетевую доступность, настройки фильтрации трафика и работу балансировщика.
Дополнительно полезно знать:
Команда выводит расширенную информацию о TCP-соединениях: RTT, размер окна, retransmits и другие параметры, которые часто используются при анализе сетевых проблем.
🔥
🚪 Linux Ready | #практика
Во многих руководствах до сих пор встречается:
netstat
Но в большинстве современных Linux-дистрибутивов рекомендуется использовать:
ss
Утилита входит в пакет
iproute2, работает быстрее и получает информацию через интерфейсы ядра Linux без необходимости парсинга большого объёма данных из /proc.Посмотреть TCP-сокеты:
ss -t
Посмотреть все TCP-соединения в числовом виде:
ss -tan
Посмотреть прослушивающие TCP-сокеты и UDP-сокеты:
ss -tuln
Если нужно увидеть процессы, которым принадлежат сокеты:
ss -tulpn
Вывод покажет адреса прослушивания, порты, PID и имя процесса.
Частая задача — выяснить, кто занимает конкретный порт. Например, проверить порт 8080:
ss -ltnp '( sport = :8080 )'
Либо отфильтровать сокеты, прослушивающие порт 443:
ss -ltnp '( sport = :443 )'
При диагностике веб-серверов полезно смотреть количество установленных соединений. Например:
ss -tan
Состояния соединений отображаются в первом столбце, например:
LISTEN
ESTAB
TIME-WAIT
CLOSE-WAIT
SYN-RECV
Подсчитать количество активных соединений:
ss -Htan state established | wc -l
Это помогает быстро оценить текущую нагрузку на сервис.
Для анализа SSH-подключений:
ss -tn '( sport = :22 )'
Либо так:
ss -tn '( dport = :22 )'
В зависимости от того, анализируется сервер или клиент.
Посмотреть только сокеты в состоянии
LISTEN:ss -ltn
Так можно быстро проверить, действительно ли приложение слушает нужный порт.
Например, после запуска сервиса:
ss -ltnp | grep 3000
Для диагностики проблем с соединениями полезно смотреть сокеты в ожидании закрытия:
ss -tan state close-wait
Большое количество
CLOSE-WAIT часто указывает на ошибки в приложении, которое некорректно закрывает соединения.Показать общую статистику по протоколам:
ss -s
Например:
TCP: 523 established
UDP: 42
INET: 610
Конкретные значения будут зависеть от текущего состояния системы. Команда позволяет быстро оценить сетевую активность системы.
Практический пример диагностики недоступного веб-приложения. Сначала проверяем, слушает ли процесс порт:
ss -ltnp '( sport = :8080 )'
Затем смотрим активные подключения:
ss -tan '( sport = :8080 )'
Если подключений нет — проблема может быть в балансировщике, firewall или DNS.
Если подключения есть, но много соединений находится в состоянии:
SYN-RECV
Стоит проверить сетевую доступность, настройки фильтрации трафика и работу балансировщика.
Дополнительно полезно знать:
ss -i
Команда выводит расширенную информацию о TCP-соединениях: RTT, размер окна, retransmits и другие параметры, которые часто используются при анализе сетевых проблем.
ss — один из основных инструментов диагностики сети в современных Linux-системах и в большинстве случаев является предпочтительной заменой netstat благодаря более высокой скорости работы и расширенным возможностям фильтрации.Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥5👍3
В Linux можно безопасно перезаписывать файл результатом команды, которая этот же файл читает!
Многие хотя бы раз пытались сделать что-то вроде:
И получали пустой файл.
Проблема в том, что shell открывает файл на запись ещё до запуска
Для таких случаев существует
Сначала
Точно так же можно фильтровать логи или конфигурации без временных файлов:
Или выполнять цепочки преобразований над одним и тем же файлом:
🔥 Это позволяет безопасно изменять файл, не создавая временные копии и не рискуя случайно потерять данные.
🚪 Linux Ready | #совет
Многие хотя бы раз пытались сделать что-то вроде:
$ sort users.txt > users.txt
И получали пустой файл.
Проблема в том, что shell открывает файл на запись ещё до запуска
sort, поэтому содержимое уничтожается раньше, чем команда успевает его прочитать.Для таких случаев существует
sponge из пакета moreutils:$ sort users.txt | sponge users.txt
Сначала
sponge полностью считывает входной поток в память, а затем открывает файл и записывает результат.Точно так же можно фильтровать логи или конфигурации без временных файлов:
$ grep -v debug app.log | sponge app.log
Или выполнять цепочки преобразований над одним и тем же файлом:
$ sed 's/localhost/db.local/' config.ini | sponge config.ini
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤7👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Удобный каталог команд для Linux, Unix и macOS, где собраны готовые решения на Bash для самых разных задач: работа с файлами, сетью, процессами, логами, безопасностью и администрированием серверов. Каждая команда сопровождается пояснением.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4🤝3
Знали, что Bash умеет генерировать десятки путей и аргументов ещё до запуска команды?
Большинство используют циклы или копируют похожие команды несколько раз, хотя Bash умеет делать это самостоятельно.
Например, нужно быстро создать структуру нового проекта:
Shell автоматически развернёт команду в несколько аргументов ещё до запуска
Точно так же удобно создавать резервные копии:
Фактически Bash выполнит:
Можно работать сразу с несколькими каталогами:
Команда мгновенно превратится в набор путей для всех указанных директорий.
Поддерживаются и диапазоны:
В результате будут созданы файлы от
🔥
🚪 Linux Ready | #совет
Большинство используют циклы или копируют похожие команды несколько раз, хотя Bash умеет делать это самостоятельно.
Например, нужно быстро создать структуру нового проекта:
$ mkdir -p project/{src,tests,docs}Shell автоматически развернёт команду в несколько аргументов ещё до запуска
mkdir.Точно так же удобно создавать резервные копии:
$ cp app.{conf,conf.bak}Фактически Bash выполнит:
$ cp app.conf app.conf.bak
Можно работать сразу с несколькими каталогами:
$ echo /var/log/{nginx,apache2,redis}/*.logКоманда мгновенно превратится в набор путей для всех указанных директорий.
Поддерживаются и диапазоны:
$ touch file{1..10}.txtВ результате будут созданы файлы от
file1.txt до file10.txt без единого цикла.Brace expansion выполняется внутри Bash ещё до запуска программы, поэтому работает быстрее и чище, чем дополнительные shell-конструкции.Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥6👍4
This media is not supported in your browser
VIEW IN TELEGRAM
В этом репозитории подробно разбирается внутреннее устройство Linux: процессы, память, системные вызовы, ELF и работа системы на низком уровне. Материал построен на практических примерах за счёт чего сложные темы намного проще понять. Хорошо подойдёт разработчикам, DevOps и тем, кто хочет лучше понимать, как Linux работает под капотом.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍5🔥4
APT — мощный инструмент, но по-настоящему надёжной систему делает грамотная настройка источников, приоритетов и подписей пакетов.
В этом посте:
• Фиксируем версии и источники пакетов с помощью pinning;
• Меняем зеркала репозиториев для ускорения загрузки;
• Проверяем цифровые подписи и ключи перед установкой;
• Настраиваем приоритеты и предотвращаем неожиданные обновления.
Это обеспечивает контроль, скорость и безопасность системы — особенно важно для рабочих серверов и стабильных окружений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥8❤6🤝1
В этом посте мы собрали 7 команд, которые помогают находить тяжёлые файлы, скрытый хлам и старые гигабайтные объекты в домашней папке. du, ncdu, find, ls — всё, что нужно для быстрой диагностики и ручной очистки пространства.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍7🤝7
Pipes позволяют процессам обмениваться данными напрямую: вывод одной программы становится входом для другой. Именно благодаря этому работают привычные конвейеры команд через символ
|.На картинке показаны анонимные и именованные каналы (FIFO), схема их работы, примеры создания и основные команды для использования.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤5🔥5