TGViewer
Channel Public Channel
BashMaster

BashMaster

@bash_help

Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов.

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Subscribers
8.84K
Photos
1K
Videos
36
Links
1.1K

Showing posts older than #1173 · Back to latest

Older Posts 20 shown
Post #1172 2.37K
⚙️ Логирование с временными метками в bash-скриптах

✔️Когда скрипт падает на проде в три ночи, первый вопрос: что именно произошло и в какой момент. Без логов остаётся только гадать.

➡️ Три функции вместо голого echo:
#!/bin/bash
set -euo pipefail

LOG_FILE="/var/log/myscript.log"

log() { echo "[INFO] $(date '+%H:%M:%S') $1" | tee -a "$LOG_FILE"; }
warn() { echo "[WARN] $(date '+%H:%M:%S') $1" | tee -a "$LOG_FILE"; }
error(){ echo "[ERROR] $(date '+%H:%M:%S') $1" | tee -a "$LOG_FILE"; exit 1; }

log "Script started"
warn "Config file missing, using defaults"
error "Database connection failed" # здесь скрипт остановится


▶️Три уровня: log для обычных событий, warn для подозрительного, error для критического с немедленным выходом.

▶️tee -a пишет одновременно в терминал и в файл. Флаг -a означает append, то есть каждый запуск дописывает в конец, а не перезаписывает лог с нуля.

🖼️ Ссылка на источник

🔨 bash_help
  • 👍 10
  • 🔥 4
Post #1171 2.5K
⚙️ Compendium

✔️Инструмент для трассировки системных вызовов (syscall tracer) для архитектуры x86 Linux. Он предназначен для удобного отслеживания взаимодействия программ с ядром Linux, генерации интерактивных отчётов в формате HTML и анализа различных системных событий.

➡️ Основные особенности:
💠Трассировка системных вызовов. Compendium перехватывает системные вызовы при входе и выходе, фиксируя номер вызова, аргументы и возвращаемое значение.
💠Отслеживание файлов. Показывает все файлы, открытые для чтения или записи.
💠Мониторинг сети. Отслеживает TCP/UDP-соединения, количество отправленных и полученных байт.
💠Отслеживание памяти. Фиксирует рост кучи (через brk), области mmap с указанием адресов и прав доступа.
💠Отслеживание ввода-вывода. Фиксирует операции чтения/записи с именами файлов, copy_file_range, sendfile.
💠Отслеживание процессов. Отслеживает события fork, clone, exec с дифференциацией потоков и процессов.
💠Отслеживание ошибок страниц. Опционально предоставляет детальный обзор роста памяти через perf_event_open.
💠Отслеживание задержек планировщика и блочного ввода-вывода с помощью eBPF. Требует прав CAP_BPF или root и доступно с версии ядра 5.8.
💠Генерация HTML-отчётов. Включает интерактивную временную шкалу и таблицу событий.

🐙 Перейти на Github

🔨 bash_help
  • 👍 4
  • 🔥 3
Post #1170 2.38K
⚙️ Broot

✔️Утилита командной строки для навигации по файловой системе, которая упрощает работу с директориями, поиск файлов и выполнение команд. Она предоставляет интерактивный интерфейс с древовидным представлением структуры каталогов, что делает управление файлами быстрее и удобнее по сравнению с традиционными инструментами.

➡️ Основные возможности
💠Интерактивный интерфейс. Broot отображает древовидную структуру директорий, позволяя легко перемещаться по ним, открывать файлы и просматривать их содержимое.
💠Быстрый поиск файлов. При вводе имени файла или других атрибутов Broot динамически обновляет дерево, показывая подходящие совпадения. Есть поддержка fuzzy-поиска (f/) и поиска с использованием регулярных выражений (/).
💠Фильтрация и сортировка результатов. Можно фильтровать и сортировать результаты поиска по заданным критериям. Например, можно сортировать по размеру, дате изменения или типу.
💠Встроенные команды для работы с файлами и директориями. Включает операции копирования, перемещения, удаления, изменения прав доступа и другие. Например, команда :e позволяет открыть выбранный файл.
💠Двухпанельный режим. С помощью комбинации Ctrl + → можно открыть вторую панель для сравнения директорий или перемещения файлов между ними.
💠Просмотр содержимого файлов. При выборе файла с помощью Ctrl + → появляется панель предварительного просмотра его содержимого. Если терминал поддерживает протокол графики Kitty, Broot отображает изображения в высоком разрешении.
💠Интеграция с Git. Можно просматривать статусы файлов в репозитории (команда :gf), только изменённые файлы (:gs) или статистику изменений.
💠Поддержка расширений. Пользователь может расширять функциональность Broot, добавляя новые команды или настраивая горячие клавиши.

