fa
Feedback
BashMaster

BashMaster

رفتن به کانال در Telegram

Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help

نمایش بیشتر
8 887
مشترکین
-624 ساعت
-197 روز
+1630 روز
آرشیو پست ها
⚙️ Проверка программы на запущенность и ее запуск ✔️Нужно было как-то примитивно проверить запущена ли программа, а если нет,
⚙️ Проверка программы на запущенность и ее запуск ✔️Нужно было как-то примитивно проверить запущена ли программа, а если нет, то запустить её. Да, есть программы для мониторинга всего этого дела (например, 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

DevOps Bootcamp: профессиональное сообщество начинающих инженеров 👉 разборы рабочих задач 👉 прокачка hard и soft skills 👉
DevOps Bootcamp: профессиональное сообщество начинающих инженеров 👉 разборы рабочих задач 👉 прокачка hard и soft skills 👉 вебинары и прямые эфиры с топами индустрии 👉 статьи, лекции и ответы на вопросы Автор канала — Вячеслав Федосеев: 🔹TeamLead DevOps в «Честном знаке»; 🔹автор двух из трех существующих русскоязычных курсов по CI/CD; 🔹ментор курса-профессии «DevOps Upgrade» учебного центра Слёрм; 🔹ведущий проекта «Честные вакансии: DevOps Middle». Подписывайтесь на канал и станьте частью большого и активного комьюнити 🫂 ⭐️ DevOps Bootcamp ⭐️

⚙️ Bash Scripting: гайд по циклам ✔️Если ты работаешь в Linux или автоматизируешь задачи через shell-скрипты — держи шпаргалк
⚙️ 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

Представьте, что задача — это чемпионат, а вы — root-пользователь внутри него 🦾 Представили? А теперь попробуйте на практике
Представьте, что задача — это чемпионат, а вы — root-пользователь внутри него 🦾 Представили? А теперь попробуйте на практике! «Рукод» — это не просто проверка знания алгоритмов, это как grep по вашему мышлению. На мой взгляд, идеальный вариант для тех, кто хочет показать себя в ИТ-индустрии. 👥 Участвуют все — от студентов и школьников до специалистов 👉 Три дивизиона: для начинающих, опытных и профи 💥 Результат: призы, дипломы, карьерные предложения и крутые ивенты 🐍 Python, Java, C/C++, Kotlin, Rust — языки программирования чемпионата Отборочный этап уже стартовал и продлится до 31 августа, а единый день отбора в дивизион А/В 24 августа. Успевайте зайти в топовый чемпионат по программированию и стать победителем! Реклама

⚙️ Краткий справочник по «всем-всем» командам Linux ✔️Супер полезная подборка основных 1110 команд Linux. ➡️ Здесь есть разны
⚙️ Краткий справочник по «всем-всем» командам Linux ✔️Супер полезная подборка основных 1110 команд Linux. ➡️ Здесь есть разные команды: 💠пользовательские 💠админские 💠встроенные в bash 💠для TUI-приложений 💠для GUI-приложений 💠команды-фильтры 💠связанные с серверными службами 💠для мониторинга 🖼️ Дочитать статью на Habr'e 🔨 bash_help

Repost 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

⚙️ Bash-скрипт для автотматизации бэкапа ✔️Задача: создать скрипт для автоматического резервного копирования файлов и папок в
⚙️ 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

🗣 Олег Кравчук, «Код Безопасности»: Все увидели то, о чем наше государство говорило последние несколько лет — необходимость
🗣 Олег Кравчук, «Код Безопасности»: Все увидели то, о чем наше государство говорило последние несколько лет — необходимость технологического суверенитета За три года российские ИБ-вендоры смогли нарастить производство и успешно заменить ушедших западных разработчиков. Теперь перед ними стоит новый вызов — выход на зарубежные рынки, в первую очередь стран Азии и Ближнего Востока. ➡️ Олег Кравчук, директор по стратегическим и международным проектам «Кода Безопасности», председатель комитета Международного сотрудничества АРПП, в интервью для Cyber Media рассказал, каковы экспортные перспективы отечественных вендоров. 😎 Здесь о кибербезе

⚙️ Rogue.sh ✔️Автоматизированный Bash-скрипт для систем Linux, который выполняет сканирование Nmap, настраивает Metasploit, и
⚙️ Rogue.sh ✔️Автоматизированный Bash-скрипт для систем Linux, который выполняет сканирование Nmap, настраивает Metasploit, использует уязвимости, загружает чувствительные файлы, собирает учётные данные и выполняет задачи после использования. ▶️Скрипт предоставляет комплексный обзор уязвимостей и мер безопасности целевой системы. ➡️ Некоторые возможности Rogue.sh: 💠извлечение файлов, паролей и другой информации об операционной системе; 💠идентификация сессий с повышенными привилегиями; генерация отчёта на основе данных сканирования и после использования; 💠модульная конструкция, позволяющая настраивать шаги; использование таких инструментов для тестирования безопасности, как Nmap, Metasploit, John. 🐙 Перейти на Github 🔨 bash_help

2025 год: ИИ, облака и… дыры в Kubernetes? Тренды меняют индустрию: компании переходят в облака, внедряют ИИ, автоматизируют
2025 год: ИИ, облака и… дыры в Kubernetes? Тренды меняют индустрию: компании переходят в облака, внедряют ИИ, автоматизируют всё. Но чем сложнее инфраструктура, тем проще оставить брешь в безопасности. Особенно в Kubernetes: ◼️ незакрытый дашборд — и вот уже криптомайнеры используют ваш кластер; ◼️ под с root-доступом — и злоумышленник получает контроль над нодой; ◼️ логи с паролями доступны бывшим сотрудникам — и вот уже вы находите их в сливах. Даже если работаете с k8s давно, не факт, что вы знаете все нюансы безопасности в Kubernetes! Что делать? Прокачивать security. 👉 4 августа стартует практический курс «Безопасность в Kubernetes», на котором вы на реальных кейсах научитесь обеспечивать безопасность контейнера, а с ним и проекта, и максимально усложнять жизнь злоумышленникам. 🔥 Можно забрать со скидкой 50% по промокоду LETO2025! Узнать подробности и занять место на курсе — по ссылке.

Repost from localhost
С днём сисадмина! 🍺 Предлагаю в очередной раз насладиться классикой :) localhost › IT-юмор

