BashMaster
رفتن به کانال در Telegram
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help
نمایش بیشتر8 817
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-177 روز
-3630 روز
آرشیو پست ها
8 817
⛴️ Открыта регистрация на ICEBREAKER 2025. Участие бесплатно
12 декабря состоится NGENIX ICEBREAKER 2025 — онлайн-конференция, на которой эксперты расскажут, на чем сегодня строится доверие к облачным решениям.
🤖 Отдельный блок программы будет посвящен защите от ботов. Последние годы бот-атаки становятся все изощреннее и приносят много проблем владельцам веб-ресурсов. Эксперты расскажут про эволюцию методов детекции и классификацию ботов, защиту API, а приглашенный гость из компании «Комус» поделится реальными кейсами, как сегодня бизнес может страдать от автоматизированных угроз.
Также в программе конференции:
🛡️ защита от DDoS- и продвинутых бот-атак;
📊 эволюция средств статистики и продвинутой аналитики;
💻 развитие российских продуктов ИБ и аттестация;
🔑 управление правами доступа;
💭 презентация нового облачного продукта для финтеха.
📍 12 декабря, 11:00
🔹Онлайн
🔹Бесплатно
ЗАРЕГИСТРИРОВАТЬСЯ
8 817
⚙️ Bash Style Guide
✔️Минималистичное и чёткое руководство по читаемому, безопасному и портируемому Bash-коду.
➡️ Коротко, что советует автор:
💠Используй
[[ ... ]] вместо [ — надёжнее.
💠foo() и local var=... — забудь про function.
💠Только $(...) — никаких обратных кавычек.
💠Не ls, а glob (*) и while read.
💠Арифметика? Только ((…)) и $((…)).
💠Переменные — всегда в кавычках: "$name".
💠Только табы. Только 80 символов в строке.
▶️Всё это с аргументами. Есть терминальная версия: curl style.ysap.sh/plain
🖼️ Перейти на сайт
🔨 bash_help8 817
⚙️ Управление рабочими процессами c помощью timeout и wait для контроля параллельных задач
✔️Для управления несколькими параллельными процессами в Bash важно контролировать их выполнение и предотвращать зависания или снижение производительности. Инструменты
timeout и wait позволяют ограничить время выполнения задач и обеспечить их корректное завершение.
➡️ Пример:
Запуск длительных процессов с ограничением времени работы и ожиданием их завершения перед продолжением.
#!/bin/bash
# Функция для выполнения команды с таймаутом
run_with_timeout() {
timeout 10s "$@" || echo "Process $1 timed out"
}
# Запуск нескольких процессов параллельно
run_with_timeout command1 &
run_with_timeout command2 &
run_with_timeout command3 &
# Ожидаем завершения всех процессов
wait
echo "All processes completed."
➡️ Как это работает:
💠timeout 10s — устанавливает ограничение по времени на выполнение каждой команды. Если процесс не завершится за 10 секунд, он будет завершен автоматически.
💠& — запускает команды в фоновом режиме, позволяя им работать параллельно.
💠wait — блокирует выполнение скрипта до тех пор, пока все фоновые процессы не завершатся.
💠command1, command2, command3 — это команды или скрипты, которые могут выполнять задачи в фоне, например, запрашивать внешние API, выполнять анализ данных или обрабатывать файлы.
▶️Такой способ контроля над процессами помогает избегать зависаний и позволяет обрабатывать ошибки на лету, не блокируя другие процессы.
🖼️ Ссылка на источник
🔨 bash_help8 817
😵💫Loading…
Падают продажи из-за долгой загрузки?
Распродажи — злачный сезон только для тех, кто готов к пиковым нагрузкам. Пользователи не станут ждать, если в приложении или на сайте в разы вырастет время загрузки. Чтобы не терять клиентов, подключайте сеть доставки контента от Selectel.
Кроме ускорения загрузки, CDN поможет:
🔹 повысить позиции сайта в поисковой выдаче,
🔹 сэкономить на инфраструктуре,
🔹 обеспечить постоянную доступность сервиса,
🔹 защитить инфраструктуру от DDoS-атак.
До 31 декабря можно подключить CDN от Selectel со скидкой до 50%. Скидка распространяется на дополнительный трафик и действует до конца июня. Единственное условие — подать заявку на участие в акции до конца года.
Регистрируйтесь и ускорьте загрузку сайта с помощью CDN от Selectel со скидкой: https://slc.tl/pzk85
Реклама. АО "Селектел". erid: 2W5zFHRVJpQ
8 817
⚙️ AliasForge
✔️Легкий кроссплатформенный менеджер псевдонимов, который добавляет ваши персональные сочетания клавиш в любую оболочку (Bash, Zsh или Fish) на macOS и Linux. Он делает ваши любимые команды портативными, удобными для редактирования и мгновенно доступными при каждом входе в систему.
➡️ Возможности:
💠Кроссплатформенность: macOS и Linux
💠Поддержка нескольких оболочек: Bash, Zsh, Fish и NuShell
💠Идемпотентность: можно запускать несколько раз
💠Простота настройки: отредактируйте один файл, перезагрузите, и готово
💠Возможность удаления для «чистого листа»
🐙 Перейти на Github
🔨 bash_help
8 817
📣 Внимание, хакеры и разработчики!
Канал БАГодельня запустил площадку с CTF-задачами — это проект, в котором ребята создают CTF-задачи для прокачки навыков в IT и ИБ. Новые задачи каждую субботу!
На канале вас ждут:
⭐ Задачи для практики
⭐ Руководства и шпоргалки
⭐ Разбор кода и алгоритмы
⭐ Код-ревью проектов
Все бесплатно и уже более 70 задач на платформе!
Практикуйтесь с нами: @bug_makers
8 817
⚙️ Как настроить автодополнение для команды ssh с хостами из .ssh/config
✔️Автодополнение — одна из самых полезных функций командной строки, позволяющая быстро подбирать подходящие аргументы или команды, просто нажав клавишу Tab. В этой статье вам расскажут, как настроить автодополнение для команды ssh, чтобы Bash подсказывал хосты, указанные в файле ~/.ssh/config.
➡️ Содержание:
💠Понять зачем это нужно
💠Настройка автодополнения хостов из ~/.ssh/config
💠Скрипт для автодополнения хостов
💠Автозапуск автокомплита
💠Добавление удобного алиаса для получения информации о подключении
🖼️ Прочитать статью на Habr'e
🔨 bash_help
8 817
⚙️ Как настроить автодополнение для команды ssh с хостами из .ssh/config
✔️Автодополнение — одна из самых полезных функций командной строки, позволяющая быстро подбирать подходящие аргументы или команды, просто нажав клавишу Tab. В этой статье вам расскажут, как настроить автодополнение для команды ssh, чтобы Bash подсказывал хосты, указанные в файле ~/.ssh/config.
➡️ Содержание:
💠Понять зачем это нужно
💠Настройка автодополнения хостов из ~/.ssh/config
💠Скрипт для автодополнения хостов
💠Автозапуск автокомплита
💠Добавление удобного алиаса для получения информации о подключении
🖼️ Прочитать статью на Habr'e
🔨 bash_help
8 817
🔥OS DevConf 25 powered by GigaChat — конференция про разработку системного ПО, ядра Linux и open source.
Один день, 500 участников, 20+ докладов, 3 трека — концентрат практического опыта, знаний и инструментов, готовых к внедрению сразу по возвращению в офис. И, конечно, мега-возможности для нетворкинга с коллегами и экспертами сообщества!
Что будем обсуждать?
-Инструменты и примеры отладки, виртуализации, оптимизации производительности
-Практический опыт оптимизации сетевых решений с DPDK
-Эффективные методы безопасной разработки ядра Linux
-Реальные кейсы создания драйверов на Rust
-Все про GPU, NPU, ASIC и как запускать AI на железе под Linux и не только. Как AI встраивается в современную разработку
-Современные подходы к разработке системного и embedded ПО
Участие бесплатное, но количество мест ограничено — зарегистрируйтесь прямо сейчас 💻
#реклама
О рекламодателе
8 817
⚙️ Скрипт для мониторинга использования диска и отправки оповещения, если оно превышает 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 817
Идёте на 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 817
Выиграйте грант на курс по Apache Kafka
Скидки до 100% на новый поток «Apache Kafka База» от Слёрма.
Научитесь строить отказоустойчивый кластер без тонны документации и разберётесь, как Kafka работает изнутри, чтобы предотвращать инциденты и держать систему стабильной под нагрузкой.
При выполнении условий гранта вы сможете получить 1 из 3 вариантов:
⭐️ скидка 100% (1 место);
⭐️ скидка 50% (2 места);
⭐️ скидка 30% (2 места).
Что сделать, чтобы принять участие:
1️⃣ Быть подписанным на канал Слёрма
2️⃣ Заполнить заявку
Срок выполнения условий — до 20 ноября включительно. У вас будет всего одна попытка!
Каждый этап будет оцениваться командой Слёрма. Будьте честны и открыты!
Итоги опубликуем в канале 21 ноября в 19:00 мск.
8 817
⚙️ Encryption-Decryption Tool
✔️Репозиторий, который содержит инструменты для шифрования и расшифровки данных в Linux на основе Bash.
➡️ В репозитории представлены два инструмента:
💠Manual Encryption-Decryption Tool — интерактивный терминал для пользователей, который позволяет шифровать, расшифровывать или получать информацию о поддерживаемых шифрах.
💠Automatic Encryption-Decryption Tool — автоматизирует обработку текстовых файлов, применяя выбранный шифр и сохраняя результат в новый файл.
➡️ Manual Tool поддерживает:
💠шифрование, расшифровку и получение информации о шифрах;
💠обработку нескольких шифров с проверкой.
➡️ Automatic Tool позволяет:
💠обрабатывать файлы для шифрования и расшифровки;
💠автоматически называть выходной файл;
💠обрабатывать ошибки при операциях с файлами.
🐙 Перейти на Github
🔨 bash_help
8 817
⚙️ Как получать уведомления о входе в систему по SSH в Linux
✔️Всегда полезно знать, кто и когда подключается к вашему серверу Linux по протоколу SSH. Даже если доступ есть только у вас, рекомендуется следить за подключениями. Для команд или производственных систем получение уведомлений о входах по протоколу SSH обеспечивает дополнительный уровень осведомлённости и безопасности.
▶️В этой статье вы увидите простой способ настроить уведомления о входе в систему по протоколу SSH. Это позволит вам быть уверенными в том, что вы в режиме реального времени знаете, кто получает доступ к вашему серверу.
🖼️ Прочитать статью в источнике
🔨 bash_help
8 817
8 817
⚙️ bash-library
✔️Коллекция многоразовых функций и скриптов для задач DevOps и системного администрирования на языке Bash.
➡️ Проект предназначен для:
💠Интеграции функций в скрипты — функции можно использовать в скриптах.
💠Упрощения общих задач — готовые скрипты помогают выполнять задачи, которые часто встречаются в DevOps и системном администрировании.
💠Кроссплатформенной работы — проект работает на Linux и macOS.
➡️ В репозитории представлены:
💠Функции для работы с удалёнными репозиториями — например, для установки и удаления библиотеки.
💠Функции для работы с логированием.
Функции для обработки ошибок.
▶️Каждая функция включает чёткую документацию.
➡️ В библиотеке представлены готовые скрипты для автоматизации повторяющихся задач. Например:
💠Автоматическое резервное копирование — скрипт, который архивирует указанный каталог и сохраняет его с меткой даты.
💠Автоматическая очистка логов — скрипт удаляет файлы логов, которые превышают заданный размер (например, 100 МБ).
💠Мониторинг параметров системы и оповещения — скрипт проверяет загрузку процессора, оперативной памяти и диска, и отправляет оповещение, если любой параметр превышает заданный порог.
🐙 Перейти на Github
🔨 bash_help
8 817
Разворачиваем кластер 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 817
⚙️ Продвинутый 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 817
Как бигтехи кошмарят вас на собеседованиях
Успешно пройти секцию по профильным хардам, но смачно опозориться на логической задаче с часами? В этом вся суть интервью в бигтехе
Автор этой истории побывал на собесе в ❤️ и рассказал всю правду о клоунаде, которая там происходила. Готовьте попкорн!
Вита Заебумба | Путь корпората — топовый канал про IT, сферу найма, трешовые собесы и работу в корпорациях. Просто кладезь кулстори не только от автора, но и от подписчиков
Еще больше жизненных историй про IT и полезных материалов с лайфхаками по найму ты найдешь на канале @vitazaebymba
➡️ Подписывайся!