▶️Broot может быть полезен разработчикам, системным администраторам и любым пользователям, которым нужно управлять файлами и директориями в командной строке.

🐙 Перейти на Github

🔨 bash_help
  • 🔥 6
  • 👍 5
  • ✍ 3
Post #1168 2.75K
⚙️ Linnix

✔️Cистема наблюдения за Linux на базе eBPF с возможностью обнаружения инцидентов с помощью ИИ, лицензированная под AGPL-3.0.

➡️ Основные характеристики Linnix
💠eBPF-мониторинг. Linnix отслеживает жизненный цикл процессов на уровне ядра: создание (fork), выполнение (exec) и завершение (exit). Собирает телеметрию использования CPU и памяти с минимальными накладными расходами.
💠Обнаружение инцидентов с ИИ (опционально). Система может анализировать инциденты и предоставлять объяснения и рекомендации на естественном языке. Например, при обнаружении «шторма форков» (быстрой последовательности создания процессов) Linnix может предложить добавить ограничение скорости в соответствующий cron-задание.
💠Встроенный механизм правил. Даже без использования ИИ система способна обнаруживать инциденты, такие как «штормы форков», всплески загрузки CPU, неконтролируемое разрастание деревьев процессов.
💠Потоковое вещание событий в реальном времени. Доступны SSE-эндпоинты для получения живых данных.
💠Отслеживание дерева процессов. Linnix строит полные графы происхождения и родословной процессов.
💠Интеграция с Prometheus. Система экспортирует стандартные метрики для интеграции с Prometheus.
💠Поддержка пользовательских моделей ИИ. Можно использовать собственные модели (например, OpenAI или локальные) для анализа инцидентов.

➡️ Дополнительные возможности
💠Веб-панель. После настройки доступен интерфейс по адресу localhost для визуального мониторинга в реальном времени.
💠API. REST-эндпоинты по адресу localhost для интеграции с другими системами.
💠Быстрая проверка работоспособности. Можно использовать команду curl для проверки состояния демона eBPF и модели ИИ.

🐙 Перейти на Github

🔨 bash_help
  • 👍 3
  • 🔥 3
Post #1166 2.02K
⚙️ K8sQuest

✔️Интерактивная обучающая платформа для изучения Kubernetes в локальном окружении.

➡️ Ключевые особенности:
💠Локальное использование: не требует доступа к облачным сервисам — всё запускается на вашем компьютере.
💠Практический подход: обучение через решение реальных задач по устранению неполадок.
💠Работа с реальными инструментами: использование kubectl для управления кластером.
💠Реалистичные сценарии: задачи имитируют проблемы, с которыми сталкиваются администраторы Kubernetes в реальной работе.

➡️ K8sQuest позволяет отработать навыки работы с основными компонентами Kubernetes:
💠Pods — базовые единицы развёртывания в Kubernetes.
💠Deployments — управление версиями и обновлениями приложений.
💠Services — обеспечение стабильного доступа к приложениям.
💠Networking — настройка сетевой связности между компонентами.
💠Storage — работа с постоянным хранилищем данных.
💠Debugging — диагностика и устранение неполадок.

➡️ Для работы с K8sQuest потребуется:
💠Docker — для запуска контейнеров.
💠kubectl — официальный CLI‑инструмент для управления Kubernetes.
💠kind (Kubernetes in Docker) или k3d — инструменты для создания локального кластера Kubernetes.

🐙 Перейти на Github

🔨 bash_help
  • ✍ 4
  • 👍 4
  • 🔥 3
Post #1165 1.82K
⚙️ Networking Toolbox

