BashMaster
8.28K subscribers
718 photos
18 videos
1 file
741 links
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов.

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
erid: 2W5zFGjfLwi

RYBE — одежда с твоим языком программирования.

Где два айтишника могут познакомиться?
В офисе и на конференции. Нам этого мало. Мы захотели объединить людей, у которых одни интересы. Дать возможность узнать друг друга. В метро, на прогулке, в офисе, на конференции, в походе, в баре, в самолёте.
В каком-то смысле это мерч для твоего языка программирования.

А что еще?

- отшиваемся в Москве;
- плотный премиум-хлопок;
- фичи типа люверсов для крепления пропуска, кармана для наушников и салфетки для очков

Выбирай свой язык, заказывай, дари, носи сам: http://rybe.store/

Наш tg: @rybe_store
🔥5😐4👍31
⚙️ Подготовка эффективной среды для написания bash сценариев

✔️Статья несет рекомендательный характер и затрагивает в первую очередь bash, но также будет полезна и для работы с совместимыми оболочками, такими как: sh, ash, csh, ksh и tcsh.

➡️ Текстовый редактор
▶️Начнем с выбора среды разработки, именно она позволяет объединять различные аспекты написания программы, повышая продуктивность за счет объединения общих действий по написанию программного обеспечения в одном приложении:
💠Консольные текстовые редакторы. Vim, Emacs и Nano
💠Графические текстовые редакторы. Mousepad, Gedit, Notepad++
💠IDE. Geany, Atom, IntelliJ IDEA, Sublime Text и Visual Studio Code

➡️ Альтернативные редакторы
▶️Существует как минимум три альтернативных среды разработки для написания bash скриптов:
💠Специализированная IDE BashEclipse основанная на Eclipse.
💠В IntelliJ IDEA можно добиться расширенной поддержки bash скриптинга путем установки расширений Shell Script, ShellCheck и BashSupport.
💠Bash Kernel для Jupyter Notebook.

➡️ Настройка окружения
▶️Сперва следует настроить редактор так, чтобы он помогал нам писать скрипты в едином стиле и исправлял за нас небольшие огрехи.
💠Ширина строк кода
💠Отступы и окончание строк
💠Автосохранение

➡️ Утилиты и расширения
▶️Всё обилие возможностей и расширенное погружение в написание bash сценариев, открывается при использовании дополнительных утилит, таких как: линтер, отладчик, форматер, языковой сервер и т.п. Сами по себе утилиты хоть и решают свои функциональные задачи, только с интеграцией в IDE они по настоящему раскрывают свою мощь.

💠ShellCheck - это инструмент который дает предупреждения и предложения для сценариев bash и sh. Незаменимая вещь, которую следует использовать повсеместно для написания скриптов и встраивать в CI пайплайны. Поможет писать сценарии более корректно и надежно, укажет на типичные проблемы синтаксиса и семантические проблемы, а также уведомит о тонкостях и возможных подводных камнях в разных конструкциях.
💠BASH Debugger - внешний отладчик для bash, который следует синтаксису команды gdb.
💠Shfmt - утилита для форматирования shell сценариев.
💠Bash Language Server - языковой сервер для интеграции в множество различных IDE. Установка языкового сервера приносит нам поведение среды разработки, как у больших языков программирования, такие возможности как: поиск ссылок, переход к объявлению, автодополнение, документация и т.п.
💠Shell Completion. Работая с bash как оболочкой, во многих моментах помогает автодополнение по TAB, так вот для VSCode есть возможность дополнять аргументы для команд, реализуется это при помощи расширения Shell Completion.
💠Manpages. Самая актуальные и корректные руководства к утилитам, зачастую находится локально в man, почему бы не читать их напрямую в среде разработки. Manpages поможет нам в этом
💠Shellman - наверное единственная совместимая с ShellCheck коллекция сниппетов для bash. Будет полезно как новичкам, для более быстрого знакомства с скриптами, так и бывалым разработчикам позволит сэкономить время на написание рутинных конструкций.
💠Code Runner - расширение, позволяющее выполнять произвольный блок кода в самой IDE, для этого достаточно выделить необходимые строки и нажать CTRL+ALT+N, или вызвать данную функцию из контекстного меню, или палитры команд. Это заметно ускорит процесс написания скриптов.
💠Hadolint - это, пожалуй лучший линтер для Dockerfile. Почему он оказался в этом списке? В Dockerfile имеется инструкция RUN в которой размещается shell скрипт, а Hadolint помимо общей проверки синтаксиса файла, также использует ShellCheck для проверки этих скриптов.
💠Txt Syntax. Еще одно вспомогательное расширение, напрямую не влияющее на bash скрипты, но позволяет выделить текстовые файлы (.txt, .out .tmp, .log, .ini, .cfg ...) и предоставить общие служебные инструменты для текстовых документов.
💠Better Shell Syntax. По умолчанию подсветка не настолько хороша как могла быть, и расширение Better Shell Syntax пытается исправить это, позволяя вашей теме лучше раскрашивать код.

