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

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
April 29
⚙️ ShellGPT

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

▶️Он совместим с различными операционными системами Linux, macOS и Windows, а также с основными оболочками включая PowerShell, CMD, Bash и Zsh.

➡️ ShellGPT позволяет выполнять запросы разной сложности, включая анализ логов и генерацию кода.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
April 29
April 30
⚙️ Bash-cкрипт для мониторинга дискового пространства и отправки оповещений

✔️Важно следить за дисковым пространством на сервере Linux, чтобы убедиться, что свободного места достаточно для новых файлов и приложений. Если диск заполнен, это может вызвать такие проблемы, как сбои системы, потеря данных и другие проблемы. Чтобы предотвратить это, вы можете использовать скрипт для отслеживания дискового пространства и отправки оповещения, когда доступное пространство падает ниже определенного порога.

▶️В статье мы рассмотрим процесс создания скрипта, который отслеживает дисковое пространство и отправляет оповещение, когда доступное пространство падает ниже определенного порога. Мы будем использовать команду df для проверки доступного дискового пространства и команду mail для отправки оповещения.

➡️ Возможности скрипта:
💠Скрипт может проверить доступное свободное место на нескольких дисках.
💠Вы можете включить отправку уведомления по электронной почте
💠Вы можете установить пороговые значения для предупреждений и критических состояний.
💠Принимать входные данные как параметры командной строки

🖼️ Прочитать статью
🐙 Ссылка на скрипт

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
April 30
⚙️ Используй майские праздники наилучшим образом!

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

🤩 Admin Books – техническая литература для сетевых и системных администраторов и ИБ специалистов.

Ссылка для своих: https://t.me/+nUCtfwOILxI5ZWIy
Please open Telegram to view this post
VIEW IN TELEGRAM
May 2
⚙️ Shunpo

✔️Минималистичный инструмент для bash, который упрощает навигацию по директориям в терминале.

▶️Цель Shunpo — ускорить перемещение по директориям, позволяя пользователям управлять закладками и быстро переходить между ними с минимальным количеством нажатий клавиш. Инструмент подходит для тех, кто часто использует команды cd, pushd или popd.