✔️Веб-приложение с открытым исходным кодом, которое объединяет более 100 сетевых инструментов и утилит в одном интерфейсе. Оно разработано специально для системных администраторов, сетевых инженеров, DevOps-специалистов и специалистов по кибербезопасности. Ключевая особенность — работа в офлайн-режиме после первоначальной установки, что делает его незаменимым в полевых условиях, изолированных сетях или при ограниченном доступе к интернету.

➡️ Особенности
💠Офлайн-режим. Все инструменты работают локально после развёртывания, не требуя подключения к интернету. Это особенно полезно в air-gapped средах, полевых условиях или при работе с критически важной инфраструктурой.
💠Самостоятельное размещение. Приложение можно развернуть через Docker, локально через Node.js или собрать в PWA для мобильных устройств.
💠Безопасность и приватность. Все вычисления происходят на стороне клиента — данные не передаются на внешние сервера.
💠Модульность архитектуры. Можно легко добавлять новые инструменты без переписывания основной кодовой базы.
💠Интуитивный интерфейс. Инструменты сгруппированы по категориям, есть поддержка горячих клавиш и адаптивный дизайн.
💠Кастомизация. При самостоятельном развёртывании доступны настройка брендинга, тем и поддержка нескольких языков.

➡️ Сценарии использования
💠Диагностика сетевых сбоев в условиях ограниченного или отсутствующего интернета.
💠Настройка и тестирование сетевого оборудования в лабораторных условиях и на реальной инфраструктуре.
💠Аудит сетевой безопасности, проверка уязвимостей и анализ защищённости периметра.
💠Обучение и подготовка к сертификационным экзаменам (Cisco, CompTIA и др.).
💠Разработка API — встроенные генераторы тестовых данных и валидаторы форматов.

▶️Networking Toolbox — универсальное решение для системных администраторов и сетевых специалистов, позволяющее решать широкий спектр задач без зависимости от интернет-соединения. Открытый исходный код даёт возможность адаптировать инструменты под конкретные нужды.

🐙 Перейти на Github

🔨 bash_help
  • 👍 4
  • 🔥 4
Post #1163 2.03K
⚙️ chartli

✔️CLI-утилита, которая превращает поток чисел в наглядные графики прямо в терминале.

▶️Поддерживает несколько типов визуализации: ASCII-линии, столбчатые диаграммы, тепловые карты, Braille-графики и даже SVG. Работает через пайпы и файлы, умеет отображать несколько рядов данных и настраивать размеры графиков под задачу.

➡️ Отлично подойдёт тем, кто анализирует логи или метрики и хочет быстро видеть тренды без перехода в графические интерфейсы.

🐙 Перейти на Github

🔨 bash_help
  • 👍 5
  • ✍ 4
  • 🔥 4
Post #1162 2.32K
⚙️ Kopia

✔️Кроссплатформенный инструмент для резервного копирования данных с открытым исходным кодом, который поддерживает Windows, macOS и Linux. Он предназначен для создания зашифрованных, дедуплицированных моментальных снимков (снапшотов) выбранных файлов и каталогов, а не целых систем. Резервные копии можно сохранять в локальных, сетевых или облачных хранилищах.

➡️ Основные характеристики
💠Инкрементное резервное копирование. Kopia передаёт только изменённые данные, что сокращает потребности в хранилище и пропускной способности.
💠Дедупликация и сжатие. Эти функции помогают экономить место за счёт исключения дубликатов данных и их сжатия.
💠Шифрование. Kopia использует сквозное шифрование с управлением ключами пользователем. Все данные шифруются на клиенте до их передачи в хранилище.
💠Поддержка различных хранилищ. Kopia работает с локальными дисками, сетевыми хранилищами (NAS), а также облачными сервисами, такими как Amazon S3, Google Cloud Storage, Azure Blob, Backblaze B2, Google Drive, SFTP, WebDAV.
💠Управление через политики. Политики определяют, какие данные резервное копирование включает, как часто оно выполняется, сколько времени хранятся снапшоты, а также настройки сжатия и шифрования. Можно исключать определённые файлы или каталоги из резервного копирования.
💠Восстановление данных. Kopia предлагает три способа восстановления: монтирование снапшота как локального диска, полное восстановление всех файлов в указанное место и выборочное восстановление отдельных файлов.
💠Проверка целостности. В Kopia есть встроенные функции для проверки согласованности и валидности резервных копий.