🖼️ Дочитать статью на Habr'e

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥41
Forwarded from localhost
Media is too big
VIEW IN TELEGRAM
С днём сисадмина! 🍺

Предлагаю в очередной раз насладиться классикой :)

localhost › IT-юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉24🔥11👍5
2025 год: ИИ, облака и… дыры в Kubernetes?

Тренды меняют индустрию: компании переходят в облака, внедряют ИИ, автоматизируют всё. Но чем сложнее инфраструктура, тем проще оставить брешь в безопасности.

Особенно в Kubernetes:
◼️ незакрытый дашборд — и вот уже криптомайнеры используют ваш кластер;
◼️ под с root-доступом — и злоумышленник получает контроль над нодой;
◼️ логи с паролями доступны бывшим сотрудникам — и вот уже вы находите их в сливах.

Даже если работаете с k8s давно, не факт, что вы знаете все нюансы безопасности в Kubernetes! Что делать? Прокачивать security.

👉 4 августа стартует практический курс «Безопасность в Kubernetes», на котором вы на реальных кейсах научитесь обеспечивать безопасность контейнера, а с ним и проекта, и максимально усложнять жизнь злоумышленникам.

🔥 Можно забрать со скидкой 50% по промокоду LETO2025!

Узнать подробности и занять место на курсе — по ссылке.
2
⚙️ Rogue.sh

✔️Автоматизированный Bash-скрипт для систем Linux, который выполняет сканирование Nmap, настраивает Metasploit, использует уязвимости, загружает чувствительные файлы, собирает учётные данные и выполняет задачи после использования.

▶️Скрипт предоставляет комплексный обзор уязвимостей и мер безопасности целевой системы.

➡️ Некоторые возможности Rogue.sh:
💠извлечение файлов, паролей и другой информации об операционной системе;
💠идентификация сессий с повышенными привилегиями;
генерация отчёта на основе данных сканирования и после использования;
💠модульная конструкция, позволяющая настраивать шаги;
использование таких инструментов для тестирования безопасности, как Nmap, Metasploit, John.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥41
Forwarded from Cyber Media
🗣 Олег Кравчук, «Код Безопасности»: Все увидели то, о чем наше государство говорило последние несколько лет — необходимость технологического суверенитета

За три года российские ИБ-вендоры смогли нарастить производство и успешно заменить ушедших западных разработчиков.

Теперь перед ними стоит новый вызов — выход на зарубежные рынки, в первую очередь стран Азии и Ближнего Востока.

➡️ Олег Кравчук, директор по стратегическим и международным проектам «Кода Безопасности», председатель комитета Международного сотрудничества АРПП, в интервью для Cyber Media рассказал, каковы экспортные перспективы отечественных вендоров.

😎 Здесь о кибербезе
Please open Telegram to view this post
VIEW IN TELEGRAM
😐12👍4
⚙️ Bash-скрипт для автотматизации бэкапа

✔️Задача: создать скрипт для автоматического резервного копирования файлов и папок в Git-аккаунт, защищая их при этом AES-шифрованием.

▶️Скрипт вызывающий специальные подскрипты в соответствии с выбором пользователя.
#!/bin/bash
cd /home/user/working-directory

# loop menu
while true; do

# Display options
echo "BACKUP TOOL"
echo "................."
echo "1 Backup 1"
echo "2 Backup 2"
echo "3 Backup 3"
echo "................."

# Read user input
read -n 1 -p "Enter your choice (#) or exit (x): " choice
echo

