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

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
⚙️ Скрипт для мониторинга системы Linux

✔️Мониторинг ОС является неотъемлемой частью работы системного администратора. Он позволяет выявлять и устранять потенциальные проблемы до того, как они приведут к сбоям или нарушениям в работе компьютера.

▶️Скрипт, который мы будем использовать для мониторинга операционной системы, выглядит следующим образом:
#! /bin/bash
# Сброс всех переменных, которые может использовать система
# Очистка экрана терминала
clear

unset tecreset os architecture kernelrelease internalip externalip nameserver loadaverage

while getopts iv name
do
case $name in
i)iopt=1;;
v)vopt=1;;
*)echo "Invalid arg";;
esac
done

if [[ ! -z $iopt ]]
then
{
wd=$(pwd)
basename "$(test -L "$0" && readlink "$0" || echo "$0")" > /tmp/scriptname
scriptname=$(echo -e -n $wd/ && cat /tmp/scriptname)
su -c "cp $scriptname /usr/bin/monitor" root && echo "Congratulations! Script Installed, now run monitor Command" || echo "Installation failed"
}
fi

if [[ ! -z $vopt ]]
then
{
echo -e
}
fi

if [[ $# -eq 0 ]]
then
{

# Определение переменной tecreset
tecreset=$(tput sgr0)

# Проверка подключения к Интернету
ping -c 1 google.com &> /dev/null && echo -e '\E[32m'"Internet: $tecreset Connected" || echo -e '\E[32m'"Internet: $tecreset Disconnected"

# Определение типа ОС
os=$(uname -o)
echo -e '\E[32m'"Operating System Type :" $tecreset $os

# Определение версии и названия выпуска ОС
cat /etc/os-release | grep 'NAME\|VERSION' | grep -v 'VERSION_ID' | grep -v 'PRETTY_NAME' > /tmp/osrelease
echo -n -e '\E[32m'"OS Name :" $tecreset && cat /tmp/osrelease | grep -v "VERSION" | cut -f2 -d\"
echo -n -e '\E[32m'"OS Version :" $tecreset && cat /tmp/osrelease | grep -v "NAME" | cut -f2 -d\"

# Проверка архитектуры
architecture=$(uname -m)
echo -e '\E[32m'"Architecture :" $tecreset $architecture

# Проверка выпуска ядра
kernelrelease=$(uname -r)
echo -e '\E[32m'"Kernel Release :" $tecreset $kernelrelease

# Определение имени хоста
echo -e '\E[32m'"Hostname :" $tecreset $HOSTNAME

# Определение внутреннего IP
internalip=$(hostname -I)
echo -e '\E[32m'"Internal IP :" $tecreset $internalip

# Определение публичного IP
externalip=$(curl -s ipecho.net/plain;echo)
echo -e '\E[32m'"External IP : $tecreset "$externalip

# Проверка DNS
nameservers=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}')
echo -e '\E[32m'"Name Servers :" $tecreset $nameservers

# Проверка вошедших в систему пользователей
who>/tmp/who
echo -e '\E[32m'"Logged In users :" $tecreset && cat /tmp/who

# Мониторинг использования ОЗУ и SWAP
free -h | grep -v + > /tmp/ramcache
echo -e '\E[32m'"Ram Usages :" $tecreset
cat /tmp/ramcache | grep -v "Swap"
echo -e '\E[32m'"Swap Usages :" $tecreset
cat /tmp/ramcache | grep -v "Mem"

# Мониторинг использование диска
df -h| grep 'Filesystem\|/dev/sda*' > /tmp/diskusage
echo -e '\E[32m'"Disk Usages :" $tecreset
cat /tmp/diskusage

# Проверка средней нагрузки
loadaverage=$(top -n 1 -b | grep "load average:" | awk '{print $10 $11 $12}')
echo -e '\E[32m'"Load Average :" $tecreset $loadaverage

# Определение длительности сеанса работы ОС
tecuptime=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)
echo -e '\E[32m'"System Uptime Days/(HH:MM) :" $tecreset $tecuptime

# Сброс значений переменных
unset tecreset os architecture kernelrelease internalip externalip nameserver loadaverage

# Удаление временных файлов
rm /tmp/osrelease /tmp/who /tmp/ramcache /tmp/diskusage
}
fi
shift $(($OPTIND -1))


