ru
Feedback
BashMaster

BashMaster

Открыть в Telegram

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

Больше
8 733
Подписчики
+124 часа
+27 дней
+21330 день
Архив постов
✅ ITKB_channel - бесплатное обучение по Windows, Linux, DevOps, Security, Network, кодинг ✅ ITKB_Archive - библиотека (книги,
ITKB_channel - бесплатное обучение по Windows, Linux, DevOps, Security, Network, кодинг ✅ ITKB_Archive - библиотека (книги, курсы, ИТ литература)

Создаём логи мониторинга Это модифицированная версия предыдущего примера. Если в системе не настроена почта, скрипт создаст ф
Создаём логи мониторинга Это модифицированная версия предыдущего примера. Если в системе не настроена почта, скрипт создаст файл логов. Ядро скрипта заключено в бесконечный цикл while, который настроен на выполнение проверки ping каждый час (3600 секунд). Измените скрипт в соответствии с вашими потребностями. Удалите бесконечный цикл while, если вы собираетесь использовать этот скрипт с планировщиком cron. #!/bin/bash LOG=/tmp/mylog.log SECONDS=3600 EMAIL=admin@itsecforu.ru for i in $@; do echo "$i-UP!" > $LOG.$i done while true; do for i in $@; do ping -c 1 $i > /dev/null if [ $? -ne 0 ]; then STATUS=$(cat $LOG.$i) if [ $STATUS != "$i-DOWN!" ]; then echo "`date`: ping неудачен, $i хост лежит!" | mail -s "$i хост лежит!" $EMAIL fi echo "$i-DOWN!" > $LOG.$i else STATUS=$(cat $LOG.$i) if [ $STATUS != "$i-UP!" ]; then echo "`date`: пинг прошел, $i Хост подня!" | mail -s "$i Хост поднят !" $EMAIL fi echo "$i-UP!" > $LOG.$i fi done sleep $SECONDS done Выполнение: ./check-server-status.sh google.com yahoo.com 192.168.1.2 mylinuxbox N2100 🔨 bash_help

Часто слышу такие фразы от Айтишников:   - Раньше работа была интересной, а сейчас встаю и ненавижу весь день наперед. - Чувствую свою ненужность в проекте. - Конфликтую с коллегами, бесят люди вокруг. - Постоянно отвелкаюсь на любые мелочи, в итоге работаю медленнее. Сталкивался с таким? Когда начинаешь выгорать, твоё бессознательное старается сократить контакты с источником стресса = работой. В этот момент ты стараешься "просто собраться", "замотивироваться", чтобы работать еще больше. То есть мысленно пинаешь себя, лежащего без сил. И это только усиливает чувство груза и нежелание работать. И так повторяется раз за разом. И тогда может показаться, что если уволиться, все станет отлично. Увы. Однажды тревога, долг и вина уже загнали тебя в стратегию выгорания. И они от увольнения никуда не денутся. Да, ты сменишь работу, но останешься с теми же поведенческими стратегиями. Выгорание появляется не из-за места, а из-за того, что ты попадаешь в повторяющиеся ситуации, в которых принимаешь решение не в свою пользу: - Тебе написали в 10 вечера по работе, а ты ответил. - На тебя повесили чужую работу, ты взял. И т.д. Годам к 50 такая стратегия может перейти в психосоматические проблемы: мигрень, синдром раздраженного кишечника, расстройства сна, давление. Что делать? Не тянуть и начать грамотно с этим работать. Я открываю доступ к мини-курсу из 3-х практических занятий для айтишников, которые хотят вернуть радость от работы и жизни!   Самостоятельно можно гнить несколько лет, убеждая себя, что "прогресс есть". С психологом реально выйти из апатии буквально за пару месяцев. Думаешь, что "само пройдет"? Не пройдет! После мини-курса ты найдешь причины упадка сил, апатии и выгорания. И поймешь, как из этого выйти. Что внутри: - 7 признаков того, что твоё окружение высасывает из тебя силы. - Этапы выгорания. Как понять, как глубоко ты провалился. - Что будет, если ничего не менять? Спойлер: Будет плохо. - Как прийти из "постоянно задолбанный и уставший" к жизненному балансу. Особенно полезно будет тем, кто искренне считает, что ему ничего не поможет, а он просто «вынужден перерабатывать».   Подписывайся на мой ТГ-канал и смотри мини-курс в закрепе: https://t.me/+UyTW-ucszJ5jMTdi

Уведомление по почте, когда сервер не работает Скрипт отправит электронное письмо на указанный адрес электронной почты, когда
Уведомление по почте, когда сервер не работает Скрипт отправит электронное письмо на указанный адрес электронной почты, когда ping не может достичь места назначения. Системный администратор может регулярно выполнять этот скрипт с использованием планировщика cron. Сначала скрипт использует команду ping для проверки связи с хостом или IP-адресом, указанным в качестве аргумента. В случае, если это место назначения недоступно, будет использована команда mail для уведомления системного администратора об этом событии.
#!/bin/bash

for i in $@
do
ping -c 1 $i &> /dev/null

if [ $? -ne 0 ]; then
  echo "`date`: ping не прошел, $i хост лежит !" | mail -s "$i хост лежит!" admin@itsecforu.ru
fi
done

Выполнение: ./check_hosts.sh google.com yahoo.com 192.168.1.2 mylinuxbox N2100 🔨 bash_help

Сканирование подсети В этом примере bash скрипт просканирует сеть на предмет хостов, подключенных по IP-адресам 10.1.1.1 – 25
Сканирование подсети В этом примере bash скрипт просканирует сеть на предмет хостов, подключенных по IP-адресам 10.1.1.1 – 255. Скрипт выведет сообщение Хост с с IP: IP-адрес поднят, если команда ping была успешной. Не стесняйтесь изменять скрипт для сканирования диапазона ваших хостов.
#!/bin/bash

is_alive_ping()
{
  ping -c 1 $1 > /dev/null
  [ $? -eq 0 ] && echo Хост с IP: $i поднят.
}

for i in 10.1.1.{1..255} 
do
is_alive_ping $i & disown
done

Выполнение:
./bash_ping_scan.sh

Вывод: Хост with IP: 10.1.1.1 поднят. Хост with IP: 10.1.1.4 поднят. Хост with IP: 10.1.1.9 поднят. 🔨 bash_help

🗄2 канала для каждого линукс инженера и безопасника Network Academy - большое количество уроков и статей по устройству компьютерных сетей. Кладезь информации для безопасника CyberSec Academy - уроки по кибербезопасности и хакингу от нуля до профи, подписывайся и учись

Как проверить контрольную сумму SHA с помощью bash скрипта Во многих случаях контрольная сумма SHA предоставляется как есть,
Как проверить контрольную сумму SHA с помощью bash скрипта Во многих случаях контрольная сумма SHA предоставляется как есть, файл контрольной суммы содержит только контрольную сумму. Это создает проблему для стандартных служб, поскольку они ожидают имя файла, связанное с заданной контрольной суммой, используя формат GNU или BSD. Решение заключается в создании простого скрипта оболочки, который будет выполнять дополнительные шаги для проверки контрольной суммы SHA.
#!/bin/bash
# verify file checksum from a file

# checksum algorithms
algorithms=( 1 224 256 384 512 512224 512256 )

# file to check
file="$1"

# execute when there is one parameter
if [ "$#" -eq "1" ]; then
  # check if file exist
  if [ -f "${file}" ]; then
    # find checksum file
    for algorithm in "${algorithms[@]}"; do
      if [ -f "${file}.sha${algorithm}" ]; then
        echo "Found SHA${algorithm} checksum"
        words="$(wc -w < ${file}.sha${algorithm})"
        # verify checksum and pass the exit code
        if [ "$words" == "1" ]; then
          shasum --algorithm $algorithm --check <(echo $(cat ${file}.sha${algorithm})\ \ $file)
          exit $?
        elif [ "$words" == "2" ] || [ "$words" == "4" ]; then
          shasum --algorithm $algorithm --check ${file}.sha${algorithm}
          exit $?
        fi
      fi
    done
  fi
fi

Он автоматически проверит контрольную сумму SHA (в стиле GNU или BSD). Вы будете проинформированы в случае возникновения проблем. 🔨 bash_help

2 самых популярных канала по информационной безопасности и этичному хакингу: 📚 @it_secur — Редкая литература, курсы и уникальные мануалы для ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте. 👨🏻‍💻 @infosecurity — Авторский Telegram канал, посвященный информационной безопасности, OSINT и социальной инженерии.

Настройка приглашения командной строки в Bash Приглашение ко вводу команд в bash — это строка, которая отображается слева от
Настройка приглашения командной строки в Bash Приглашение ко вводу команд в bash — это строка, которая отображается слева от каждой команды, которую вы вводите в терминале. Обычно приглашение имеет вид
пользователь@hostname:директория$

Приглашение можно настраивать. Можно добавлять информацию или, например, изменить цвет приглашения. Формат строки приглашения задается в переменной окружения PS1. Чтобы настроить приглашение, необходимо изменить значение переменной PS1. Например, переменная PS1 может иметь значение: PS1="\u@\h:\w$" Можно установить переменную PS1 только для текущей сессии в терминале. Это удобно, пока вы подбираете, как будет выглядеть строка приглашения. Чтобы это сделать нужно выполнить команду export для переменной PS1, например:
export PS1="\u@\w:"

После выполнения команды строка приглашения в терминале сразу изменится. Для задания различных значений переменной PS1 существуют специальные символы. Комбинируя различные специальные символы можно составить свою строку приглашения. 📖 Дочитать статью 🔨 bash_help

Простой авто-кликер в Linux c помощью небольшого BASH скрипта Авто-кликер может понадобиться в разных случаях: если нужно авт
Простой авто-кликер в Linux c помощью небольшого BASH скрипта Авто-кликер может понадобиться в разных случаях: если нужно автоматизировать нажатие какой-нибудь кнопки, или фармить печеньки в Cookie Clicker. Что-бы без лишней траты времени это сделать, нам понадобится программа xdotool.
sudo apt-get install xdotool

Создаём текстовый файл с любым названием, в домашней директории(так будет удобнее в будущем запускать сам авто-кликер). Затем открываем его и вставляем туда такой текст: #!/bin/bash sleep 5 for i in {1..2048} do sleep 1.5 xdotool click 1 echo "Cовершено $i нажатий." done Где "2048" в третьей строке - это количество желаемых нажатий, а "1.5" в 5 строке - это интервал в секундах между нажатиями. sleep 5 (2 строка) - это отсчёт в секундах до начала цикла. Ну и ещё прикручено echo для статистики. Кликать будет левая кнопка мыши. Чтобы эмулировать нажатия правой кнопки мыши, нужно в строке "xdotool click 1" заменить единицу на 3. - Сохраняем файл. - Затем нужно сделать наш файл исполняемым. Для этого нужно вписать в терминал команду: chmod u+x название-файла Авто-кликер готов! Чтобы его запустить, нужно ввести в терминале команду: ./название-файла Чтобы остановить авто-кликер раньше, чем вписано в файле, нужно просто открыть окно терминала, через которое работает авто-кликер, и нажать сочетание клавиш Сtrl+C. 🔨 bash_help

Bash скрипт для автоматического telnet соединения и ввода команд Надоело выполнять рутинные операции с большим парком железа?
Bash скрипт для автоматического telnet соединения и ввода команд Надоело выполнять рутинные операции с большим парком железа? Давайте разберем, как автоматизировать процесс подключения по протоколу telnet и ввода команд для удаленной настройки железа, используя скриптовый язык программирования bash. Первым делом, давайте сформулируем задачу. Допустим, у нас есть три маршрутизатора cisco c ip адресами 192.168.10.10, 192.168.10.11 и 192.168.10.12 и компьютер с Linux. Нам требуется подключиться к каждому маршрутизатору через протокол telnet и узнать версию IOS, используя команду "show ver | include IOS". Можно, конечно, пройтись по этим маршрутизаторам, набирая команды вручную, но когда количество железок вырастет, например, до 100, согласитесь, проделать данную процедуру уже будет довольно утомительно. Поэтому сделаем скрипт, который соберет вывод команд со всех маршрутизаторов в файл. #!/bin/bash set -x #Входные данные: USER="admin" PASSWD="123456" LOG="telnnet_conn.log" HOSTS=" 192.168.10.10 192.168.10.12 192.168.10.11 " for H in $HOSTS do echo START SCRIPT: >> $LOG date +%x-%R >> $LOG ( sleep 1; echo -en "$USER\r"; sleep 1; echo -en "$PASSWD\r"; sleep 1; echo -en "show ver | include IOS\r"; sleep 1; echo -en "exit\r"; sleep 1; ) | telnet $H >> $LOG echo =================================== >> $LOG done 📖 Описание telnet скрипта 🔨 bash_help

Хотите начать разбираться в компьютерных сетях и тонкостях настройки сетевого оборудования? Разобраться в этом вам поможет канал сертифицированных сетевых инженеров Cisco. После ухода «Cisco Systems» из РФ, они создали проект Network Admin, в котором обучают администрировать сети. Инженеры обучат вас до уровня CCNA и CCNP за 0₽, эти курсы самые востребованные в мире! Подписывайтесь на канал, изучайте прибыльную профессию в IT-рынке.

Как запустить bash скрипт из windows Запустить bash скрипт из windows также просто как если бы вы использовали linux, необход
Как запустить bash скрипт из windows Запустить bash скрипт из windows также просто как если бы вы использовали linux, необходимо всего лишь установить cygwin. Cygwin — бесплатный эмулятор командной строки Unix для Windows, используется для переноса программного обеспечения из UNIX в Windows, запуска скрипов bash, sh и т.п. Чтобы установить cygwin заходим на сайт программы - cygwin.com и закачиваем утилиту для установки. Во время установки переходим к выбору устанавливаемых пакетов. Этот этап является наиболее важным, от него зависит работа запускаемых вами скриптов. Тщательно изучите список предлагаемых пакетов и выберите необходимые вам. Установите из категории Net пакеты inetutils, openssh, openssl, ping, iperf, tftp, proftpd, а из раздела Utils пакеты utils-linux, mc, bzip2, ipcalc. Для того, чтобы запустить bash скрипт, необходимо дать скрипту нужные права, используя команду:
chmod 777 namescript

затем запустить:
./namescript

namescript - название вашего скрипта вместе с расширением. Вот и все. Теперь можно запускать bash скрипты из windows. 🔨 bash_help

❓Заботитесь о безопасности информации? Приходите прокачиваться на бесплатный вебинар онлайн-курса «Инфраструктура открытых кл
❓Заботитесь о безопасности информации? Приходите прокачиваться на бесплатный вебинар онлайн-курса  «Инфраструктура открытых ключей PKI» —  «Алгоритмы асимметричной криптографии»: регистрация На уроке мы: — рассмотрим, как развивались криптоалгоритмы. — познакомимся с принципами работы шифровальной машины Энигма. — изучим, как работают алгоритмы асимметричной криптографии для обеспечения конфиденциальности, аутентичности, целостности информации. После занятия вы сможете понимать принципы работы асимметричной криптографии для обеспечения конфиденциальности, аутентичности, целостности информации. 🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку. Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8Jugfo

Bash скриптинг – парсинг аргументов в скриптах Bash с помощью getopts Передача аргументов в программу – одна из распространен
Bash скриптинг – парсинг аргументов в скриптах Bash с помощью getopts Передача аргументов в программу – одна из распространенных операций в любом языке, который вы используете. В этой статье мы рассмотрим, как разбирать аргументы в скриптах bash с помощью встроенной функции getopts. Каждая команда, которую мы выполняем в терминале, имеет аргумент, связанный с ней. Например, можно взять самую простую команду в Linux под названием df, которая отображает использование дискового пространства файловой системы. Она принимает такие аргументы/флаги, как -h, -i, –version и т.д. Аналогично этому, когда вы создаете скрипт оболочки, в зависимости от случая использования вам может потребоваться обработать скрипт на основе переданного аргумента. В bash есть два способа анализа аргументов, переданных скрипту. Один из них – написать логику для разбора аргументов вручную, используя специальные переменные $@, $1, $2 $N. Другой способ заключается в использовании getopts. Getopts – это POSIX-совместимая встроенная функция bash, которая принимает короткие аргументы, такие как -h, -v, -b и т.д. Вы не можете передавать длинные аргументы, такие как –help, –version. Если вы хотите разобрать длинные опции, есть другая утилита getopt, которая является внешней программой, а не встроенной в bash. 📖 Ссылка на статью 🔨 bash_help

Отображение палитры цветов ANSI в оболочке bash Очень полезно, чтобы увидеть все доступные цвета bash. e="\033[" for f in 0 7
Отображение палитры цветов ANSI в оболочке bash Очень полезно, чтобы увидеть все доступные цвета bash.
e="\033["
for f in 0 7 `seq 6`; do
  no="" bo=""
  for b in n 7 0 `seq 6`; do
    co="3$f"; p="  "
    [ $b = n ] || { co="$co;4$b";p=""; }
    no="${no}${e}${co}m   ${p}${co} ${e}0m"
    bo="${bo}${e}1;${co}m ${p}1;${co} ${e}0m"
  done
  echo -e "$no\n$bo"
done

Здесь выводятся все коды цветов для создания красивой цветовой подсказки. Это полезный способ получить определенный цвет, который вам нужен. 🔨 bash_help

Редактирование последней команды в истории Вы можете использовать оператор !!, чтобы отредактировать ошибочно написанную кома
Редактирование последней команды в истории Вы можете использовать оператор !!, чтобы отредактировать ошибочно написанную команду в истории bash и повторно выполнить ее правильно. Это позволяет исправить ошибку, допущенную в предыдущей команде, как показано ниже.
ehco hello
-bash: ehco: command not found

Как мы видим, это легко исправить.
!!:gs/ehco/echo/
echo hello
hello

Это повторное выполнение команды, и она будет написана правильно 🔨 bash_help

🚀 В Телеграм появился новый канал, на котором бесплатно учат кибербезу CyberSec News — тут рассказывают, как защититься от х
🚀 В Телеграм появился новый канал, на котором бесплатно учат кибербезу CyberSec News — тут рассказывают, как защититься от хакеров, находить уязвимости в программах и сайтах и стать белым хакером. Его ведет гик-специалист по безопасности, который фанатеет от киберпанка и самураев. Поэтому во все посты он вписывает прикольные японские фразочки. А еще он понятно пишет и разъясняет работу каждой уязвимости на пальцах. Поэтому будет полезно почитать специалистам любого уровня. Да и тем, кому просто нравится кибербез и самураи — тоже зайдет ;) Заглядывайте, если хотите стать этичным хакером → @CyberNewsSe