⚙️ Подготовка эффективной среды для написания bash сценариев ✔️Статья несет рекомендательный характер и затрагивает в первую
⚙️ Подготовка эффективной среды для написания 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

erid: 2W5zFGjfLwi RYBE — одежда с твоим языком программирования. Где два айтишника могут познакомиться? В офисе и на конферен
+5
erid: 2W5zFGjfLwi RYBE — одежда с твоим языком программирования. Где два айтишника могут познакомиться? В офисе и на конференции. Нам этого мало. Мы захотели объединить людей, у которых одни интересы. Дать возможность узнать друг друга. В метро, на прогулке, в офисе, на конференции, в походе, в баре, в самолёте. В каком-то смысле это мерч для твоего языка программирования. А что еще? - отшиваемся в Москве; - плотный премиум-хлопок; - фичи типа люверсов для крепления пропуска, кармана для наушников и салфетки для очков Выбирай свой язык, заказывай, дари, носи сам: http://rybe.store/ Наш tg: @rybe_store

⚙️ Shfmt ✔️Инструмент командной строки для форматирования скриптов оболочки. Он служит в качестве парсера, форматировщика и и
⚙️ Shfmt ✔️Инструмент командной строки для форматирования скриптов оболочки. Он служит в качестве парсера, форматировщика и интерпретатора. ➡️ Некоторые возможности Shfmt: 💠Форматирование скриптов. Shfmt позволяет привести код к стандартному стилю, что облегчает его чтение и поддержку. 💠Список неотформатированных файлов. Этот функционал полезен, например, в средах непрерывной интеграции (CI), где необходимо автоматически соблюдать правила стиля кода. 💠Запись результата в файл. По умолчанию вывод форматирования отображается в терминале, но с помощью опции --write результат можно записать в файл. 💠Упрощение кода. Shfmt позволяет удалять избыточные синтаксические элементы и упрощать скрипт, где это возможно. ▶️Shfmt поддерживает такие оболочки, как POSIX Shell, Bash и mksh. 🐙 Перейти на Github 🔨 bash_help

⚙️ Bashdb (The Bash Debugger Project) ✔️Отладчик исходного кода для bash, который использует синтаксис команд gdb. ▶️Цель bas
⚙️ Bashdb (The Bash Debugger Project) ✔️Отладчик исходного кода для bash, который использует синтаксис команд gdb. ▶️Цель bashdb — позволить пользователю видеть, что происходит «внутри» скрипта bash во время его выполнения. ➡️ Некоторые возможности bashdb, которые помогают находить ошибки: 💠запускать скрипт с указанием любых параметров, которые могут влиять на его поведение; 💠останавливать скрипт по заданным условиям; 💠исследовать, что произошло после остановки скрипта; 💠изменять элементы скрипта, чтобы можно было экспериментировать с исправлением ошибок. ▶️Кроме отладки скриптов, написанных на bash, bashdb можно использовать для изучения программирования на этом языке. 🐙 Перейти на Github 🔨 bash_help