➡️ Некоторые команды Shunpo:
sb — добавить текущий каталог в закладки
sg или sg [#] — перейти к закладке
sr или sr [#] — удалить закладку
sl — вывести список всех закладок
sc — очистить все закладки
sj или sj [#] — перейти к родительскому каталогу
sd — перейти к дочернему каталогу.

▶️Для работы Shunpo необходима версия Bash 3.2 или новее.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
May 5
May 6
⚙️ Bash скрипты на примерах

✔️Bash скрипты (сценарии) – это наборы тех же самых команд, которые можно вводить с клавиатуры, но собранные в единый файл и объединённые некоей общей целью. Такой подход позволяет автоматизировать множество рутинных задач, например, сборку проектов или установку новых программ. Bash прост в освоении и использовании, гибок и так или иначе присутствует в абсолютном большинстве дистрибутивов Linux.

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

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
May 6
May 7
⚙️ Bash Cheatsheet на сайте QuickRef.ME

✔️Краткий справочник по скриптам оболочки Bash для пользователей Linux.

➡️ В документе рассматриваются, например, такие темы:
💠Переменные. Описываются различные способы работы с переменными, включая использование подстрок и условий.
💠Комментарии. Рассказывается о встроенных и многострочных комментариях в Bash.
💠Функции Bash. Описываются способы определения, возврата значений и генерации ошибок.
💠Параметры Bash. Рассматриваются опции, такие как избегание наложения файлов, выход при ошибке и другие.

▶️Сайт QuickRef.ME содержит не только справочник по Bash, но и другие шпаргалки по различным инструментам и системам, которые могут быть полезны разработчикам и администраторам систем на базе GNU/Linux.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
May 7
⚙️ Упрощение работы с crontab на удаленных серверах

✔️В сфере системного администрирования Linux есть множество задач, которые мы выполняем регулярно. Одна из таких задач — работа с crontab на удаленных серверах. Казалось бы, процесс прост: подключиться к серверу, открыть crontab, внести изменения. Но что, если я скажу вам, что этот процесс можно значительно упростить и ускорить? Обычно этот процесс требует нескольких шагов, но я нашел способ сделать его гораздо проще и быстрее.

▶️Стандартный подход, который многие используют (хотя это и не самый лучший способ), заключается в том, чтобы сначала войти на удаленный сервер под root, а затем выполнить команду crontab -e. Но что, если я скажу вам, что есть способ сделать это одной командой?

▶️Вот эта однострочная команда творит чудеса:
ssh -t root@x.x.x.x 'crontab -e'

▶️Здесь параметр -t выделяет терминал, необходимый для работы с vim, который используется для редактирования crontab. Но можно пойти еще дальше и создать функцию, которая сделает процесс еще удобнее.

▶️Откройте файл .bashrc или .zshrc (в зависимости от используемой оболочки) и добавьте в конец следующую функцию:
rcron() {
if [ $# -eq 0 ] || [ $# -gt 2 ]; then
echo "Usage: rcront [username] "
return 1
fi

local username="root"
local ip

if [ $# -eq 1 ]; then
ip="$1"
else
username="$1"
ip="$2"
fi

ssh -t "${username}@${ip}" 'crontab -e'
}

▶️После этого не забудьте перезагрузить файл конфигурации:
➡️ Для bash:
source ~/.bashrc

➡️ Для zsh (обычно на Mac):
source ~/.zshrc

▶️Теперь использовать эту функцию очень просто. Например, чтобы отредактировать crontab пользователя root на сервере server01, достаточно ввести:
rcron server01

▶️А если нужно отредактировать crontab пользователя user1 на том же сервере:
rcron user1 server01

➡️ Использование таких однострочных команд и функций может значительно упростить вашу ежедневную работу. Освоив их, вы не только сэкономите время, но и произведете впечатление на коллег-линуксоидов. А уж как удивятся администраторы Windows, когда увидят, насколько легче управлять серверами Linux!

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
May 12
May 13
⚙️ Шпаргалка по Bash-скриптам для повседневной работы

✔️Bash (Bourne Again SHell) — это командный интерпретатор в Unix-подобных операционных системах, таких как Linux и macOS. Он предоставляет удобный способ взаимодействия с операционной системой через командную строку. Создание Bash-скриптов является мощным инструментом для автоматизации повседневных задач и улучшения процесса работы с системой. В этой статье мы рассмотрим основы написания Bash-скриптов для повседневной работы.

➡️ Содержание:
💠Основы синтаксиса Bash
💠Аргументы командной строки
💠Условные операторы
💠Циклы
💠Функции
💠Работа с файлами и каталогами
💠Ошибки и отладка
💠Переменные окружения
💠Чтение пользовательского ввода
💠Массивы
💠Проверка наличия команд
💠Работа с условиями в строках
💠Параллельное выполнение команд
💠Пример скрипта на Bash

🖼️ Ссылка на шпаргалку

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
May 13
May 14
⚙️ Shell-secrets

✔️Инструмент, который позволяет безопасно хранить и использовать зашифрованные переменные окружения с помощью GPG. Он подходит для защиты таких данных, как API-ключи, токены, пароли.

➡️ Некоторые особенности скрипта:
💠Зашифрованные файлы. Переменные сохраняются в виде файлов, зашифрованных собственным GPG-ключом.
💠Моментальная загрузка. Переменные загружаются и устанавливаются в текущий shell всего одной командой.
💠Многослойность и изоляция окружений. Скрипт поддерживает многоуровневый вход (nested logins), что позволяет быстро переключаться между разными аккаунтами, проектами и наборами переменных.
#!/bin/sh

login() {
($(gpg -q --decrypt ~/.shell-secrets/$1.gpg) ; SECRET_LOGIN="$SECRET_LOGIN$1 " bash -l)
}

_login() {
SECRETS=$(basename -a -s .gpg ~/.shell-secrets/*.gpg)
COMPREPLY=($(compgen -W "$SECRETS" -- ${COMP_WORDS[COMP_CWORD]}))
return 0
}

complete -F _login login

▶️Скрипт предполагает наличие настроенного GPG, а все переменные после загрузки доступны в окружении текущего shell.

🐙 Подробнее на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
May 14
May 15
⚙️ Сборник примеров программ на bash

💠 fping_chk — быстрая групповая проверка хостов на доступность
#!/bin/bash
attempts=$(($2+1))
## all working nodes
# {3..19} {22..24} {27..28} {30..38}
declare -a sc613='2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 22 23 24 27 28 30 31 32 33 34 35 36 37 38'
# {3..19} {22.24}
declare -a sc619='3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 22 23 24'

function check_613() {
echo 'Проверка доступности хостов сети '$ip_h 'из '$(uname -n)
for (( count=1; count < $attempts; count++ )); do
echo '-----------[ step' $count'/'$(($attempts-1))' ]' $(date +%d.%m.%y) $(date +%H:%M) '---------'
for ip in $sc613; do
if ! [[ $(fping -qa ${ip_h}.${ip}) ]]; then
echo ${ip_h}.${ip} is dead!
fi
done
done
}

function check_619() {
echo 'Проверка доступности хостов сети '$ip_h 'из '$(uname -n)
for (( count=1; count < $attempts; count++ )); do
echo '-----------[ step' $count'/'$(($attempts-1))' ]' $(date +%d.%m.%y) $(date +%H:%M) '---------'
for ip in $sc619; do
if ! [[ $(fping -qa ${ip_h}.${ip}) ]]; then
echo ${ip_h}.${ip} is dead!
fi
done
done
}

function usage() {
echo 'Укажите номер VLAN (613 или 619) и кол-во попыток!'
}

if [ $# != 2 ]; then
usage
else
case $1 in
613)
ip_h="10.55.126"
check_613;;
619)
ip_h="172.17.5"
check_619;;
*)
usage;;
esac
fi

💠bulk_tune — групповое выполнение сценариев на удаленных серверах.
Пример запуска: ./bulk_tune В файле playbook_file - сценарий, который должен быть выполнен.
#!/bin/bash
scope=$2

case $scope in
all)
declare -a srvl=(cmp01 cmp02 cmp03 cph01 cph02 cph03 mon01 mon02 ctl01 ctl02 ctl03 s3f01 s3f02 s3f03);;
ceph)
declare -a srvl=(cph01 cph02 cph03);;
s3)
declare -a srvl=(s3f01 s3f02 s3f03);;
ctl)
declare -a srvl=(ctl01 ctl02 ctl03);;
*)
;;
esac

echo ${srvl[@]}

if [ $# != 2 ]; then
echo "payload OR scope not defined!"; exit 0
else
for srv in ${srvl[@]}; do
echo $srv
ssh $srv 'bash -s' < $1;
done
fi

💠psi_go — прогон сценариев ПСИ scmd - номер команды, с которой начинаем выполнение, можно задать, как параметр командной строки. В файл .psi_cmd.lst необходимо добавить все запускаемые команды - по одной на строку.
#!/bin/bash
# psi_go: Прогон сценариев ПСИ
# created during 21.01.2023
# aizaro@mail.ru

if [[ -z $1 ]]; then scmd=0; else scmd=$1; fi

declare -a psicmd
# filling command stack from file
readarray -t psicmd < .psi_cmd.lst

sumop=${#psicmd[@]} ## total operations
#for pp in ${psicmd[*]}; do echo $pp; done

function msg1() {
echo -e '\nВыполняем команду'$1
}

function msg2() {
echo -e 'Результат выполнения команды: \n'
}

function step_mark() {
read -p ':---------------->'
}

for (( step=$scmd; step < $sumop; step++ )); do
msg1
echo '# '$step': '${psicmd[$step]}
step_mark
msg2
#${psicmd[$step]} > /tmp/result_psi ## not worked with for
echo ${psicmd[$step]} > /tmp/psi_cmd && /bin/bash /tmp/psi_cmd
cat /tmp/result_psi
done


🖼️ Дочитать статью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
May 15
May 16
⚙️ bash-stdops

✔️Коллекция скриптов Bash, написанных Джеймсом Черти. Они упрощают различные операции, включая поиск файлов, замену текста и модификацию контента.

➡️ Некоторые скрипты из коллекции:
💠walk — рекурсивно перечисляет файлы из указанного каталога
💠walk-run — выполняет команду для всех файлов
💠sre — заменяет вхождения указанной строки или шаблона регулярного выражения, поддерживает сопоставление без учёта регистра и регулярные выражения
💠git-sre — выполняет sre в корне репозитория Git для замены текста внутри файлов
💠path-tr, path-uppercase, path-lowercase — обрабатывает путь к файлу, чтобы преобразовать имя файла в верхний или нижний регистр
💠autoperm — устанавливает подходящие разрешения для файлов или каталогов
💠path-is — печатает путь и выходит со статусом 0, если файл является бинарным или текстовым.

▶️Списки из коллекции bash-stdops используются для автоматизации задач, таких как управление сессиями Tmux, замена текста в репозитории Git, безопасное копирование и вставка из буфера обмена и другие.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
May 16
⚙️ 19 полезных shell-скриптов на все случаи жизни

✔️Командная строка и те невообразимые вещи, которые с ее помощью можно творить, — визитная карточка UNIX и всех ее наследников. А где есть командная строка, там есть скрипты. И сегодня... нет, мы не будем учиться писать скрипты, мы рассмотрим наиболее полезные из них, те, что ты сможешь применять ежедневно для решения самого разного круга задач, начиная от сводки погоды и веб-сервера в одну строку и заканчивая ботом для твиттера в десять строк и скриптом для автоматического запуска любого торрент-клиента.

▶️Сразу оговорюсь, что я вовсе не приверженец шаманизма и ни в коем случае не призываю тебя сидеть в зелено-черной консоли и набирать кучу букв, чтобы выполнить действия, для которых в графическом интерфейсе достаточно навести мышку на нужный элемент. Однако я убежден, что для решения многих задач консоль и скрипты годятся гораздо лучше графического интерфейса и поэтому пренебрегать ими никак нельзя. Тем более что любая DE позволяет создать для скрипта иконку, так что для его запуска даже не надо будет открывать консоль.

➡️ Содержание статьи
💠Простые примеры
💠Десктоп
💠Google, Twitter, Dropbox и торренты
💠Вместо выводов

🖼️ Дочитать статью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
May 19
📡 Ты в ИБ? Тогда тебе к нам.

@svplatform — новости, вебинары, практические разборы.

Без спама. Только по делу.
Please open Telegram to view this post
VIEW IN TELEGRAM
May 20