BashMaster
Ir al canal en Telegram
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help
Mostrar más8 732
Suscriptores
+624 horas
+127 días
+21230 días
Archivo de publicaciones
8 729
🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊
Каналы с IT мероприятиями
Подписывайся,
чтобы не пропустить 👨💻
1. IT мероприятия для стажеров и студентов
2. IT мероприятия по РФ
3. IT мероприятия и хакатоны
4. Бесплатные IT мероприятия
5. IT мероприятия онлайн
6. IT мероприятия Москва
7. IT мероприятия Санкт Петербург
8 729
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
8 729
⚙️ 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_help8 729
Repost from КИБЕР МЕДИА
🗣 Олег Кравчук, «Код Безопасности»: Все увидели то, о чем наше государство говорило последние несколько лет — необходимость технологического суверенитета
За три года российские ИБ-вендоры смогли нарастить производство и успешно заменить ушедших западных разработчиков.
Теперь перед ними стоит новый вызов — выход на зарубежные рынки, в первую очередь стран Азии и Ближнего Востока.
➡️ Олег Кравчук, директор по стратегическим и международным проектам «Кода Безопасности», председатель комитета Международного сотрудничества АРПП, в интервью для Cyber Media рассказал, каковы экспортные перспективы отечественных вендоров.
😎 Здесь о кибербезе
8 729
⚙️ Rogue.sh
✔️Автоматизированный Bash-скрипт для систем Linux, который выполняет сканирование Nmap, настраивает Metasploit, использует уязвимости, загружает чувствительные файлы, собирает учётные данные и выполняет задачи после использования.
▶️Скрипт предоставляет комплексный обзор уязвимостей и мер безопасности целевой системы.
➡️ Некоторые возможности Rogue.sh:
💠извлечение файлов, паролей и другой информации об операционной системе;
💠идентификация сессий с повышенными привилегиями;
генерация отчёта на основе данных сканирования и после использования;
💠модульная конструкция, позволяющая настраивать шаги;
использование таких инструментов для тестирования безопасности, как Nmap, Metasploit, John.
🐙 Перейти на Github
🔨 bash_help
8 729
2025 год: ИИ, облака и… дыры в Kubernetes?
Тренды меняют индустрию: компании переходят в облака, внедряют ИИ, автоматизируют всё. Но чем сложнее инфраструктура, тем проще оставить брешь в безопасности.
Особенно в Kubernetes:
◼️ незакрытый дашборд — и вот уже криптомайнеры используют ваш кластер;
◼️ под с root-доступом — и злоумышленник получает контроль над нодой;
◼️ логи с паролями доступны бывшим сотрудникам — и вот уже вы находите их в сливах.
Даже если работаете с k8s давно, не факт, что вы знаете все нюансы безопасности в Kubernetes! Что делать? Прокачивать security.
👉 4 августа стартует практический курс «Безопасность в Kubernetes», на котором вы на реальных кейсах научитесь обеспечивать безопасность контейнера, а с ним и проекта, и максимально усложнять жизнь злоумышленникам.
🔥 Можно забрать со скидкой 50% по промокоду LETO2025!
Узнать подробности и занять место на курсе — по ссылке.
8 729
Repost from localhost
С днём сисадмина! 🍺
Предлагаю в очередной раз насладиться классикой :)
localhost › IT-юмор
8 729
⚙️ Подготовка эффективной среды для написания 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
8 729
+5
erid: 2W5zFGjfLwi
RYBE — одежда с твоим языком программирования.
Где два айтишника могут познакомиться?
В офисе и на конференции. Нам этого мало. Мы захотели объединить людей, у которых одни интересы. Дать возможность узнать друг друга. В метро, на прогулке, в офисе, на конференции, в походе, в баре, в самолёте.
В каком-то смысле это мерч для твоего языка программирования.
А что еще?
- отшиваемся в Москве;
- плотный премиум-хлопок;
- фичи типа люверсов для крепления пропуска, кармана для наушников и салфетки для очков
Выбирай свой язык, заказывай, дари, носи сам: http://rybe.store/
Наш tg: @rybe_store
8 729
⚙️ Shfmt
✔️Инструмент командной строки для форматирования скриптов оболочки. Он служит в качестве парсера, форматировщика и интерпретатора.
➡️ Некоторые возможности Shfmt:
💠Форматирование скриптов. Shfmt позволяет привести код к стандартному стилю, что облегчает его чтение и поддержку.
💠Список неотформатированных файлов. Этот функционал полезен, например, в средах непрерывной интеграции (CI), где необходимо автоматически соблюдать правила стиля кода.
💠Запись результата в файл. По умолчанию вывод форматирования отображается в терминале, но с помощью опции
--write результат можно записать в файл.
💠Упрощение кода. Shfmt позволяет удалять избыточные синтаксические элементы и упрощать скрипт, где это возможно.
▶️Shfmt поддерживает такие оболочки, как POSIX Shell, Bash и mksh.
🐙 Перейти на Github
🔨 bash_help8 729
⚙️ Bashdb (The Bash Debugger Project)
✔️Отладчик исходного кода для bash, который использует синтаксис команд gdb.
▶️Цель bashdb — позволить пользователю видеть, что происходит «внутри» скрипта bash во время его выполнения.
➡️ Некоторые возможности bashdb, которые помогают находить ошибки:
💠запускать скрипт с указанием любых параметров, которые могут влиять на его поведение;
💠останавливать скрипт по заданным условиям;
💠исследовать, что произошло после остановки скрипта;
💠изменять элементы скрипта, чтобы можно было экспериментировать с исправлением ошибок.
▶️Кроме отладки скриптов, написанных на bash, bashdb можно использовать для изучения программирования на этом языке.
🐙 Перейти на Github
🔨 bash_help
8 729
⚙️ tree-sitter-bash
✔️Библиотека для парсинга кода на языке Bash, разработанная на основе библиотеки Tree-sitter. Это синтаксическое дополнение (grammar) для Tree-sitter, которое позволяет анализировать структуру кода на Bash.
▶️Библиотека строит синтаксическое дерево для исходного файла и эффективно обновляет его при изменении кода. Это позволяет:
💠Выявлять конструкции языка (ключевые слова, переменные, функции) и применять отдельные цвета для подсветки кода.
💠Находить определения функций, отслеживать использование переменных и выполнять автоматический рефакторинг (например, переименовывать переменные или функции).
💠Статически анализировать код без его выполнения, обнаруживать общие проблемы или соблюдать правила стиля.
➡️ Некоторые особенности библиотеки tree-sitter-bash:
💠Инкрементальный парсинг — при изменении кода исходный файл не обрабатывается целиком, обрабатывается только изменённая часть.
💠Обработка ошибок — Tree-sitter понимает, какая часть кода (синтаксического дерева) лишняя, что позволяет текстовым редакторам подсвечивать только ошибочные участки кода.
💠Поддержка запросов — можно использовать запросы для поиска первого и последнего параметров функции.
▶️Библиотека tree-sitter-bash используется в проектах, которые анализируют код на языке Bash, например:
💠Инструменты для подсветки кода — tree-sitter помогает идентифицировать конструкции языка и применять отдельные цвета.
💠Инструменты для навигации по коду — с помощью синтаксического дерева можно находить определения функций, отслеживать использование переменных.
🐙 Перейти на Github
🔨 bash_help
8 729
Repost from 1337
🎉 Большой розыгрыш от крупнейшего IT-медиа 1337, легендарного паблика Рифмы и Панчи, канала Техно.
Победителей будет много, а для участия нужны лишь пара кликов:
1. Подписаться на Рифмы и Панчи, 1337 и на Техно.
2. Нажать «Участвовать» под этим постом
Что по призам:
1 место - Iphone 16 Pro 2 место - PS5 Slim 3 место - Nintendo Switch 2 4-10 места - 10 000 рублей на картуПобедителей определим 21 июля в 18:00 МСК. Всем удачи!
8 729
⚙️ Шпаргалка по скобкам в Bash — для тех, кто путается между `[]`, `{}`, `$( )` и остальными
✔️На одной картинке — все популярные скобки и окружения в Bash:
$(), {}, [], $(( )), ${}, () и [[ ]].
➡️ Когда и зачем использовать:
💠условия и проверки
💠подстановки значений
💠арифметика
💠группировка команд
💠модификация переменных
▶️Минимум теории — максимум пользы, чтобы больше не гадать, какие скобки ставить.
🔨 bash_help8 729
«…У меня всё работает локально» — и вот ты уже второй час копаешься в логах Jenkins, а выкатка задерживается…😬
Команды, которые автоматизируют CI/CD, не зависят от ручных сборок и человеческого фактора. Их инженеры спят спокойно и при этом ценятся выше — потому что стабильный пайплайн экономит часы работы всей команды.
👉🏻21 июля стартует курс «CI/CD с Jenkins», на котором вы поймёте, как автоматизировать процесс интеграции и поставки, сократить количество багов и ускорить релизы.
Вы научитесь:
🔵 настраивать Jenkins с нуля — от плагинов до облачных агентов;
🔵 писать надёжные пайплайны и понимать, почему они сломались;
🔵 деплоить в Kubernetes — чтобы ваш код летел в прод, а не в ошибки.
Пройдете путь от настройки первого плагина и создания простого пайплайна до Jenkins as code и внедрения в Kubernetes. Без лишней теории, только то, что используют в топовых командах.
❗️По промокоду LETO2025 на курс действует скидка 50%
Успейте забрать обучение с выгодой и вывести свои навыки автоматизации на уровень, за который платят больше.
➡️ Занять место со скидкой
8 729
⚙️ Шесть полезных трюков в работе с Linux
✔️Если вы администрируете сервер c Linux-based операционной системой и вам часто приходится работать с bash - небольшие трюки ниже вам обязательно пригодятся, если вы с ними еще не знакомы.
💠Первый трюк - табуляция. Многие, когда только начинают работать с Linux системами не знают об этой фиче, но она очень сильно упрощает жизнь. Табуляция - это завершение команд и названий файлов после нажатия на Tab. Когда это может быть полезно? К примеру, вы забыли как пишется команда или файл имеет длинное название, содержащее в себе много информации- номер версии, разрядность и так далее - начните писать название файла и нажмите на клавишу Tab - и сразу все получится!
💠Второй трюк - пайпирование. Пайпом в Linux системах называется символ
| - он позволяет отправлять вывод одной команды в другую. К примеру, команда ls выводит список файлов в директории и команда grep возвращает результаты поиска по заданным параметром. С помощью пайпа эти две команды можно скомбинировать - например если вам нужно найти в директории конкретный файл (в данном случае - некую аудиозапись, которая начинается как recording010101:
ls | grep recording010101
💠Третий трюк - использование маски, которая обозначается символом * - звездочка. К примеру, если нужно удалить все файлы, которые начинаются на слово recording01, то можно ввести следующую команду:
rm recording01*
Это может быть очень полезным при написании скриптов, которые удаляют по крону старые логи или файлы аудио-записей. Но с данной командой нужно быть очень аккуратным - если забыть проставить критерии поиска, то команда вида rm * удалит всё содержимое директории.
💠Четвертый трюк - вывод команды в файл. Это делается с помощью символа >. Сценариев использования масса, как пример приведу вывод команды ls в текстовый файл (ниже) - если у вас в директории очень большое количество файлов, то, для общего понимания что же именно в ней находится будет проще работать с текстовым файлом или же можно запустить рекурсивный скрипт с занесением содержимого всех каталогов в текстовые, например:
ls > testfile.txt
💠Пятый трюк - быстрая смена директории. Смена директории на домашнюю директории конкретного юзера с помощью символа ~. Просто введите cd ~ и вы попадете в директорию /home/user.
💠Шестой трюк - это запуск команды по условию и запуск команды в бэкграунде (фоновый процесс). Для этого служит символ & .
Если хотите запустить, к примеру, Wireshark в бэкграунде, необходимо написать wireshark & - по умолчанию Bash запускает каждую программу в текущем терминале. Поэтому это может очень пригодиться, если вам нужно выполнять какую-то программу и все ещё пользоваться тем же терминалом. А если нужно запустить Wireshark через какое-то время, то можно воспользоваться командой && - к примеру, sleep 360 && wireshark - это запустит wireshark через 6 минут. Сама команда sleep не делает ничего, это, грубо говоря, просто условный таймер.
🖼️ Ссылка на источник
🔨 bash_help8 729
Освоите методы мониторинга черного и белого ящика на открытом уроке «Мониторинг распределенных систем»
Зачем нужен мониторинг в распределенных системах и в каких случаях он критичен?
Изучите на практике как правильно ставить задачи для мониторинга, чтобы получать полезные и точные данные
✅ Управляй доступностью и надёжностью в ведущих компаниях: стань экспертом SRE!
SRE — это не просто тренд, а стандарт управления IT-инфраструктурой в крупных компаниях. Хочешь играть по правилам, а не тушить пожары?
⬆️ Протестируй курс «SRE практики и инструменты» на открытом уроке
https://tglink.io/70625c2754fb?erid=2W5zFJGJo6p
#реклама
О рекламодателе
8 729
⚙️ awesome-shell
✔️Репозиторий на GitHub, который представляет собой список ресурсов для работы в среде оболочки. Это коллекция инструментов, скриптов и фреймворков, связанных с оболочкой, с акцентом на повышение производительности для разработчиков и системных администраторов.
▶️Проект собирает и организует широкий спектр команд и утилит для оболочки, чтобы помочь пользователям улучшить рабочий процесс и эффективность.
➡️ Некоторые особенности:
💠Категоризация — команды и утилиты разделены на разные разделы, например, обработка текста, управление файлами, системное администрирование, контроль версий, управление сетью.
💠Документация и описания — каждый ресурс в списке включает краткое описание, ссылки на документацию и примеры использования.
💠Вклад сообщества — проект поощряет вклад пользователей, позволяя предлагать новые ресурсы и улучшения.
➡️ В репозиторий включены:
💠Инструменты для работы в оболочке — поиск, закладки, мультиплексинг, инструменты для управления несколькими конфигурациями оболочки.
💠Инструменты для разработки скриптов — библиотеки для упрощения написания скриптов, инструменты для тестирования скриптов.
💠Инструменты для обработки видео и аудиофайлов — например, программа для загрузки видео с YouTube.com и других видеосайтов.
🐙 Перейти на Github
🔨 bash_help
8 729
Пишем для тех, кто на «ты» с IT. Облачные технологии, цифровая трансформация, вебинары, кейсы из бизнеса и реальные сценарии работы IaaS, 1С, VDI, GPU и не только.
Подборка материалов:
— Тестирование 1С на разных платформах: AlmaLinux, Ubuntu, Windows
— AMD или Intel, Windows или Ubuntu: что выбрать для работы с 1С
— Как использовать WebUI для Nginx
— Исправление ошибок RDP в Windows
— Как правильно хранить бэкапы, чтобы оставить их «живыми»
— Как защитить сервер от шифровальщиков и не потерять данные
— Развертывание сервера 1С на Astra Linux
⛅️ Присоединяйся к mClouds — здесь пишут инженеры, а не маркетологи. Без воды и заезженных штампов. Только практический IT-контент, который помогает расти в профессии.
#реклама
О рекламодателе
8 729
⚙️ server-web-migration
✔️Скрипт для миграции серверов Web и MySQL. Цель проекта — автоматизировать процесс миграции данных с одного сервера на другой.
▶️Можно перемещать файлы, MySQL или оба одновременно (на одно выполнение — только одна папка и база данных).
➡️ Особенности:
💠Скрипт копирует файлы и базу данных через SSH и восстанавливает их на удалённый сервер (требуется SSH и некоторые разрешения).
💠Можно использовать скрипт для локальной резервной копии, но он не ориентирован на восстановление после резервной копии.
💠Есть возможность автоматизировать полный перевод с помощью другого файла-шаблона.
➡️ Требования:
💠Bash
💠scp (клиент и сервер)
💠ssh (клиент и сервер)
🐙 Перейти на Github
🔨 bash_help
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