⚙️ tree-sitter-bash ✔️Библиотека для парсинга кода на языке Bash, разработанная на основе библиотеки Tree-sitter. Это синтакс
⚙️ tree-sitter-bash ✔️Библиотека для парсинга кода на языке Bash, разработанная на основе библиотеки Tree-sitter. Это синтаксическое дополнение (grammar) для Tree-sitter, которое позволяет анализировать структуру кода на Bash. ▶️Библиотека строит синтаксическое дерево для исходного файла и эффективно обновляет его при изменении кода. Это позволяет: 💠Выявлять конструкции языка (ключевые слова, переменные, функции) и применять отдельные цвета для подсветки кода. 💠Находить определения функций, отслеживать использование переменных и выполнять автоматический рефакторинг (например, переименовывать переменные или функции). 💠Статически анализировать код без его выполнения, обнаруживать общие проблемы или соблюдать правила стиля. ➡️ Некоторые особенности библиотеки tree-sitter-bash: 💠Инкрементальный парсинг — при изменении кода исходный файл не обрабатывается целиком, обрабатывается только изменённая часть. 💠Обработка ошибок — Tree-sitter понимает, какая часть кода (синтаксического дерева) лишняя, что позволяет текстовым редакторам подсвечивать только ошибочные участки кода. 💠Поддержка запросов — можно использовать запросы для поиска первого и последнего параметров функции. ▶️Библиотека tree-sitter-bash используется в проектах, которые анализируют код на языке Bash, например: 💠Инструменты для подсветки кода — tree-sitter помогает идентифицировать конструкции языка и применять отдельные цвета. 💠Инструменты для навигации по коду — с помощью синтаксического дерева можно находить определения функций, отслеживать использование переменных. 🐙 Перейти на Github 🔨 bash_help

Repost from 1337
🎉 Большой розыгрыш от крупнейшего IT-медиа 1337, легендарного паблика Рифмы и Панчи, канала Техно. Победителей будет много,
🎉 Большой розыгрыш от крупнейшего IT-медиа 1337, легендарного паблика Рифмы и Панчи, канала Техно. Победителей будет много, а для участия нужны лишь пара кликов: 1. Подписаться на Рифмы и Панчи, 1337 и на Техно. 2. Нажать «Участвовать» под этим постом Что по призам:
1 место - Iphone 16 Pro 2 место - PS5 Slim 3 место - Nintendo Switch 2 4-10 места - 10 000 рублей на карту
Победителей определим 21 июля в 18:00 МСК. Всем удачи!

⚙️ Шпаргалка по скобкам в Bash — для тех, кто путается между `[]`, `{}`, `$( )` и остальными ✔️На одной картинке — все популя
⚙️ Шпаргалка по скобкам в Bash — для тех, кто путается между `[]`, `{}`, `$( )` и остальными ✔️На одной картинке — все популярные скобки и окружения в Bash: $(), {}, [], $(( )), ${}, () и [[ ]]. ➡️ Когда и зачем использовать: 💠условия и проверки 💠подстановки значений 💠арифметика 💠группировка команд 💠модификация переменных ▶️Минимум теории — максимум пользы, чтобы больше не гадать, какие скобки ставить. 🔨 bash_help

«…У меня всё работает локально» — и вот ты уже второй час копаешься в логах Jenkins, а выкатка задерживается…😬 Команды, кото
«…У меня всё работает локально» — и вот ты уже второй час копаешься в логах Jenkins, а выкатка задерживается…😬 Команды, которые автоматизируют CI/CD, не зависят от ручных сборок и человеческого фактора. Их инженеры спят спокойно и при этом ценятся выше — потому что стабильный пайплайн экономит часы работы всей команды. 👉🏻21 июля стартует курс «CI/CD с Jenkins», на котором вы поймёте, как автоматизировать процесс интеграции и поставки, сократить количество багов и ускорить релизы. Вы научитесь: 🔵 настраивать Jenkins с нуля — от плагинов до облачных агентов; 🔵 писать надёжные пайплайны и понимать, почему они сломались; 🔵 деплоить в Kubernetes — чтобы ваш код летел в прод, а не в ошибки. Пройдете путь от настройки первого плагина и создания простого пайплайна до Jenkins as code и внедрения в Kubernetes. Без лишней теории, только то, что используют в топовых командах. ❗️По промокоду LETO2025 на курс действует скидка 50% Успейте забрать обучение с выгодой и вывести свои навыки автоматизации на уровень, за который платят больше. ➡️ Занять место со скидкой