Атоматизируем ssh подключение к группе хостов используя bash скрипт и expect Expect - программная оболочка дающая возможность
Атоматизируем ssh подключение к группе хостов используя bash скрипт и expect Expect - программная оболочка дающая возможность запрограммировать диалог с утилитами, которые в процессе использования запрашивают ввод информации у пользователя. В нашем случае такой утилитой будет выступать ssh клиент. Краткая постановка задачи: Есть три маршрутизатора cisco c ip-адресами 192.168.10.10, .11 и .12. Нужно подключить к ним по ssh и выполнить команду "show ver | include IOS". Первым делом на надо установить expect. Для ОС RedHat, CentOS, Fedora и т.п.
sudo yum install expect

Для ОС Debian, Ubuntu, Mint и т.п.
sudo apt-get install expect

Ну а теперь текст самого скрипта:
#!/bin/bash
#Включение отладки bash:
set -x

#Учетные данные:
USER="admin"
PASSWD="123456"

#Файл логов:
LOG="ssh_conn.log"

#Список хостов:
HOSTS="
192.168.10.10
192.168.10.11
192.168.10.12
"

#Цикл переборки хостов:
for H in $HOSTS
do

#Вывод даты старта скрипта:
echo START SCRIPT: >> $LOG
date +%x-%R >> $LOG