▶️Также Kopia поддерживает опциональный серверный режим с API для централизованного управления резервным копированием нескольких машин.

🐙 Перейти на Github

🔨 bash_help
  • 👍 4
  • ✍ 2
  • 🔥 2
Post #1160 2.14K
⚙️ trap — обработка ошибок в Bash скриптах

✔️Скрипт упал на середине и оставил временные файлы или висящие процессы? trap ловит сигналы и выполняет очистку перед завершением.

▶️Очистка при выходе
#!/bin/bash

TMPFILE=$(mktemp)

trap 'rm -f "$TMPFILE"; echo "Очистка выполнена"' EXIT

echo "данные" > "$TMPFILE"
# даже если скрипт упадёт — файл удалится

▶️Ловим Ctrl+C
#!/bin/bash

trap 'echo " Прервано"; exit 1' INT

echo "Нажми Ctrl+C..."
while true; do
sleep 1
done

▶️Ловим ошибки с номером строки
#!/bin/bash
set -e

trap 'echo "Ошибка в строке $LINENO: $BASH_COMMAND"' ERR

echo "Шаг 1: ок"
ls /несуществующий_путь # ← ошибка тут
echo "Шаг 2: не выполнится"

# Вывод: Ошибка в строке 6: ls /несуществующий_путь

💠$LINENO — номер строки где произошла ошибка
💠$BASH_COMMAND — команда которая вызвала ошибку

▶️Основные сигналы
EXIT  — любое завершение скрипта
INT — Ctrl+C
TERM — kill
ERR — ошибка (если set -e)


🖼️ Ссылка на источник

🔨 bash_help
  • 🔥 7
  • 👍 5
  • ✍ 2
Post #1159 2.34K
⚙️ drift

✔️Мы вам тут красивое нашли — терминальный скринсейвер, который активируется при бездействии пользователя и отображает различные визуальные эффекты, такие как созвездия, дождь и частицы.

▶️Программа поддерживает несколько режимов визуализации, обеспечивая разнообразие отображаемых эффектов.

➡️ Для выхода из режима скринсейвера достаточно нажать любую клавишу.

🐙 Перейти на Github

🔨 bash_help
  • 🔥 6
  • 👍 2
Post #1158 2.5K
⚙️ Linux Commands: Notes for Professionals

✔️Бесплатная подборка практических команд Linux, составленная на основе документации Stack Overflow.

➡️ Помогает перейти от теории к рутинному администрированию. Благодаря чётким примерам команд, прагматичным рабочим процессам и целенаправленным упражнениям она станет практическим помощником в освоении управления пользователями Linux, инспекции системы и базового обслуживания веб‑стеков.

🖼️ Перейти на сайт

🔨 bash_help
  • 👍 4
  • 🔥 4
  • ✍ 3
Post #1157 2.89K
⚙️ LabEx — интерактивный тренажёр по DevOps, Linux и кибербезопасности

✔️Полноценный русскоязычный тренажёр для практического обучения инфраструктуре, DevOps и смежным направлениям.

▶️Обучение строится через реальные лабораторные задания, которые запускаются прямо в браузере без локальной настройки.

➡️ Что внутри:
💠Деревья навыков по DevOps, Linux, Docker, Kubernetes, AWS и безопасности
💠Практические лабораторные работы с готовым рабочим окружением
💠Проектные задания для закрепления навыков
💠Запуск всех лаб прямо в браузере
💠AI-ассистент Labby для подсказок и базовой теории

➡️ Хороший вариант для системного освоения DevOps и инфраструктурных технологий на практике.

🖼️ Перейти на сайт

🔨 bash_help
  • 👍 6
  • ✍ 4
  • 🔥 3
Post #1156 2.54K
⚙️ c0admin

✔️ Специализированный AI-помощник для системных администраторов Linux, интегрированный прямо в командную строку.

▶️Он обучен помогать с диагностикой сети, настройкой прав доступа и написанием сложных bash-скриптов.

➡️ Если вы забыли специфический флаг в iptables или не можете понять, почему «отвалился» Docker-контейнер, эта утилита даст точный совет на основе контекста вашей системы.

🐙 Перейти на Github