▶️Прежде чем использовать этот сценарий, установите для файла с кодом следующие настройки доступа:
chmod 755 monitor.sh

▶️Особенностью этого скрипта является то, что его можно установить в ОС, как утилиту. Для этого следует выполнить следующую команду:
./monitor.sh -i

▶️Затем скрипт запросит ввести пароль пользователя root. После завершения установки скрипта, для его запуска требуется просто выполнить команду monitor

▶️Вы можете и не устанавливать скрипт для его работы. Но в таком случае вам придется вручную запускать скрипт, выполняя следующую команду:
./path/to/script/monitor.sh


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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥73
⚙️ bash-git-prompt — отображение информации о текущем репозитории Git

✔️Инструмент, который интегрирует статус Git прямо в приглашение командной строки, позволяя пользователям быстро идентифицировать состояние репозитория.

➡️ Некоторые элементы, которые отображаются в приглашении:
💠Название ветки — показывает текущую ветку.
💠Индикатор отложенных изменений — визуальный сигнал, если есть изменения, подготовленные для фиксации.
💠Предупреждение о неотслеживаемых файлах — оповещает, когда в репозитории есть неотслеживаемые файлы.
💠Периодическая проверка статуса с удалённой ветки — если на удалённой ветке есть новые коммиты, это отображается в приглашении (проверка запускается каждые 5 минут, но может быть отключена).
💠Отображение статуса выхода последней команды — если команда не работает, в приглашении появляется красный символ X и номер статуса выхода.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥32😐1
Полный контроль над Kubernetes через мониторинг и логи

⚡️Хотите уверенно выявлять сбои, мониторить метрики и быстро находить ошибки в k8s? За 12 часов теории и 44 часа практики вы не только освоите широкий стек инструментов, но и best practices по ним.

⚡️Курс «Мониторинг и логирование инфраструктуры в Kubernetes» — быстрый способ научиться выстраивать эффективную систему мониторинга. На обучении вы поймёте: 
- Как обеспечить долгосрочное хранение метрик распределённо месяцы и годы для анализа динамики и сравнения графиков
- Какие метрики стоит собирать с помощью Prometheus
- Как визуализировать мониторинг с помощью Grafana и как грамотно настроить алерты

☄️Старт — 7 июля. Прямо сейчас по промокоду LETO2025 вы можете занять место со скидкой ❗️50%❗️
*промокод вводится при оформлении оплаты

Вводите в эксплуатацию мониторинг и логирование инфраструктуры в k8s сразу после курса и станьте ещё востребованнее на рынке IT. 

👉🏻Смотреть программу и применить скидку
2👍1
⚙️ Сравнение строк в Bash: 3 практических примера

✔️Работа со строками является частью любого языка программирования. Сценарии оболочки Bash ничем не отличаются. Даже синтаксис практически тот же.
В этом кратком руководстве вы увидите, как сравнивать строки в сценариях оболочки Bash.

▶️Вот как вы сравниваете строки в Bash.
if [ "$string1" == "$string2" ]

▶️Вы также можете использовать строку напрямую вместо использования переменной.
if [ "$string1" == "This is my string" ]


➡️ Проверьте, равны ли две строки
▶️Если вы хотите проверить, равны ли две строки, вот пример:
#!/bin/bash
string1="MyString"
string2="MyString"
if [ "$string1" == "$string2" ]
then
echo "Equal Strings"
else
echo "Strings not equal"
fi

▶️Обратите внимание на пробелы.
Между [ и именем переменной и оператором равенства == должен быть пробел. Если вы пропустите здесь какой-либо пробел, вы увидите ошибку типа «ожидается унарный оператор» или отсутствие «]».

➡️ Проверьте, не равны ли строки в Bash
▶️Вместо проверки качества давайте сделаем наоборот и проверим неравенство. Bash также предоставляет оператор отрицания, чтобы вы могли легко использовать условие «если не равно» в сценариях оболочки.
if [ "$string1" != "Not MyString" ]

▶️Полный пример выглядит так:
#!/bin/bash
string1="MyString"

if [ "$string1" != "Not MyString" ]
then
echo "Not Equal Strings"
else
echo "Strings equal"
fi


➡️ Проверьте, является ли строка нулевой или пустой в Bash
▶️В отличие от некоторых других языков, таких как C++, в Bash вы можете проверить, является ли строка нулевой или пустой, с помощью одной единственной команды:
if [ -z "$VAR" ]