# Perform the selected action based on user input
case "$choice" in
1)
echo "Backup 1"
./script_1 ;;
2)
echo "Backup 2"
./script_2 ;;
3)
echo "Backup 3"
./script_3 ;;
x)
exit 0 ;;
*)
echo "Invalid choice..." ;;
esac
done


▶️Данный скрипт:
💠скопирует файл(ы) или папку для резервного копирования в ваш Git-каталог.
💠зашифрует его с помощью GPG AES256: вам будет предложено ввести пароль
💠очистит каталог
💠отправит зашифрованный файл в Git
#!/bin/bash

# WD
cd /home/user/git-directory

# copy file to backup
cp /home/user/other-directory/file.ext ./file.ext

# encrypt file using GPG AES256
gpg -c file.kdbx

# rename with date
now=$(date +%Y%m%d_%H%M)
mv file.kdbx.gpg ./"keep_$now.gpg"

read -p ">> Continue to GIT ? " -n1 -s

# Remove temp files
rm ./file.ext

# GIT operations
git pull
git add *.gpg
git commit -a -m "File backup"
git push

▶️Для расшифровки файла (будет запрошен пароль):
gpg -d --output restored_file.ext ./*gpg


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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥41
Forwarded from BashTex | Linux
Ротационные бэкапы с экономией места: rsync + hardlink

На сервере делаются ежедневные резервные копии, но не хочется тратить кучу места на дублирование одних и тех же файлов?
Есть отличный способ - использовать rsync с жёсткими ссылками (hardlinks) для дедупликации. Это позволяет хранить полные снепшоты, при этом экономя место.

🌟 Суть подхода

Бэкапы выглядят как отдельные директории (backup-2025-06-02, backup-2025-06-01), но все неизмененные файлы - это просто ссылки на одни и те же иноды.

Если файл не изменился - он физически не дублируется, а просто переиспользуется в новом бэкапе.

▪️ Структура и логика

Пример каталогов:


/backups/
├── daily.0 ← сегодня
├── daily.1 ← вчера
├── daily.2
└── daily.3


daily.0 - свежий бэкап.
daily.1, daily.2, ... - предыдущие снепшоты.

При каждом новом запуске:

старые бэкапы смещаются на +1 (daily.2 → daily.3)
daily.0 создаётся как --link-dest от daily.1

▪️ Скрипт ротационного бэкапа


#!/bin/bash

SRC="/home/user"
DEST="/backups"
MAX=7 # сколько дней хранить

# Сдвигаем старые бэкапы
for ((i=MAX-1; i>=0; i--)); do
if [ -d "$DEST/daily.$i" ]; then
mv "$DEST/daily.$i" "$DEST/daily.$((i+1))"
fi
done

# Создаём новый бэкап с дедупликацией
LINK=""
if [ -d "$DEST/daily.1" ]; then
LINK="--link-dest=$DEST/daily.1"
fi

rsync -aAX --delete $LINK "$SRC/" "$DEST/daily.0"


⭐️ Преимущества

- Каждый бэкап - полный, можно восстановить всё в конкретном состоянии.
- Экономия места - используется только дополнительное место для новых/изменённых файлов.
- Простота восстановления: rsync обратно или просто cp.


BashTex 📱 #bash #utils
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥53
⚙️ Краткий справочник по «всем-всем» командам Linux

✔️Супер полезная подборка основных 1110 команд Linux.

➡️ Здесь есть разные команды:
💠пользовательские
💠админские
💠встроенные в bash
💠для TUI-приложений
💠для GUI-приложений
💠команды-фильтры
💠связанные с серверными службами
💠для мониторинга

🖼️ Дочитать статью на Habr'e

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥2
Представьте, что задача — это чемпионат, а вы — root-пользователь внутри него 🦾

Представили? А теперь попробуйте на практике!

«Рукод» — это не просто проверка знания алгоритмов, это как grep по вашему мышлению. На мой взгляд, идеальный вариант для тех, кто хочет показать себя в ИТ-индустрии.

👥 Участвуют все — от студентов и школьников до специалистов
👉 Три дивизиона: для начинающих, опытных и профи
💥 Результат: призы, дипломы, карьерные предложения и крутые ивенты
🐍 Python, Java, C/C++, Kotlin, Rust — языки программирования чемпионата

Отборочный этап уже стартовал и продлится до 31 августа, а единый день отбора в дивизион А/В 24 августа.

Успевайте зайти в топовый чемпионат по программированию и стать победителем!

Реклама
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1🔥1😐1
⚙️ Bash Scripting: гайд по циклам

✔️Если ты работаешь в Linux или автоматизируешь задачи через shell-скрипты — держи шпаргалку, которую обязан знать каждый разработчик.

➡️ Основные типы циклов в Bash:
💠for по директориям и диапазонам
💠C-подобный for ((i=0; i<10; i++))
💠while и until
💠while true и while :
💠Чтение файлов через while read line
💠continue и break

➡️ Полезные паттерны:
💠Инкремент/декремент переменных в while
💠Условия выхода из цикла (break)
💠Пропуск итераций (continue)
💠Построчное чтение файлов без cat

▶️Идеальный материал для тех, кто хочет писать чистые и эффективные Bash-циклы.

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥43
DevOps Bootcamp: профессиональное сообщество начинающих инженеров

👉 разборы рабочих задач
👉 прокачка hard и soft skills
👉 вебинары и прямые эфиры с топами индустрии
👉 статьи, лекции и ответы на вопросы

Автор канала — Вячеслав Федосеев:

🔹TeamLead DevOps в «Честном знаке»;
🔹автор двух из трех существующих русскоязычных курсов по CI/CD;
🔹ментор курса-профессии «DevOps Upgrade» учебного центра Слёрм;
🔹ведущий проекта «Честные вакансии: DevOps Middle».

Подписывайтесь на канал и станьте частью большого и активного комьюнити 🫂

⭐️ DevOps Bootcamp ⭐️
👍3
⚙️ Проверка программы на запущенность и ее запуск

✔️Нужно было как-то примитивно проверить запущена ли программа, а если нет, то запустить её. Да, есть программы для мониторинга всего этого дела (например, mon), но ставить их из-за одной программы не хотелось, поэтому написал небольшой скрипт.

➡️ Сам скрипт:
#!/bin/bash
ret=$(ps aux | grep [h]top | wc -l)
if [ "$ret" -eq 0 ]
then {
echo "Running Htop" #output text
sleep 1 #delay
htop #command for run program
exit 1
}
else
{
echo "EXIT. Htop already running!"
exit 1
}
fi;


▶️Для начала смотрим запущена программа или нет:
ps aux | grep [h]top | wc -l

💠ps aux выводит запущенные процессы.
💠grep [h]top выводит результаты с htop, при этом если первую букву процесса взять в квадратные скобки, то ‘grep htop’ будет исключаться из списка.
💠wc -l подсчитывает количество строк (запущенных процессов).

▶️После этого нужно написать условие проверки и запуска программы.
💠if [ "$ret" -eq 0 ] - если (if) значение переменной (ключ -eq означает равно) равно 0, то (then):
💠echo "Running Htop" - выводим текст: "Запускается Htop";
💠sleep 1 - ставим задержку при запуске в 1 секунду;
💠htop - запускаем программу Htop;
💠exit 1 - выходим из скрипта;
Иначе (else):
💠echo "EXIT. Htop already running!" - выводим текст: "Htop уже запущен!"
💠exit 1 - выходим из скрипта.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍126🔥3
Более миллиона высоконагруженных операций в месяц в кластерах Kubernetes
 
Это — потребности PropTech-платформы от компании TrendTech, которые были полностью закрыты сервисом Managed Kubernetes от Selectel.
 
TrendTech — компания с особенными запросами: более 10 Тб контента, сложная система актуализации данных, множество внешних интеграций с застройщиками и большое количество микросервисов.
 
Гибридное решение на базе Managed Kubernetes от Selectel позволило:
🔹Обеспечить отказоустойчивость сервисов за счет кластеров с тремя мастер-нодами в разных сегментах пула
🔹Добиться моментального масштабирования с помощью автоскейлинга и гибкого управления вычислительными ресурсами
🔹Развернуть удобные изолированные окружения для восьми команд разработки
 
Переносите и вы проекты в отказоустойчивые и автомасштабируемые кластеры Managed Kubernetes от Selectel — миграция бесплатная: https://slc.tl/ama7t

Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqwsHgzC
2
⚙️ Snap Cleaner Script

✔️Простой скрипт на языке Bash, предназначенный для удаления старых версий пакетов Snap и очистки кэша Snap. Предназначен для дистрибутивов Linux (Ubuntu, Arch, Fedora, Debian и др.), которые используют пакеты Snap.

➡️ Особенности:
💠Очистка кэша Snap — удаление всех файлов из каталога кэша Snap.
💠Удаление старых версий пакетов Snap — удаление старых версий установленных пакетов Snap, которые больше не используются.
💠Подтверждение пользователя — скрипт запрашивает подтверждение перед выполнением любых действий.

▶️Скрипт автоматически удаляет ненужные версии пакетов Snap, так как по конструкции Snap сохраняет как минимум одну более старую версию пакетов, установленных в системе. Старые пакеты помечены как «disabled» (отключённые).

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥42
This media is not supported in your browser
VIEW IN TELEGRAM
🏖 Тулзы и лайфхаки для сисадминов и инженеров

🟣 Сколько стоит инфра
— как посчитать совокупную стоимость владения.

🟣 Linux для сетевых инженеров
— практическое руководство по настройке, защите и запуску сетевых служб на базе Linux.

🟣 Загрузка Linux-системы
— идеальная шпаргалка от с поэтапной схемой.

🟣 Лимиты ресурсов в Kubernetes
как GitLab Runner без лимитов уронил ноду.

🟣 Как не стать мишенью для хакеров в Kubernetes
типичные ошибки в настройке K8s, открывающие двери для атак.

🟣 MinIO урезал UI
— альтернатива OpenMaxIO.

🟣kubedump
— инструмент для выгрузки и восстановления ресурсов Kubernetes в виде YAML-манифестов.

Ещё больше полезного в канале CORTEL

➡️ Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚙️ Kubernetes Quickstart Environments

✔️Репозиторий на GitHub, который содержит код для создания и настройки сред Kubernetes в облаке и на физическом кластере.

▶️В репозитории представлен код для создания сред Kubernetes для разных типов: облачных, на физическом кластере и гибридных.

💠Код для создания сред написан на языке Terraform, код для настройки — на языке TBD.
💠Скрипты написаны на языках Bash и Go.

➡️ Некоторые примеры сред:
💠Bare Metal Equinix и Kubeadm;
💠GCP GKE;
💠Azure AKS;
💠AWS EKS.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥43
Media is too big
VIEW IN TELEGRAM
🔥 Вакансии в команду разработчиков YADRO: Получите оффер этим летом! 🚀

Хотите писать код, который становится основой для продуктов и новых технологических решений? YADRO — лидер российской инженерной индустрии — расширяет команды разработки BIOS/BMC.

📅 У вас будет возможность присоединиться к команде, которая создаёт ПО UEFI (BIOS) и BMC для серверов, систем хранения данных и телеком-оборудования.
Мы работаем с проектами открытого исходного кода — EDK2 и OpenBMC — и влияем на развитие всей индустрии.

Кого мы ищем?

Ведущих и старших разработчиков — разработка встроенного ПО для серверов — от архитектуры BMC до работы с UEFI и OpenBMC:

1️⃣ TeamLead разработки OpenBMC.
2️⃣ Ведущего разработчика интерфейсов встраиваемых систем (Linux/OpenBMC).
3️⃣ Ведущего разработчика C++ (Linux/OpenBMC).
4️⃣ Старшего C разработчика (BIOS/UEFI).

QA-инженеров (ручное и автоматизированное тестирование) — тестирование встроенного ПО, автоматизация процессов и улучшение качества наших платформ:

1️⃣ Инженер по верификации и ручному тестированию встроенного ПО (QA)
2️⃣ Инженер по автоматизации тестирования / Automation QA
3️⃣ Старший инженер по автоматизации аппаратного тестирования / Embedded AQA

Почему YADRO?

➡️ Распределённая команда — работайте удалённо или в офисах в Москве, СПб, Нижнем Новгороде, Екатеринбурге и Минске.
➡️ Работа с уникальными проектами, влияющими на жизнь миллионов пользователей.
➡️ Реальный карьерный рост: как вертикальный, так и горизонтальный.
➡️ Возможность работать с талантливыми инженерами и напрямую влиять на развитие технологий.

💙 Присоединяйтесь к YADRO и становитесь частью масштабных проектов!
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2