🔨 bash_help
  • 🔥 7
  • 👍 4
  • 😐 2
Post #1155 2.31K
⚙️ Использование systemd-analyze для оптимизации загрузки системы

✔️При работе с Linux-серверами и даже десктопами, производительность системы во время загрузки часто остаётся упущенной. Но с помощью инструмента systemd-analyze можно не только анализировать время загрузки, но и выявлять узкие места, которые замедляют процесс.

➡️ Анализ времени загрузки
▶️Команда systemd-analyze позволяет увидеть, сколько времени уходит на загрузку всей системы и отдельных компонентов. Вывод покажет общую продолжительность загрузки, включая ядро и пользовательские службы.

➡️ Выявление «тяжелых» сервисов
▶️Для более детального анализа, чтобы понять, какие службы и процессы занимают больше всего времени, можно использовать команду systemd-analyze blame

▶️Вывод отобразит все активированные сервисы с их временем загрузки в порядке убывания. Это поможет вам определить, какие сервисы требуют оптимизации или может быть даже отключения.

➡️ Оптимизация
▶️Если вы хотите понять, какие службы непосредственно зависят друг от друга, и как они влияют на общую продолжительность загрузки, используйте команду systemd-analyze critical-chain

▶️Она покажет цепочку зависимостей сервисов, и вы сможете понять, какой из них блокирует или замедляет другие. Это поможет принять решение, стоит ли изменить порядок загрузки или даже оптимизировать сами сервисы.

➡️ Это позволяет не только ускорить загрузку системы, но и выявить слабые места в её конфигурации, что полезно для администраторов, стремящихся повысить производительность серверов или десктопных машин.

🖼️ Ссылка на источник

🔨 bash_help
  • ✍ 6
  • 👍 4
  • 🔥 4
Post #1153 2.05K
⚙️ termv

✔️Небольшой Bash-скрипт для просмотра IPTV прямо из терминала с выбором каналов через fzf. Позволяет выбрать поток из списка каналов и сразу воспроизвести его в mpv, используя базу каналов из проекта iptv-org.

➡️ Некоторые особенности утилиты:
💠Возможность открыть mpv в полном экране.
💠Возможность «поглощать» терминал во время воспроизведения (работает только под X11).
💠Автоматическое обновление списка каналов до последней версии.

▶️Для поддержки Windows существует версия termv-rs — переписанная версия termv на языке Rust.

➡️ Утилита termv имеет следующие опции:
💠-h, --help — распечатать текст помощи и выйти.
💠-v, --version — распечатать версию программы и выйти.
💠-u, --update — обновить список каналов до последней версии.

➡️ Также в утилите есть переменные среды, например:
💠TERMV_AUTO_UPDATE — автоматически обновлять список каналов до последней версии (по умолчанию — true).
💠TERMV_SWALLOW — всегда поглощать терминал во время воспроизведения (по умолчанию — false).
💠TERMV_FULL_SCREEN — всегда открывать mpv в полном экране (по умолчанию — false).
💠TERMV_DEFAULT_MPV_FLAGS — стандартные аргументы, которые передаются в mpv (по умолчанию — --no-resume-playback).

🐙 Перейти на Github

🔨 bash_help
  • 👍 5
  • 🔥 5
  • ✍ 3
Post #1151 2.2K
⚙️ Шпаргалка по SSH-туннелям через bastion-хост

✔️Если нужно безопасно достучаться до сервиса в приватной сети без public IP, SSH port forwarding через bastion — самый простой и надёжный вариант.

▶️ssh -L открывает локальный порт и прокидывает трафик через SSH-туннель на удалённый сервис, а bastion выступает точкой входа во внутреннюю сеть.

➡️ На схеме показано:
💠Как выглядит короткая и полная форма команды
💠Куда именно летит трафик
💠Как SSH-клиент связывается с внутренним веб-сервером через bastion

🔨 bash_help
  • 👍 7
  • ✍ 3
Post #1150 2.27K
⚙️ SadServers — тренажёр для практики администрирования Linux-серверов

✔️Симулятор сисадмина и DevOps, где вы подключаетесь к реальному виртуальному серверу по SSH и чините настоящие проблемы, а не решаете тесты.