-z фактически проверяет, равна ли длина переменной нулю или нет. Если переменная не установлена или она пуста (равна « »), длина будет равна нулю и, следовательно, условие вернет true.

Полный пример:
#!/bin/bash
string1=
string2=""
if [ -z "$string1" ]
then
echo "Null Strings"
fi
if [ -z "$string2"]
then
echo "Empty String"
fi


➡️ Примечание об использовании одинарной скобки «[]» и двойной скобки «[[]]» в сценариях bash

▶️Вы также можете использовать оператор if с двойными скобками, например:
if [[ "$string1" == "My String" ]]

▶️Одинарная скобка — это старое соглашение Posix, имеющее некоторые недостатки. Если вы не используете двойные кавычки вокруг переменных и переменная не определена, она исчезнет из кода, и это приведет к синтаксической ошибке if [ $string1 == "My String" ]
▶️Если переменная $string1 пуста или не определена в приведенном выше коде, эта строка станет эквивалентной if [ == "$string2" ]

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥54
Работать и не уставать, достигать цели, но делать это в кайф - реально!
Как научиться делать дела и не выгорать?

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

▪️ Как научиться отвлекаться от работы и отдыхать?
▪️ Как совместить кучу рабочих задач и время с семьей?
▪️ Как справиться с прокрастинацией?
▪️ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит?

Подписывайтесь на канал @vadimpetrovpsi и научитесь работать без упахивания, выгорания и ущерба для личной жизни!

👨🏻‍💻 Псс. Заходите в закреп канала - там много полезного, и даже бесплатный мини-курс по выходу из апатии.
3🔥2👍1
⚙️ Как настроить автоматическое обновление SSL-сертификатов Let’s Encrypt с помощью Certbot на Ubuntu

✔️Let’s Encrypt — это бесплатный центр сертификации. Он позволяет выпускать SSL-сертификаты для HTTPS. Certbot — это утилита для автоматического получения и обновления этих сертификатов. Комбо для тех, кто не хочет возиться с ручной генерацией ключей и походами в коммерческие CA.

➡️ Установка Certbot
sudo apt update
sudo apt install certbot

💠Certbot нужно запускать на том же сервере, для которого вы хотите выпустить сертификат.

▶️Получение сертификата (и вывод информации о текущих сертификатах)
sudo certbot certonly --standalone -d project.com -d www.project.com
sudo certbot certificates

💠 --standalone означает, что Certbot временно поднимет собственный сервер на 80 порту для валидации домена. Проверьте, что порт 80 не занят! Иначе ничего не заработает.

▶️Если там ваш Nginx или Docker — остановите его на время выполнения команды:
sudo systemctl stop nginx


➡️ Автоматическое обновление через systemd
▶️После установки Certbot автоматически добавляет systemd-таймер:
systemctl list-timers | grep certbot

💠Проверить, что автообновление работает:
sudo certbot renew --dry-run

💠Если всё хорошо:
Certbot dry-run was successful.

💠Логи последних обновлений:
journalctl -u certbot.service --no-pager --since "2 days ago"


➡️ Обновление через Cron
▶️Иногда systemd-таймеры неудобны, особенно если вы настраиваете всё через Ansible или shell-скрипты. В этом случае можно использовать Cron.
💠Отключаем таймер:
sudo systemctl stop certbot.timer
sudo systemctl disable certbot.timer

💠Добавляем Cron-задачу:
sudo crontab -e

💠Пример:
0 0 1 * * /usr/bin/certbot renew --standalone --quiet

💠Чтобы узнать точный путь к certbot, используйте:
which certbot


➡️ Скрипт на все случаи жизни
▶️Вместо описания всего в кроне, можно создать bash-скрипт
#!/bin/bash

APP_PATH="/home/projects/project"
DOMAIN="project.com"

FULL_CHAIN_SRC="/etc/letsencrypt/live/${DOMAIN}/fullchain.pem"
PRIVATE_KEY_SRC="/etc/letsencrypt/live/${DOMAIN}/privkey.pem"
FULL_CHAIN_DIST="${APP_PATH}/volumes/etc/ssl/certs/project_com.full.crt"
PRIVATE_KEY_DIST="${APP_PATH}/volumes/etc/ssl/private/project_com.key"

echo "Starting script execution: $(date "+%Y-%m-%d %H:%M:%S")"

