BashMaster
Open in Telegram
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help
Show more8 730
Subscribers
No data24 hours
+167 days
+20530 days
Posts Archive
8 732
⚙️ Скрипт для мониторинга использования диска и отправки оповещения, если оно превышает 80 %
➡️ Шаг 1. Проверьте использование диска в Linux
▶️Прежде чем писать сценарий, вам нужно узнать, сколько места на диске занимает ваша система, с помощью команды
df:
df -h➡️ Шаг 2. Создайте скрипт для мониторинга использования диска ▶️Вот очень простой скрипт для мониторинга корневого раздела (
/):
#!/bin/bash
# Установка порогового значения (в процентах)
THRESHOLD=80
# Извлечение процента использования корневой файловой системы
USAGE=$(df -h / | awk 'NR==2 {print }' | sed 's/%//')
# Сравнение использования с пороговым значением
if [ "$USAGE" -ge "$THRESHOLD" ]; then
echo "Предупреждение: использование диска составляет ${USAGE}% на $(hostname)" | mail -s "Предупреждение о диске: $(hostname)" user@example.com
fi
▶️Давайте разберёмся, что здесь происходит:
💠THRESHOLD=80 → Это тот предел, который нас интересует. Всё, что выше, слишком рискованно.
💠df -h / → Проверяется только корневая файловая система.
💠awk 'NR==2 {print }' → Из вывода df извлекается столбец «Use%».
💠sed 's/%//' → Убирает знак %, чтобы мы могли рассматривать его как число.
💠Блок if → Если использование диска превышает пороговое значение, срабатывает оповещение.
➡️ Шаг 3. Мониторинг использования всех разделов диска
▶️Вот немного улучшенная версия, которая проверяет все подключённые файловые системы:
#!/bin/bash
THRESHOLD=80
# Перебираем все файловые системы, перечисленные в df
df -h | grep '^/dev/' | while read line; do
USAGE=$(echo $line | awk '{print }' | sed 's/%//')
PART=$(echo $line | awk '{print }')
if [ "$USAGE" -ge "$THRESHOLD" ]; then
echo "Предупреждение: раздел $PART заполнен на ${USAGE}% на $(hostname)" | mail -s "Оповещение о состоянии диска: $(hostname)" user@example.com
fi
done
▶️Теперь вместо того, чтобы проверять только /, он будет проверять каждую файловую систему в /dev/ и, если какой-либо раздел пересечёт границу 80%, вы получите электронное письмо с предупреждением.
➡️ Шаг 4. Автоматизация скрипта с помощью Cron
▶️Чтобы настроить его, откройте файл crontab с помощью:
crontab -e▶️Добавьте эту строку внизу:
0 * * * * /путь/к/файлу_проверки_диска.sh▶️Сохраните и выйдите, а
cron позаботится обо всём остальном. С этого момента ваш скрипт будет в фоновом режиме проверять использование диска и предупреждать вас, если ситуация ухудшится.
➡️ Шаг 5. Тестирование скрипта
▶️Прежде чем полагаться на этот скрипт, стоит его протестировать. В конце концов, не стоит ждать, пока ваш диск заполнится на 80 %, чтобы проверить, работает ли ваша система оповещений.Самый простой способ проверить — временно снизить порог:
THRESHOLD=1▶️Таким образом, скрипт почти наверняка сразу же выдаст предупреждение, поскольку большинство разделов заполнены как минимум на 80 %. Как только вы убедитесь, что электронная почта или журналы работают, измените значение на 80. ▶️Если вы не готовы настраивать электронную почту, вы можете заменить команду mail на что-то более простое, например:
echo "Предупреждение: раздел $PART используется на ${USAGE}% на $(hostname)"
➡️ Шаг 6. Настройка уведомлений по электронной почте
▶️Наш скрипт использует команду mail для отправки оповещений, но этот инструмент не всегда доступен по умолчанию. Сначала вам нужно будет его установить:
sudo apt install mailutils [В Debian]
sudo yum install mailx [В RHEL]
▶️После установки убедитесь, что ваш сервер действительно может отправлять электронные письма. Для этого может потребоваться дополнительная настройка, например Postfix, Gmail SMTP или сторонний сервис, например SendGrid.
▶️Если вы не хотите сейчас работать с электронной почтой, вы всё равно можете использовать этот скрипт, записывая оповещения в файл:
echo "Предупреждение об использовании диска: $PART, $USAGE%" >> /var/log/disk_alert.log
▶️Таким образом, вы сможете проверить журнал позже или использовать следующую команду для просмотра оповещений в режиме реального времени.
tail -f /var/log/disk_alert.log
🖼️ Прочитать статью в источнике
🔨 bash_help8 732
Идёте на Kuber Conf by AOT 4 декабря?
Первая некоммерческая K8s-конференция в Москве — отличный повод встретиться и лично поговорить с топовыми инженерами и архитекторами.
Конференция проходит под эгидой Ассоциации облачно-ориентированных технологий (АОТ), которую создают Флант, VK Cloud и Yandex Cloud.
В программе реальные кейсы от команд Авито, Т-Банка, Vitastor, Beget, VK Cloud, Yandex Cloud и Selectel, а среди докладов:
• Изменения в Cluster API без пересоздания машин;
• Как строили платформу деплоя в Т-Банке;
• Практический deep-dive в CNI chaining;
• Безопасный Gatekeeper в архитектуре k8s-in-k8s;
• Поддержка Kubernetes в Vitastor;
• Karpenter-провайдер своими руками — что внутри.
Для подписчиков канала действует промокод: KUBERCONF20
Программа и билеты
Реклама Садовская.Е.О
ИНН:9710066394 Erid:2VtzqwwepUy
8 732
Выиграйте грант на курс по Apache Kafka
Скидки до 100% на новый поток «Apache Kafka База» от Слёрма.
Научитесь строить отказоустойчивый кластер без тонны документации и разберётесь, как Kafka работает изнутри, чтобы предотвращать инциденты и держать систему стабильной под нагрузкой.
При выполнении условий гранта вы сможете получить 1 из 3 вариантов:
⭐️ скидка 100% (1 место);
⭐️ скидка 50% (2 места);
⭐️ скидка 30% (2 места).
Что сделать, чтобы принять участие:
1️⃣ Быть подписанным на канал Слёрма
2️⃣ Заполнить заявку
Срок выполнения условий — до 20 ноября включительно. У вас будет всего одна попытка!
Каждый этап будет оцениваться командой Слёрма. Будьте честны и открыты!
Итоги опубликуем в канале 21 ноября в 19:00 мск.
8 732
⚙️ Encryption-Decryption Tool
✔️Репозиторий, который содержит инструменты для шифрования и расшифровки данных в Linux на основе Bash.
➡️ В репозитории представлены два инструмента:
💠Manual Encryption-Decryption Tool — интерактивный терминал для пользователей, который позволяет шифровать, расшифровывать или получать информацию о поддерживаемых шифрах.
💠Automatic Encryption-Decryption Tool — автоматизирует обработку текстовых файлов, применяя выбранный шифр и сохраняя результат в новый файл.
➡️ Manual Tool поддерживает:
💠шифрование, расшифровку и получение информации о шифрах;
💠обработку нескольких шифров с проверкой.
➡️ Automatic Tool позволяет:
💠обрабатывать файлы для шифрования и расшифровки;
💠автоматически называть выходной файл;
💠обрабатывать ошибки при операциях с файлами.
🐙 Перейти на Github
🔨 bash_help
8 732
⚙️ Как получать уведомления о входе в систему по SSH в Linux
✔️Всегда полезно знать, кто и когда подключается к вашему серверу Linux по протоколу SSH. Даже если доступ есть только у вас, рекомендуется следить за подключениями. Для команд или производственных систем получение уведомлений о входах по протоколу SSH обеспечивает дополнительный уровень осведомлённости и безопасности.
▶️В этой статье вы увидите простой способ настроить уведомления о входе в систему по протоколу SSH. Это позволит вам быть уверенными в том, что вы в режиме реального времени знаете, кто получает доступ к вашему серверу.
🖼️ Прочитать статью в источнике
🔨 bash_help
8 732
8 732
⚙️ bash-library
✔️Коллекция многоразовых функций и скриптов для задач DevOps и системного администрирования на языке Bash.
➡️ Проект предназначен для:
💠Интеграции функций в скрипты — функции можно использовать в скриптах.
💠Упрощения общих задач — готовые скрипты помогают выполнять задачи, которые часто встречаются в DevOps и системном администрировании.
💠Кроссплатформенной работы — проект работает на Linux и macOS.
➡️ В репозитории представлены:
💠Функции для работы с удалёнными репозиториями — например, для установки и удаления библиотеки.
💠Функции для работы с логированием.
Функции для обработки ошибок.
▶️Каждая функция включает чёткую документацию.
➡️ В библиотеке представлены готовые скрипты для автоматизации повторяющихся задач. Например:
💠Автоматическое резервное копирование — скрипт, который архивирует указанный каталог и сохраняет его с меткой даты.
💠Автоматическая очистка логов — скрипт удаляет файлы логов, которые превышают заданный размер (например, 100 МБ).
💠Мониторинг параметров системы и оповещения — скрипт проверяет загрузку процессора, оперативной памяти и диска, и отправляет оповещение, если любой параметр превышает заданный порог.
🐙 Перейти на Github
🔨 bash_help
8 732
Разворачиваем кластер Managed Kubernetes бесплатно
Kubernetes упрощает работу с приложениями на базе микросервисов за счет автоматизации развертывания и масштабирования. А Selectel упрощает работу с Kubernetes.
Новые клиенты сейчас могут получить до 30 000 бонусов на использование Managed Kubernetes от Selectel.
Для каких задач он подойдет?
🔹Запустить высоконагруженные сервисы и ML-проекты. В Selectel можно развернуть кластеры на производительном железе и добавить ноды с GPU.
🔹Повысить производительность и изолировать ресурсы. Managed Kubernetes от Selectel позволяет создать кластеры с воркер-нодами на выделенных серверах, а не в облаке. Все ресурсы сервера — ваши.
🔹Сократить затраты на инфраструктуру. Кластеры на базе прерываемых ВМ позволят сэкономить до 70% расходов и подойдут для CI/CD, пакетной обработки данных, дата-аналитики и других задач.
Успейте зарегистрироваться и оставить заявку на участие в акции, чтобы протестировать сервис бесплатно: https://slc.tl/vafr0
Реклама. АО "Селектел". erid:2W5zFGgLFw6
8 732
⚙️ Продвинутый Bash для автоматизации и безопасности
✔️Продвинутое написание скриптов оболочки требует технических навыков, а также соблюдения лучших практик, которые обеспечивают надежность, сопровождаемость и эффективность ваших скриптов. По мере усложнения скриптов становится важным их грамотно структурировать и внедрять такие методы, как обработка ошибок и отладка. Следуя этим практикам, IT-специалисты могут создавать скрипты, которые являются надежными и адаптируемыми, особенно в динамичных средах Linux, где автоматизация играет ключевую роль в повышении продуктивности.
➡️ Основные выводы
💠Надёжная обработка ошибок: Внедрите
set -e для немедленного завершения при ошибке, используйте команды trap для выполнения очистки и предоставляйте информативные сообщения об ошибках для повышения надёжности скрипта и упрощения отладки
💠Продвинутые структуры данных: Используйте ассоциативные массивы с declare -A для отображения ключ-значение и имитируйте многомерные массивы для сложных сценариев управления данными
💠Мощное сопоставление шаблонов: Используйте встроенные регулярные выражения Bash с оператором =~ и тестами [[ ]] для эффективной обработки текста без внешних инструментов, таких как grep или awk
💠Управление процессами: Используйте подсистемы () для изоляции переменных и подстановку процессов <() для бесшовной интеграции команд без временных файлов
💠Оптимизация производительности: Реализуйте параллелизацию с использованием xargs -P, фоновые процессами с помощью & и команды wait, чтобы максимально использовать многопроцессорные системы
💠Комплексное тестирование: используйте BATS (Bash Automated Testing System) для модульного тестирования, реализуйте корректное ведение логов с помощью tee и файлов трассировки, а также профилируйте скрипты с помощью инструментов time, strace и perf
💠Лучшие практики управления версиями: Логически организуйте скрипты, используйте осмысленные сообщения коммитов, внедряйте .gitignore для конфиденциальных данных, используйте ветви для разработки функций и тегируйте релизы для развертывания в продакшн
🖼️ Прочитать статью в источнике
🔨 bash_help8 732
Как бигтехи кошмарят вас на собеседованиях
Успешно пройти секцию по профильным хардам, но смачно опозориться на логической задаче с часами? В этом вся суть интервью в бигтехе
Автор этой истории побывал на собесе в ❤️ и рассказал всю правду о клоунаде, которая там происходила. Готовьте попкорн!
Вита Заебумба | Путь корпората — топовый канал про IT, сферу найма, трешовые собесы и работу в корпорациях. Просто кладезь кулстори не только от автора, но и от подписчиков
Еще больше жизненных историй про IT и полезных материалов с лайфхаками по найму ты найдешь на канале @vitazaebymba
➡️ Подписывайся!
8 732
⚙️ Atuin
✔️Инструмент для управления историей команд в оболочке.
➡️Некоторые возможности:
💠заменяет стандартный механизм истории команд базой данных SQLite;
💠записывает дополнительный контекст для каждой команды (время, статус выхода, длительность выполнения и т. д.);
💠обеспечивает мощный контекстный поиск;
💠позволяет синхронизировать историю команд на нескольких машинах с шифрованием;
💠предлагает удобный интерфейс поиска с настраиваемыми комбинациями клавиш.
▶️Поддерживаемые оболочки: zsh, bash, fish, nushell, xonsh.
🐙 Перейти на Github
🔨 bash_help
8 732
⚙️ reloader.sh
✔️Автоматически перезагружайте файлы конфигурации с помощью простого Bash-скрипта, который оптимизирует рабочий процесс и сэкономит ваше время.
▶️Скрипт позволяет быстро загружать изменения без необходимости перезапуска приложений. Это особенно полезно для пользователей, которым часто приходится работать с несколькими конфигурациями.
➡️ Особенности скрипта:
💠Простота использования: не требуются навыки программирования.
💠Быстродействие: загрузка конфигураций за считанные секунды.
💠Поддержка различных форматов: работает с различными типами файлов конфигураций.
💠Легкий: небольшой размер файла позволяет легко загрузить и запустить программу.
🐙 Перейти на Github
🔨 bash_help
8 732
Repost from Технотренды
⚡️ Запускаем крупный розыгрыш призов, где можно выиграть iPhone 17, игровые наушники, клавиатуру и мышь!
Без лишних слов, условия:
1. Подписка на:
— бизнестрендс
— Технотренды
— Блумберг
2. Нажать кнопку «Участвовать» снизу
Итоги будут опубликованы 15 ноября в 18:00 на наших каналах, желаем удачи!
8 732
⚙️ libshell
✔️Библиотека часто используемых функций для POSIX shell.
➡️ Некоторые функции, которые входят в состав библиотеки:
💠
shell-getopt — реализует утилиту getopt(1) и семейство getopt;
💠shell-config — позволяет работать с файлами конфигурации (читать, изменять и удалять переменные);
💠shell-ini-config — работает с файлами конфигурации в стиле ini;
💠shell-signal — меняет действие, которое выполняется процессом при получении определённого сигнала;
💠shell-args — проверяет тип аргумента, выводит версию и использование программы;
💠shell-ip-address — проверяет IP-адрес;
💠shell-mail-address — проверяет домен и адрес электронной почты;
💠shell-quote — позволяет заключать переменные в кавычки;
💠shell-unittest — платформа для тестирования оболочки (совместима с xUnit);
💠shell-error — выводит сообщения об ошибках и подробные сообщения.
▶️Библиотека имеет модульную структуру, каждый модуль используется для своих целей
🐙 Перейти на Github
🔨 bash_help8 732
⚙️ timep
✔️Профайлер и генератор FlameGraph для кода на языке bash.
▶️Инструмент не только показывает время выполнения каждой команды, но и создаёт полное дерево стека вызовов для профилируемого кода bash. При желании на основе этого дерева стека можно сгенерировать FlameGraph отпрофилированных команд bash.
➡️ Некоторые возможности программы:
💠Флаги
-f, -s и -c позволяют заставить timep рассматривать вход как функцию, скрипт или список необработанных команд.
💠Флаг -k или --keep не позволяет timep удалять все промежуточные логи и файлы скриптов.
💠Флаг -t или --time позволяет запускать код через встроенную оболочку time, помимо генерации профилей времени и выходных данных FlameGraph.
💠Флаг -o <тип> позволяет контролировать, какие выходные данные печатаются в stdout после завершения работы timep.
🐙 Перейти на Github
🔨 bash_help8 732
⚙️ Шпаргалка по bash
✔️Шпаргалка основных команд Git Bash, терминала OSX, терминала linux.
➡️ Содержание:
💠Файловая система
💠Алиасы
💠Использование переменных
💠Подстановка команд в переменные
💠Математические операции
💠Управляющая конструкция if-then
💠Управляющая конструкция if-then-else
💠Конструкция CASE
💠Циклы
💠Сравнение чисел
💠Сравнение строк
💠Проверки файлов
💠Операторы
🐙 Перейти на Github
🔨 bash_help
8 732
⚙️ Simple-Bash-Port-Scanner
✔️Простой сканер портов, написанный на языке Bash. Цель программы — проверять, работает ли хост, а затем по отдельности тестировать диапазон портов, чтобы определять, открыты они или закрыты.
➡️ Некоторые возможности инструмента:
💠Установка времени ожидания. Пользователь может указать, сколько секунд программа должна тратить на сканирование каждого порта. Например, -t 10 означает, что время сканирования каждого порта в диапазоне составит 10 секунд.
💠Выбор цели сканирования. Это может быть стандартный веб-адрес или URL. Если ввести неправильный хост, программа выведет сообщение о том, что хост не работает, и завершится.
💠Выбор диапазона портов. Начало диапазона портов, которые будет сканировать программа, обозначается числом. Конец диапазона портов, которые будет сканировать программа, также обозначается числом.
💠Использование файла в качестве входных аргументов. Пользователь может выбрать текстовый файл с аргументами в формате: хост, начальный порт, конечный порт.
🐙 Перейти на Github
🔨 bash_help
8 732
⚡️ Специалисты из команды CodeGuard собрали для вас тонны обучающего материала
Отсортировали и разбили по каналам:
|- - - 📂 Хакинг & infosec — 573ГБ
|
|- - - 📂 Linux & Bash — 652ГБ
|
|- - - 📂 Работа ИБ — 356ГБ
|
|- - - 📂 Python — 428ГБ
|
|- - - 📂 Общее IT — 1526ГБ
📌 Гайды, шпаргалки, книги, задачи и ресурсы для каждого.
8 732
⚙️ bash devops automation suite
✔️Коллекция проверенных bash-скриптов для AWS, Kubernetes, CI/CD и облачной автоматизации.
🐙 Перейти на Github
🔨 bash_help
Available now! Telegram Research 2025 — the year's key insights 