#Команды для expect:
COMM="

#Включение и вывод отладки expect:
#log_file debug.log
#exp_internal 1

#Время ожидание expect
set timeout 1

#Соедиение ssh:
spawn ssh $USER@$H
expect \"*(yes/no)?*\" {send \"yes\r\"}
expect \"Password:\"
send \"$PASSWD\r\"

#Выполняемые команды:
expect \"*>\"
send \"show ver | include IOS\r\"
expect \"*>\"
send \"exit\r\"

#Завершение выполнения expect:
expect eof
"

#Запуск expect с набором команд:
expect -c "$COMM" >> $LOG

#Вывод разделителя:
echo ========================================================================= >> $LOG

done

📖 Ссылка на статью 🔨 bash_help

❗️ Приглашаем 5 сентября в 20:00 по Москве на бесплатный вебинар “Простота и мощь автоматизации: сравнение с Puppet, Chef и S
❗️ Приглашаем 5 сентября в 20:00 по Москве на бесплатный вебинар “Простота и мощь автоматизации: сравнение с Puppet, Chef и Salt” от Отус.   Вебинар приурочен к старту онлайн-курса — «DevOps практики и инструменты».   ✅ На вебинаре мы проведем сравнение различных систем автоматизации, таких как Ansible, Puppet, Chef и Salt.   Основное внимание уделим Ansible, выявляя его уникальные особенности, преимущества и возможности в сравнении с другими популярными инструментами.   Также рассмотрим принцип работы каждой системы автоматизации и как они реализуют конфигурационное управление и оркестрацию. Оценим различия в подходах к автоматизации задач и управлению конфигурациями.   ➡️ Регистрация на вебинар: https://otus.pw/oBFo/    Нативная интеграция. Информация о продукте www.otus.ru