echo "Stopping the service..."
systemctl stop my-project.service

echo "Renewing the certificates..."
/usr/bin/certbot renew --standalone --quiet
/usr/bin/certbot certificates

echo "Copying the certificates to the project..."
cp -f "$FULL_CHAIN_SRC" "$FULL_CHAIN_DIST"
cp -f "$PRIVATE_KEY_SRC" "$PRIVATE_KEY_DIST"

echo "Setting correct permissions for the certificates..."
chmod 644 "$FULL_CHAIN_DIST"
chmod 644 "$PRIVATE_KEY_DIST"

echo "Running the service..."
systemctl start my-project.service

echo "End of script execution: $(date "+%Y-%m-%d %H:%M:%S")"

▶️А в кроне вызываем его так:
0 0 1 * * sh /home/projects/project/cert-renew.sh >> /var/log/project-cert-renew.log 2>&1


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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥84
⚙️ Teller

✔️Инструмент управления секретами с открытым исходным кодом для разработчиков. Он позволяет безопасно хранить и управлять секретами, учётными данными и данными конфигурации в разных средах и у облачных провайдеров.

➡️ Некоторые возможности Teller:
💠создание и управление секретами у нескольких облачных провайдеров, таких как AWS, Azure, GCP и других;
💠шифрование и дешифрование секретов с использованием стандартных отраслевых алгоритмов;
💠генерация динамических секретов по запросу, таких как учётные данные базы данных, ключи SSH или токены OAuth;
💠изменение и отзыв секретов автоматически или вручную, в зависимости от политик или событий;
💠аудит и отслеживание активности и использования секретов с помощью журналов и метрик;
💠сотрудничество с членами команды и безопасный обмен секретами с использованием ролей и разрешений.

▶️Teller совместим с популярными инструментами и фреймворками, такими как Terraform, Kubernetes, Docker, Ansible и другими.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2
⚙️ Brabus Recon Suite (BRS)

✔️Набор Bash-скриптов для оффлайн-разведки и внутреннего аудита.

➡️ О BRS
💠CLI-интерфейс на Bash
💠Работает с любых путей, без установки
💠Сохраняет все результаты по папкам с метками времени
💠Поддерживает 7 языков
💠Не требует облаков, токенов или сторонних API

➡️ Что входит
💠network_discovery.sh — поиск устройств в сети (ping, arp, быстрая портовая разведка)
💠port_scanner.sh — подробный портскан через nmap, masscan
💠vulnerability_scanner.sh — скрипты nmap, nikto, sqlmap, слабые пароли
💠system_info.sh — вывод сведений об ОС, железе, конфигурации, защите
💠attack_tools.sh — брутфорс и активные тесты (опционально, с предупреждением)

➡️ Поддерживаемые инструменты
💠nmap, masscan — сканеры портов
💠hydra, john — проверка паролей
💠nikto, sqlmap — уязвимости веба и SQL
💠ettercap, aircrack-ng — сетевые проверки

▶️Интерфейс поддерживает: EN, RU, DE, FR, ES, ZH, TR . Язык выбирается в configs/language.conf или на первом запуске.

➡️ Минимальные требования
💠Ubuntu 22.04+ / Debian / любая bash-совместимая система
💠2ГБ+ свободного места для логов
💠Права на установку зависимостей (если не установлены)

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥2
😳 Стыдно за ваш пайплайн? Исправьте это за 3 недели

Ваши пайплайны нестабильны, а на собеседованиях теряетесь без практики? Приглашаем вас на практикум для инженеров: будем решать реальные задачи и шлифовать пайплайны с фидбэком от эксперта.

Всего за 3 недели практикума вы:

👉 Решите 3 реальных кейса — CI для проекта на Python, пересборка проекта с включением изменений, траблшутинг
👉 Получите фидбэк от эксперта — Вячеслав Федосеев (TeamLead DevOps в «Честный знак», 20+ лет в IT) разберёт ваши решения и ошибки
👉 Будете тренироваться на best practices — только практика с реальными инженерными задачами
👉 Сможете учиться без отрыва от работы — 1 задача в неделю
👉 Оформите портфолио для собеседования — решения останутся у вас в репозитории, чтобы сразу показать на собеседовании
☑️ Станете увереннее и поймёте, как пайплайн работает изнутри

❗️Для инженеров с опытом от 1 года, знакомых с Git и GitLab CI, которым не хватает практики и фидбэка.

Ознакомиться с программой и присоединиться к обучению — по ссылке
1👍1😐1
⚙️ server-web-migration

✔️Скрипт для миграции серверов Web и MySQL. Цель проекта — автоматизировать процесс миграции данных с одного сервера на другой.

▶️Можно перемещать файлы, MySQL или оба одновременно (на одно выполнение — только одна папка и база данных).

➡️ Особенности:
💠Скрипт копирует файлы и базу данных через SSH и восстанавливает их на удалённый сервер (требуется SSH и некоторые разрешения).
💠Можно использовать скрипт для локальной резервной копии, но он не ориентирован на восстановление после резервной копии.
💠Есть возможность автоматизировать полный перевод с помощью другого файла-шаблона.

➡️ Требования:
💠Bash
💠scp (клиент и сервер)
💠ssh (клиент и сервер)

🐙 Перейти на Github
 
🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Пишем для тех, кто на «ты» с IT. Облачные технологии, цифровая трансформация, вебинары, кейсы из бизнеса и реальные сценарии работы IaaS, 1С, VDI, GPU и не только. 

Подборка материалов:
Тестирование 1С на разных платформах: AlmaLinux, Ubuntu, Windows
AMD или Intel, Windows или Ubuntu: что выбрать для работы с 1С
Как использовать WebUI для Nginx
Исправление ошибок RDP в Windows
Как правильно хранить бэкапы, чтобы оставить их «живыми»
Как защитить сервер от шифровальщиков и не потерять данные
Развертывание сервера 1С на Astra Linux

⛅️ Присоединяйся к mClouds — здесь пишут инженеры, а не маркетологи. Без воды и заезженных штампов. Только практический IT-контент, который помогает расти в профессии.

#реклама
О рекламодателе
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥1😐1
⚙️ awesome-shell

✔️Репозиторий на GitHub, который представляет собой список ресурсов для работы в среде оболочки. Это коллекция инструментов, скриптов и фреймворков, связанных с оболочкой, с акцентом на повышение производительности для разработчиков и системных администраторов.

▶️Проект собирает и организует широкий спектр команд и утилит для оболочки, чтобы помочь пользователям улучшить рабочий процесс и эффективность.

➡️ Некоторые особенности:
💠Категоризация — команды и утилиты разделены на разные разделы, например, обработка текста, управление файлами, системное администрирование, контроль версий, управление сетью.
💠Документация и описания — каждый ресурс в списке включает краткое описание, ссылки на документацию и примеры использования.
💠Вклад сообщества — проект поощряет вклад пользователей, позволяя предлагать новые ресурсы и улучшения.

➡️ В репозиторий включены:
💠Инструменты для работы в оболочке — поиск, закладки, мультиплексинг, инструменты для управления несколькими конфигурациями оболочки.
💠Инструменты для разработки скриптов — библиотеки для упрощения написания скриптов, инструменты для тестирования скриптов.
💠Инструменты для обработки видео и аудиофайлов — например, программа для загрузки видео с YouTube.com и других видеосайтов.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥3
Освоите методы мониторинга черного и белого ящика на открытом уроке «Мониторинг распределенных систем»

Зачем нужен мониторинг в распределенных системах и в каких случаях он критичен?

Изучите на практике как правильно ставить задачи для мониторинга, чтобы получать полезные и точные данные

Управляй доступностью и надёжностью в ведущих компаниях: стань экспертом SRE!

SRE — это не просто тренд, а стандарт управления IT-инфраструктурой в крупных компаниях. Хочешь играть по правилам, а не тушить пожары?

⬆️ Протестируй курс «SRE практики и инструменты» на открытом уроке
https://tglink.io/70625c2754fb?erid=2W5zFJGJo6p

#реклама
О рекламодателе
2
⚙️ Шесть полезных трюков в работе с 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_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114😐4🔥3
«…У меня всё работает локально» — и вот ты уже второй час копаешься в логах Jenkins, а выкатка задерживается…😬

Команды, которые автоматизируют CI/CD, не зависят от ручных сборок и человеческого фактора. Их инженеры спят спокойно и при этом ценятся выше — потому что стабильный пайплайн экономит часы работы всей команды.

👉🏻21 июля стартует курс «CI/CD с Jenkins», на котором вы поймёте, как автоматизировать процесс интеграции и поставки, сократить количество багов и ускорить релизы.

Вы научитесь:
🔵 настраивать Jenkins с нуля — от плагинов до облачных агентов;
🔵 писать надёжные пайплайны и понимать, почему они сломались;
🔵 деплоить в Kubernetes — чтобы ваш код летел в прод, а не в ошибки.

Пройдете путь от настройки первого плагина и создания простого пайплайна до Jenkins as code и внедрения в Kubernetes. Без лишней теории, только то, что используют в топовых командах.

❗️По промокоду LETO2025 на курс действует скидка 50%

Успейте забрать обучение с выгодой и вывести свои навыки автоматизации на уровень, за который платят больше.

➡️ Занять место со скидкой
2
⚙️ Шпаргалка по скобкам в Bash — для тех, кто путается между `[]`, `{}`, `$( )` и остальными

✔️На одной картинке — все популярные скобки и окружения в Bash: $(), {}, [], $(( )), ${}, () и [[ ]].

➡️ Когда и зачем использовать:
💠условия и проверки
💠подстановки значений
💠арифметика
💠группировка команд
💠модификация переменных

▶️Минимум теории — максимум пользы, чтобы больше не гадать, какие скобки ставить.

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥86
Forwarded 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 МСК. Всем удачи!
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ tree-sitter-bash

✔️Библиотека для парсинга кода на языке Bash, разработанная на основе библиотеки Tree-sitter. Это синтаксическое дополнение (grammar) для Tree-sitter, которое позволяет анализировать структуру кода на Bash.

▶️Библиотека строит синтаксическое дерево для исходного файла и эффективно обновляет его при изменении кода. Это позволяет:
💠Выявлять конструкции языка (ключевые слова, переменные, функции) и применять отдельные цвета для подсветки кода.
💠Находить определения функций, отслеживать использование переменных и выполнять автоматический рефакторинг (например, переименовывать переменные или функции).
💠Статически анализировать код без его выполнения, обнаруживать общие проблемы или соблюдать правила стиля.

➡️ Некоторые особенности библиотеки tree-sitter-bash:
💠Инкрементальный парсинг — при изменении кода исходный файл не обрабатывается целиком, обрабатывается только изменённая часть.
💠Обработка ошибок — Tree-sitter понимает, какая часть кода (синтаксического дерева) лишняя, что позволяет текстовым редакторам подсвечивать только ошибочные участки кода.
💠Поддержка запросов — можно использовать запросы для поиска первого и последнего параметров функции.

▶️Библиотека tree-sitter-bash используется в проектах, которые анализируют код на языке Bash, например:
💠Инструменты для подсветки кода — tree-sitter помогает идентифицировать конструкции языка и применять отдельные цвета.
💠Инструменты для навигации по коду — с помощью синтаксического дерева можно находить определения функций, отслеживать использование переменных.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥3
⚙️ Bashdb (The Bash Debugger Project)

✔️Отладчик исходного кода для bash, который использует синтаксис команд gdb.

▶️Цель bashdb — позволить пользователю видеть, что происходит «внутри» скрипта bash во время его выполнения.

➡️ Некоторые возможности bashdb, которые помогают находить ошибки:
💠запускать скрипт с указанием любых параметров, которые могут влиять на его поведение;
💠останавливать скрипт по заданным условиям;
💠исследовать, что произошло после остановки скрипта;
💠изменять элементы скрипта, чтобы можно было экспериментировать с исправлением ошибок.

▶️Кроме отладки скриптов, написанных на bash, bashdb можно использовать для изучения программирования на этом языке.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍4🔥3
⚙️ Shfmt

✔️Инструмент командной строки для форматирования скриптов оболочки. Он служит в качестве парсера, форматировщика и интерпретатора.

➡️ Некоторые возможности Shfmt:
💠Форматирование скриптов. Shfmt позволяет привести код к стандартному стилю, что облегчает его чтение и поддержку.
💠Список неотформатированных файлов. Этот функционал полезен, например, в средах непрерывной интеграции (CI), где необходимо автоматически соблюдать правила стиля кода.
💠Запись результата в файл. По умолчанию вывод форматирования отображается в терминале, но с помощью опции --write результат можно записать в файл.
💠Упрощение кода. Shfmt позволяет удалять избыточные синтаксические элементы и упрощать скрипт, где это возможно.

▶️Shfmt поддерживает такие оболочки, как POSIX Shell, Bash и mksh.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2