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

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
⚠️ Проверьте эффективность IT-поддержки за 15 минут

Как понять, где теряются ресурсы в IT-процессах?
Заполните бесплатный чек-лист, который за 15 минут поможет:

• Выявить слабые места в процессах и оборудовании;
• Проверить скорость обработки запросов;
• Получить рекомендации по оптимизации.


☑️ Получите чек-лист и узнайте, как сделать IT-поддержку вашей компании прозрачной и эффективной.

⬇️ Получить чек-лист
@desnol_itiliumbot
⚙️ Осторожнее с редактированием bash-скриптов

✔️Предположим, я написал такой bash-скрипт с названием delay.sh. Как думаете, что он делает?

#!/bin/bash
sleep 30
#rm -rf --no-preserve-root /
echo "Time's up!


▶️Похоже, он ожидает 30 секунд, а затем выводит сообщение на экран. Здесь никаких фокусов — он делает именно это. Там есть опасная команда в середине, но она закомментирована и не выполняется.

▶️Представьте, что я снова запускаю этот скрипт, но теперь мне не хочется ждать 30 секунд — это слишком долго. Я открываю вторую консоль, меняю sleep 30 на sleep 3, затем сохраняю файл. Как думаете, что будет теперь? Ну, через 30 секунд скрипт удалит все мои файлы.

▶️Так происходит потому, что bash считывает содержимое скрипта фрагментами по мере выполнения, отслеживая смещение в байтах. Когда я удаляю один символ из строки sleep, смещение для начала следующей команды указывает на r в #rm вместо #. С точки зрения интерпретатора, # смещается на предыдущую строку, поэтому он выполняет команду начиная с rm.

▶️Это можно подтвердить, наблюдая за системными вызовами bash в Linux. Вот выдача strace bash delay.sh, с комментариями и в сокращении.

# Открытие скрипта
openat(AT_FDCWD, "delay.sh", O_RDONLY) = 3

# Парсинг первой строчки (до 80 символов)
read(3, "#!/bin/bash\nsleep 30\n#echo \"Don'"..., 80) = 64

# Возврат к началу
lseek(3, 0, SEEK_SET) = 0

# Переключение на на файловый дескриптор 255
dup2(3, 255) = 255

# Чтение 64-байтового куска файла, чтобы получить команду
read(255, "#!/bin/bash\nsleep 30\n#echo \"Don'"..., 64) = 64

# Поместить курсор обратно в конец команды, которую мы собираемся выполнить
# Offset 21 is the `#`
lseek(255, -43, SEEK_CUR) = 21

# Приостановка выполнения, уход в sleep
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 2072

# До возвращения wait4 файл редактируется с `30` на `3`

# Чтение 64-байтового куска файла, чтобы получить следующую команду
# В этом демо я заменил опасную команду на echo
read(255, "echo \"Don't execute me\"\necho \"Ti"..., 64) = 42

# Bash решает выполнить оба echo одновременно без нового чтения
# Очевидно, что-то идёт не так
write(1, "Don't execute me\n", 17) = 17
write(1, "Time's up!\n", 11) = 11

# Чтение следующего фрагмента и обнаружение конца файла
read(255, "", 64) = 0


➡️ Поэтому будьте осторожны при запуске редактировании bash-скрипта, который выполняется в данный момент. Он может выполнить неверную команду или сделать что-то очень неожиданное.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Безопасность цифровой инфраструктуры бизнеса — настоящая суперсила! В 2025 году желаем безупречной работы систем, кода, который компилируется с первого раза, вдохновляющих проектов и, конечно, выгодных решений.

Получайте до 500 ₽ за каждую установку
Яндекс Браузера и выигрывайте призы!

Каждое 27-е число с декабря по февраль мы разыгрываем по 30 призов. Среди них: Станция Дуо, Станция Мини, светодиодные ленты Яндекс и другие брендированные подарки.

Как стать участником розыгрыша:
✔️ Оставьте заявку.
✔️ Зарегистрируйтесь в реферальной программе.
✔️ Рекомендуйте Яндекс Браузер или устанавливайте его на компьютеры.

Все подробности на странице, там же опубликуем результаты. Участвуйте в розыгрыше и начните год с позитивных эмоций и подарков!
⚙️ bash-video

✔️Скрипт для редактирования видео при помощи bash, который помогает с ffmpeg.

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

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Это на 100% практический курс по пентесту, где вы попробуете изученные техники взлома. Курс содержит 65 рабочих и 16 экзаменационных тасков в лаборатории

Запись до 12 декабря! 🎄

Получите практические навыки как в рабочих задачах, так и в Bug Bounty. Промодоступ 7 дней бесплатно!

Программа курса:
- эксплуатация всех актуальных типов уязвимостей, активный / пассивный фаззинг
- SQL Injection и CMD Injection, Cross Site Scripting, PHP injection, Server Side Template injection
- техники повышения привилегий, Client-side атаки (XSS, CSRF)

@Codeby_Academy
Узнать подробнее о курсе 
⚙️ Скрипт для общего мониторинга производительности Linux-системы

#!/bin/bash
# Colors for readability
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${GREEN}===== System Monitoring Script =====${NC}"
# 1. CPU Usage
echo -e "${YELLOW}\n>> CPU Usage: ${NC}"
mpstat | awk '/all/ {print "CPU Load: " $3 "% idle"}'
# 2. Memory Usage
echo -e "${YELLOW}\n>> Memory Usage: ${NC}"
free -h | awk '/Mem/ {print "Total Memory: " $2 "\nUsed: " $3 "\nFree: " $4}'
echo -e "Swap:\n"$(free -h | awk '/Swap/ {print "Total: " $2 ", Used: " $3 ", Free: " $4}')
# 3. Disk Usage
echo -e "${YELLOW}\n>> Disk Usage: ${NC}"
df -h | grep '^/dev' | awk '{print $1 ": " $5 " used, " $4 " available"}'
# 4. Network Traffic
echo -e "${YELLOW}\n>> Network Traffic: ${NC}"
ifstat -i eth0 1 1 | awk 'NR==3 {print "RX: " $1 " KB/s, TX: " $2 " KB/s"}'
# 5. Top 5 Memory Consuming Processes
echo -e "${YELLOW}\n>> Top 5 Memory Consuming Processes: ${NC}"
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 6
# 6. Top 5 CPU Consuming Processes
echo -e "${YELLOW}\n>> Top 5 CPU Consuming Processes: ${NC}"
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 6
# 7. System Logs Monitoring
echo -e "${YELLOW}\n>> Recent Errors in System Logs: ${NC}"
journalctl -p 3 -xb | tail -n 10
echo -e "${GREEN}===== Monitoring Completed =====${NC}"


🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Вебинар
Стекирование коммутаторов Eltex 24хх/34хх серии

🗓 19.12.2024
🕒 14:00 по МСК

План вебинара:
- Особенности реализации стекирования
- Какие имеются ограничения
- Демонстрация работы

👉Регистрация 

👤 Ведущий вебинара:Алексей Листаров — инженер с многолетним опытом работы в крупном операторе связи. Сертифицированный преподаватель Академии Eltex.

#eltex #eltexcm #webinar #вебинар #mes

@eltexcm

Реклама. ООО "ЭЛТЕКС КОММУНИКАЦИИ". ИНН 7714966730.
⚙️ Kernel Hardening Checker — инструмент для проверки параметров усиления безопасности ядра Linux

✔️Инструмент для проверки конфигурации ядра Linux на предмет включения параметров, повышающих его защищенность. Утилита анализирует такие аспекты, как параметры конфигурации Kconfig, строки командной строки ядра и значения Sysctl. Она помогает выявить, какие функции, обеспечивающие безопасность, включены или отключены в текущей конфигурации ядра. Это полезно для оценки уровня защиты от атак и применения лучших практик в области безопасности ядра Linux.

➡️ Инструмент нацелен на поддержку системных администраторов и разработчиков, чтобы упростить настройку защищенного ядра Linux.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Bash скрипты: автоматизация рутины с готовыми примерами кода

✔️Bash-скрипты представляют собой мощный инструмент для автоматизации задач, особенно в Unix-подобных операционных системах, таких как Linux и macOS. Они помогают автоматизировать рутинные задачи, обеспечивая более быструю и эффективную работу.

➡️ Содержание статьи:
▶️Основы Bash скриптов
▶️Создание и запуск скрипта
▶️Примеры скриптов для автоматизации
▶️Советы по оптимизации Bash скриптов
▶️Удобная организация скриптов
▶️GUI программы для bash скриптов

🖼️ Прочитать статью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
✅️ GitHub теперь в Telegram!

Подписывайтесь: @GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Light Articles Technical Library — библиотека статей и заметок для разработчиков

✔️LATL — это сайт, на котором можно найти информацию о программировании на Bash, в том числе примеры программ на этом языке.

➡️ Содержание:
▶️Массивы в bash
▶️Циклы в bash практические примеры
▶️Операции сравнения в Bash
▶️BASH преобразование даты
▶️Условный оператор If/Then в Bash
▶️Удаленное выполнение команд и скриптов
▶️Сборник примеров программ на bash
▶️Некоторые приемы защиты программ на bash
▶️Селектор функций и проверка входных параметров (шаблон)
▶️Маленькие хитрости BASH
▶️Переменные в интерпретаторе bash
▶️BASH: перебор файлов в каталоге
▶️Until в bash
▶️declare и typeset: объявление переменных

🖼️ Перейти на сайт

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Как копировать файлы и папки с исключениями: продвинутые трюки с cp

Иногда нужно скопировать содержимое папки, но исключить определённые файлы или папки. Классический cp это напрямую не поддерживает, но есть несколько хитростей, которые помогут справиться.

#### Пример 1: Копирование всего кроме определённых файлов
Если нужно скопировать всё, кроме файлов с расширением .log, воспользуйся этой командой:

find source_dir -type f ! -name '*.log' -exec cp --parents {} destination_dir/ \;


- find source_dir – ищет файлы в указанной папке.
- **! -name '*.log'** – исключает файлы с расширением .log.
- --parents – сохраняет оригинальную структуру папок.

#### Пример 2: Исключение целой папки
Чтобы пропустить определённую папку, например exclude_dir, используй:

find source_dir -path 'source_dir/exclude_dir' -prune -o -type f -exec cp --parents {} destination_dir/ \;


#### Пример 3: Использование простого скрипта
Вот пример простого скрипта, который копирует файлы и исключает определённые по шаблону:

#!/bin/bash
for file in $(find /путь/к/источнику -type f); do
if [[ "$file" != *исключение* ]]; then
cp --parents "$file" /путь/к/назначению
fi
done


- Заменяешь /путь/к/источнику на папку, откуда копируешь.
- Вместо *исключение* указываешь шаблон для исключения.
- Указываешь /путь/к/назначению, куда копировать.

Запусти этот скрипт, и он разберётся со всеми исключениями.


#### Пример 4: Копирование файлов больше определённого размера
Чтобы выбрать только файлы больше 100 МБ:

find source_dir -type f -size +100M -exec cp --parents {} destination_dir/ \;


На завтра у меня для тебя кое-что интересное: будем разбираться, как настроить KVM и QEMU для виртуализации. Но пока расскажи, что бы ты хотел автоматизировать или оптимизировать в своей работе? Может, я смогу помочь тебе с советом.
____________________

Дополнительный материал:
🧠 - Не трать время на логи! Вот как найти все медленные запросы за 1 минуту
🧠 - Как ускорить MySQL? Простые советы, чтобы твой сервер летал, как на стероидах
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph

#Linux_Commands @LinuxSkill
До сих пор не знаешь как управлять командной строкой?

📱 BashTex - обучающий канал по Linux и Bash с использованием самых лучших и эффективных практик. В канале ты найдешь множество полезной информации:

Быстрое создание пакетов файлов для тестирования
Настройка безопасного SSH-соединения
LDAP: зачем нужен и чем помогает
Мониторинг перебора паролей и блокировка учетных записей
Неочевидно полезные опции команды ls
Углубленное использование find

BashTex поможет прокачать твои скиллы!

Подписывайся - @bashtex
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Сканер tcp-портов на bash

✔️Когда вы работаете с серверами, периодически возникает необходимость посмотреть, какие порты открыты. Одно из лучших средств для этого — nmap, но он не всегда есть под рукой. Зато обычно под рукой есть командная оболочка bash. И ей как раз можно воспользоваться, чтобы написать собственный сканер портов. Не такой быстрый, конечно, но вполне пригодный для использования.

▶️В основе этого скрипта возможность bash отправлять на указанный хост и порт данные. Собственно, сам скрипт portscan.sh:
#!/bin/bash

if [ "$1" == "" ]
then
echo
echo This script scans TCP opened ports on IP or hostname
echo Usage : portscan.sh \ \[start-port\] \[end-port\]
echo start-port equals to 1 by default
echo end-port equals 1024 by default
echo
exit
fi

START_PORT=$2;[ -z "$START_PORT" ] && START_PORT=1
END_PORT=$3;[ -z "$END_PORT" ] && END_PORT=1024
echo Scanning $1 \(ports $START_PORT to $END_PORT\)

PORT_PROTOCOL="tcp"

scan_port(){
PORT_NUMBER=$1
PORT_SCAN_RESULT=`2>&1 echo "" > /dev/$PORT_PROTOCOL/$TARGET_NAME_OR_IP/$PORT_NUMBER | grep connect`
[ "$PORT_SCAN_RESULT" == "" ] && echo $PORT_NUMBER\/$PORT_PROTOCOL' 'open' '`grep $PORT_NUMBER/$PROTOCOL /etc/services | head -n1 | awk '{print $1}'`
}

TARGET_NAME_OR_IP=$1
echo 'PORT STATE SERVICE'

for PORT_NUMBER in `seq $START_PORT $END_PORT`
do
scan_port $PORT_NUMBER
done


▶️В качестве параметров скрипт может принимать от одного до трех параметров. Первый — имя или IP-адрес хоста, второй — начальный порт интервала сканирования, третий — конечный порт интервала сканирования. Если начальный и/или конечный порты не указаны, то выбираются 1 и 1024.

➡️ И результат работы скрипта:
$ ./portscan.sh 192.168.0.9
Scanning 192.168.0.9 (ports 1 to 1024)
PORT STATE SERVICE
21/tcp open ftp
25/tcp open smtp
53/tcp open domain
80/tcp open http
22/tcp open ssh
110/tcp open pop3
111/tcp open sunrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds


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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Приглашаем на бесплатный урок "Повторители, мосты, хабы, медиаконвертеры и коммутаторы. Кто из них выжил и почему? И принципы их работы" 18 декабря в 20:00 (мск). https://otus.pw/wBud/

📌 Этот вебинар — часть курса "Специализация Network Engineer". Хотим предоставить вам возможность разобрать важные аспекты работы с сетями от эксперта ТАС вендора!

🤔 Что вас ждет:

- Разбор принципов работы таких устройств: повторители, мосты, хабы, медиаконвертеры и коммутаторы.
- Как эти устройства использовались в прошлом и какие из них актуальны для современных сетей.
- Сравнение разных типов устройств и их применения в реальных сетевых проектах.

👨‍🏫 Урок проведет Николай Колесов, сертифицированный CISCO специалист с богатым опытом работы (>18 лет) с сетевыми решениями. Работает с ведущими проектами и компаниями и обучает специалистов в области сетевых технологий.

Регистрация ограничена! https://otus.pw/wBud/?erid=LjN8K91RF

#реклама
О рекламодателе
⚙️ Bash: сочетания клавиш для повышения производительности

✔️Работа в среде командной строки, например, в сеансе Bash, может быть гораздо более продуктивной, чем использование графического пользовательского интерфейса. Вот набор сочетаний клавиш.

➡️ Содержание:
▶️Перемещение по командной строке
▶️Использование истории командной строки
▶️Использование аргументов из истории командной строки
▶️Управление историей командной строки
▶️Навигация по каталогам

🖼️ Перейти на сайт

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ NetAlertX

✔️Инструмент для мониторинга сетевой активности и обнаружения изменений в подключенных устройствах.

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

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

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
SSH/SFTP/RDP/VNC-клиент МС22 — решение для удалённого управления и конфигурирования сетевого оборудования, сделанное с заботой об админах.
Отечественная замена популярных зарубежных программ (PuTTY, Xshell, KiTTY, SecureCRT, SmarTTY, MobaXterm и др.) и встроенных терминалов ОС.
Есть возможность работы в нескольких вкладках, подсветка синтаксиса, быстрые клавиши и готовые шаблоны, различные инструменты автоматизации и приятные мелочи (типа соблюдение стандарта FHS установочным пакетом).

Посмотреть и бесплатно потестировать можно тут - https://МС22.рф
В процессе обеспечим оперативную поддержку и гарантированно прислушаемся к обратной связи!

#реклама
О рекламодателе