➡️ Как это выглядит:
💠Выдают сломанный сервер с конкретной задачей;
💠Заходите по SSH и разбираетесь, что пошло не так;
💠Есть таймер, не успели — сервер отключается.

▶️Отличный способ прокачать практику и проверить себя в условиях, близких к реальным.

🖼️ Перейти на сайт

🔨 bash_help
  • 🔥 6
  • 👍 5
  • ✍ 4
Post #1148 2.03K
⚙️ IxeRam

✔️Высокопроизводительный терминальный сканер памяти и отладчик для Linux. Программа работает в среде терминала, подходит для удалённых сеансов и рабочих процессов SSH.

➡️ Некоторые возможности IxeRam:
💠Многопоточное сканирование памяти. Программа ищет в памяти процессов данные разных типов, включая целые числа, значения с плавающей точкой, строки и байтовые шаблоны.
💠Отслеживание изменений значений в реальном времени.
💠Дизассемблирование x86-64 кода.
💠Патчинг инструкций прямо в памяти процесса.
💠Поиск указателей и анализ графа вызовов.
💠Экспорт результатов в JSON или Ghidra-скрипты.
💠Прямой доступ к памяти через системные вызовы, что обеспечивает высокую скорость работы.

▶️IxeRam подходит разработчикам и специалистам по реверс-инжинирингу, которым нужен мощный инструмент анализа памяти без графического интерфейса.

🐙 Перейти на Github

🔨 bash_help
  • 👍 6
  • 🔥 4
  • ✍ 2
Post #1147 2K
⚙️ Зарезервированные переменные Bash

✔️В командном интерпретаторе Bash есть зарезервированные переменные, которые имеют специальное назначение. Они начинаются с символа "$" и используются в скриптах для выполнения различных операций.

➡️ Некоторые зарезервированные переменные Bash и их значения:
💠$DIRSTACK — содержимое вершины стека каталогов;
💠$EDITOR — текстовый редактор по умолчанию;
💠$EUID — эффективный UID (если использовалась программа su для выполнения команд от другого пользователя, эта переменная содержит UID этого пользователя);
💠$UID — реальный идентификатор, который устанавливается только при логине;
💠$FUNCNAME — имя текущей функции в скрипте;
💠$GROUPS — массив групп, к которым принадлежит текущий пользователь;
💠$HOME — домашний каталог пользователя;
💠$HOSTNAME — hostname машины;
💠$HOSTTYPE — архитектура машины;
💠$LC_CTYPE — внутренняя переменная, которая определяет кодировку символов;
💠$OLDPWD — прежний рабочий каталог;
💠$OSTYPE — тип ОС;
💠$PATH — путь поиска программ;
💠$PPID — идентификатор родительского процесса;
💠$SECONDS — время работы скрипта (в сек.);
💠$# — общее количество параметров, переданных скрипту;
💠$* — все аргументы, передаваемые скрипту (выводятся в строку);
💠$@ — то же самое, но параметры выводятся в столбик;
💠$! — PID последнего запущенного в фоне процесса;
💠$$ — PID самого скрипта;
💠$? — содержит код завершения последней команды.

➡️ Использование:
▶️Зарезервированные переменные используются для выполнения различных операций, например:
💠Переменная $0 — хранит имя скрипта или оболочки, которая выполняется в данный момент. Используется для получения имени скрипта, чтобы отобразить его в выходных данных или проверить, запущен ли скрипт.
💠Переменная $# — хранит количество аргументов командной строки, переданных скрипту. Используется для проверки количества аргументов перед их обработкой.
💠Переменные $* и $@ — хранят все аргументы командной строки, передаваемые скрипту, в виде одной строки и отдельных строк соответственно. Переменная $* разделяет аргументы первым символом переменной IFS, в то время как переменная $@ разделяет аргументы пробелами.
💠Переменная $! — хранит идентификатор процесса (PID) последнего выполнявшегося фонового процесса. Используется для проверки состояния фонового процесса или для его завершения при необходимости.
💠Переменная $IFS — хранит внутренний разделитель полей, который используется для разделения строки на поля. По умолчанию для переменной IFS заданы пробелы, табуляция и символы новой строки.

🔨 bash_help
  • 👍 12
  • ✍ 4
  • 🔥 4
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →