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

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
Мечтаешь о той самой работе в Big Tech, но никогда не проектировал системы? Или работаешь на галере с нулевым подходом к проектированию и не знаешь, а как разбираться в архитектуре приложений?

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

Я решил с этим покончить. Больше никаких недо-курсов, которые “готовят к собесу за один месяц с нуля”. Это невозможно, если ты не обладаешь базой. Но все реально, если разобраться в компонентах, которые составляют эти системы.

Приходи на мой Открытый Урок, где за час мы посмотрим на эти самые компоненты. А еще я расскажу про процесс проектирования в Big Tech и что такое system design секция.

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

ЗАПИСАТЬСЯ

PS: недавно проходил собес в один российский Big Tech. Результат можешь увидеть на скрине
⚙️ Polybar

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

➡️ Некоторые преимущества Polybar:
▶️высокая настраиваемость с широким спектром встроенных модулей
▶️поддержка нескольких мониторов и динамической конфигурации
▶️активное сообщество и обширная документация
▶️лёгкость и эффективное использование ресурсов.

▶️Конфигурационный файл Polybar находится в ~/.config/polybar/config.

➡️ Некоторые функции программы:
▶️отображение даты и времени
▶️раскладка клавиатуры и статус индикаторов; 4
▶️уровень подсветки
▶️управление громкостью
управление воспроизведением MPD и статус
▶️детали сетевого подключения
▶️пользовательское дерево меню
▶️индикатор нагрузки процессора.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Уйти в пентест? Стать devops-инженером или системным администратором? 
Только вам решать, куда расти, если вы знаете Linux.

Курс "Основы Linux" обучит вас тонкостям работы с ОС: от работы в командной строке до создания прикладных программ.

80% практики
сопровождение куратора
финальный проект для портфолио — курс завершает проектная работа
сертификат или удостоверение о повышении квалификации

Старт: 17 февраля. Оставьте заявку на сайте или напишите нашему менеджеру @Codeby_Academy

Присоединяйтесь и узнайте все о Linux и смежном ПО: от основ командной строки до развертывания Kubernetes! 
⚙️ Starship

✔️Инструмент для настройки приглашения командной строки, который легко накатывается поверх zsh, fish, bash и прочего.

➡️ Особенности:
▶️Быстрая. Очень быстрая.
▶️Настраиваемая. Можно настроить каждый элемент командной строки
▶️Универсальная. Работает с любой оболочкой и в любой операционной системе
▶️Умная. Сразу показывает соответствующую информацию
▶️Много функций. Поддерживает все любимые инструменты
▶️Лёгкая. Быстрая установка — начать использовать программу можно в считанные минуты

➡️ Для работы Starship в терминале должен быть установлен шрифт Nerd Font (например, FiraCode Nerd Font), иначе некоторые специальные символы не будут отображаться нормально в приглашении командной строки.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ k1s — самая простая панель управления Kubernetes

✔️Минималистичная панель управления Kubernetes, показывающая текущее состояние ресурсов Kubernetes определённого типа в реальном времени. Инструмент состоит из сценария Bash примерно из 50 строк кода.

▶️Панель может отображать вид в реальном времени любого типа ресурсов в любом пространстве имён (или по всем пространствам имён). Для некоторых типов ресурсов выводится дополнительная информация, например текущее состояние для Pod и требуемое и фактическое количество реплик для Deployments.

➡️ k1s запускается прямо на локальной машине и использует обычную конфигурацию kubeconfig на машине. То есть по умолчанию подключается к тому же кластеру, к которому подключается kubectl.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, меня зовут Артур (@artur_speaking). Я обычный техлид в Российской компании. Много лет я занимаюсь ИТ и принял решение двигаться дальше, решил релоцироваться в Лондон.

Уже почти 3 года я готовлюсь к собеседованиям в Европу. Делюсь своим опытом по релокации и о многом другом в моем чате @artur_speaking. Пощу без духоты и пафоса. Жду вас.
⚙️ Nginx Access Log Analyzer and Dashboard Generator

✔️Bash-скрипт, который анализирует логи доступа Nginx и генерирует подробную HTML-панель с ключевыми метриками, связанными с веб-трафиком, безопасностью и производительностью.

➡️ Скрипт анализирует логи и собирает такую информацию, как:
▶️Количество запросов. Общее число полученных запросов.
▶️Уникальные IP. Список уникальных клиентских IP, делающих запросы.
▶️Количество ошибок. Число HTTP-ошибок (например, 4xx, 5xx ошибки).
▶️Анализ безопасности. Обнаружение потенциальных проблем с безопасностью, включая попытки SQL-инъекции, обхода директорий и XSS-попытки.
▶️Самые частые IP и URL. Идентификация наиболее часто используемых IP-адресов и URL, что полезно для выявления возможных источников всплесков трафика или угроз безопасности.

➡️ В результате на выходе получается интерактивная HTML-панель, которую можно использовать для анализа трафика и мониторинга безопасности.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Свежие вакансии для разработчиков, которых нет на hh

Выбери своё направление и подпишись

🔽

1. Python

2. Java

3. React

4. JavaScript

5. Web 3.0

6. Back end

7. Data Engineer

8. IT продажи

9. IT поддержка

10. PHP

11. 1С 

12. GO

13. QA

14. Flutter

Полный список каналов IT-вакансий: @best_itjob и @it_rab
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Automated-Server-Monitoring-and-Alerting-with-Bash-Script-and-AWS-SNS

✔️Скрипт предназначен для автоматизации задач мониторинга сервера на Ubuntu с использованием AWS SNS для отправки оповещений в реальном времени при достижении критических порогов.

➡️ Некоторые особенности скрипта:
▶️мониторинг использования CPU, RAM и дискового пространства на сервере Ubuntu
▶️использование команд AWS CLI для отправки оповещений через AWS SNS
▶️настраиваемые пороги для оповещений об использовании CPU, RAM и диска
▶️отправка оповещений в реальном времени в тему AWS SNS для мониторинга и уведомления.

➡️ Перед запуском скрипта необходимо заменить место holders фактическими учётными данными AWS и ARN темы SNS. Также нужно убедиться, что на сервере Ubuntu установлена и настроена AWS CLI.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Получите миллион на перенос IT-инфраструктуры ⚡️

Перенесите ваши проекты в Selectel и получите до 1 000 000 бонусов, бесплатную консультацию от архитекторов Selectel и помощь в переносе от опытной командой DevOps-инженеров.

В Selectel более 50+ совместимых продуктов для проектов любой сложности. Это значит, что вы сможете разместить всю IT-инфраструктуру у одного провайдера.

Используйте выделенные или облачные серверы, масштабируйте ресурсы в зависимости от нагрузки, безопасно храните и обрабатывайте данные, запускайте производительные веб-сервисы в облаке Selectel.

Selectel — один из ведущих провайдеров IT-инфраструктуры в России. Их сервисами пользуются уже более 25 тысяч клиентов с совершенно разными проектами: от сервисов онлайн-бронирования до образовательных платформ. Перенесите и вы свой проект в Selectel бесплатно!

Регистрируйтесь в панели управления и оставляйте заявку на участие в акции: https://slc.tl/zspiy

Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqwyJZiL
⚙️ Разница между определением переменных Bash с и без export

✔️Мы определяем переменную с помощью export, чтобы сделать ее доступной для всех подпроцессов (или дочерних процессов).
export variable_name=value

▶️Переменная доступна для любого подпроцесса, который вы запускаете из этого процесса оболочки.
Если вы определяете переменную без экспорта, как показано ниже:
variable_name=value

Переменная ограничена оболочкой и недоступна для любого другого подпроцесса.

▶️Вы можете использовать это для временных и/или циклических переменных.
Давайте определим переменную с именем «itsecforu» без «экспорта», как показано ниже:
$ itsecforu="Welcome to www.itsecforu.ru!"

Теперь отобразим значение с помощью команды «echo»:
$ echo $itsecforu

Будет отображено значение переменной itsecforu.ru:
Welcome to www.itsecforu.ru!

▶️Теперь запустите новый сеанс оболочки Bash, выполнив следующую команду:
 $ bash

Затем попробуйте отобразить значение переменной itsecforu с помощью команды «echo»:
$ echo $itsecforu

Видите?
Система ничего не возвращает!
Вы видите только пустой вывод.

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

▶️Давайте снова определим ту же переменную с опцией экспорта:
$ export itsecforu="Welcome to www.itsecforu.ru!"

Выведем значение переменной:
$ echo $itsecforu

Пример вывода:
Welcome to www.itsecforu.ru!

Начнем новый сеанс оболочки. Попробуйте еще раз отобразить значение переменной:
$ echo $itsecforu

Теперь система вернет значение.

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

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

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

🗓 31.01.2025
🕒 14:00 по МСК

Теория и Практика:
- Базовый и расширенный QoS
- Механизмы классификации трафика
- Доступные алгоритмы организации очередей
- Практические тесты с применением генератора трафика Cisco TRex

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

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

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

@eltexcm

#реклама
О рекламодателе
⚙️ sshudo

✔️Минимальная замена команды sudo на основе SSH для использования с командами, которые содержат параметры с пробелами или пустые параметры.

➡️ Использование:
▶️Нужно использовать sshudo перед ограниченной командой, которую можно выполнить только от имени пользователя root. Тогда система запросит пароль, после его ввода запустит команду.

➡️ Некоторые ограничения:
▶️не будет работать, если параметры содержат одну или несколько одинарных кавычек
▶️не позволяет передавать параметры SSH, для этого нужно использовать ~/.ssh/config
▶️работает только для получения привилегий пользователя root.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Бросаем костыли и внедряем Service Mesh

🔸 Слабый мониторинг или его нет совсем. Непонятно, почему система тормозит.
🔸 Клиенты жалуются на ошибки и долгое время ответа.
🔸 Нужно выкатить новую фичу, но нет уверенности, что всё пойдет как надо.

Знакомо? Значит, пора задуматься о новых решениях для своего проекта.

Приглашаем на трёхдневный онлайн-интенсив по Service Mesh от Слёрм, на котором разберём автоматический мониторинг, chaos engineering, мультикластерное взаимодействие и многое другое.

Чтобы разобраться в технологии, вы на интенсиве:

👉 решите реальные бизнес-кейсы;
👉 поймёте принцип работы и в дальнейшем сможете применить знания на любом решении;
👉 научитесь искать причины проблем.

Даты проведения: 28.02-03.03. 
Специальные условия группам от 3-х человек.

👉 Программа и запись на интенсив по ссылке.

#реклама
О рекламодателе
⚙️ Система мониторинга на bash’е

✔️Система мониторинга на bash’е хороша тем, что все для ее работы на машине скорее всего уже есть.

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

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

▶️Назовём систему мониторинга, желательно оригинально — Byams (Bash-written Yet Another Monitoring Script). Написанный на баше еще один скрипт мониторинга. :) Будем надеяться, что это название еще не занято.

➡️ Приступим
▶️Начнем с подключения хоста к нашей системе мониторинга. На практике это просто запись информации об адресе или доменном имени хоста в какой-то файл. Пусть это будет /etc/byams/hosts.
Вот пример этого файла:
192.168.0.10

▶️Для простоты будем писать один единственный файл скрипта, который будет добавлять в мониторинг хост, удалять из мониторинга хост и мониторить хосты, находящиеся в списке. И выглядеть это будет следующим образом:
byams add 
byams remove
byams

▶️Если скрипт запущен без параметров, он просто запустит мониторинг всех хостов, находящихся в данный момент в списке.

▶️Давайте вынесем файл с настройками в директорию /etc/byams. Вы можете вынести этот файл в любую директорию, доступную пользователю, от имени которого скрипт будет запускаться, поскольку он не требует привилегий суперпользователя для своей работы, достаточно прав обычного пользователя.

➡️ Подробно
▶️В файле настроек будет находиться следующее:
# Директория, где будет храниться файл с данными
DATA_DIR="/etc/byams"
# Название самого файла для хранения данных
DATA_FILE_NAME="hosts"
# Адрес электронной почты, на который будут посылаться оповещения о недоступности хостов
MAILTO=root@localhost

▶️Вот как будет выглядеть сам скрипт:
#!/bin/bash

# Подключаем файл настроек
. /etc/byams/byams.conf

# Формируем полное имя файла с данными
DATA_FILE="$DATA_DIR/$DATA_FILE_NAME"

add_to_monitoring(){
# Дописываем IP-адрес или имя хоста в файл данных
echo $2 >> $DATA_FILE
}

remove_from_monitoring(){
# Удаляем IP-адрес или имя хоста из файла данных
sed -i '/$2/d' $DATA_FILE
}

run_monitoring(){
# Для каждого хоста из списка, содержащегося в файле данных
# последовательно выполняем функцию check_host
for HOST in cat $DATA_FILE
do
check_host $HOST
done
}

check_host(){
# Функция check_host может содержать любые действия по проверке
# доступности одного хоста и реакции на недоступность этого хоста
# В нашем случае мы просто посылаем один ICMP-пакет, и если пришел ответ, значит
# всё в порядке, если не пришел, то переменная RESULT получит пустое значение
RESULT=ping -c 1 $1 | grep ttl
if [ "$RESULT" == "" ]
then
# А здесь будут выполнены действия по извещению о недоступности хоста
# Мы просто посылаем письмо о том, что хост, который мы проверяем, недоступен
MESSAGE="$1 is unavailable"
echo "$MESSAGE" | mail -s "$MESSAGE" $MAILTO
fi
}

case "$1" in
add)
add_to_monitoring $2
;;
remove)
remove_from_monitoring $2
;;
*)
run_monitoring
;;
esac

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

➡️ Автоматический запуск
Автоматический запуск можно обеспечить, включив вызов скрипта в таблицу заданий cron’а.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Network Admin
Команда nc (NetCat): «Сетевой швейцарский армейский нож»

NetCat, или просто nc, — это мощная и универсальная утилита для работы с сетями. Её часто называют «сетевым швейцарским ножом» из-за множества задач, которые она может выполнять.

nc поддерживает работу с TCP, UDP и UNIX-сокетами, и её возможности делают её незаменимым инструментом для администраторов и специалистов по сетевой безопасности.

Что умеет NetCat?
• Устанавливать TCP-соединения.
• Прослушивать порты TCP и UDP.
• Сканировать порты (как одиночные, так и диапазоны).
• Выступать в роли простого TCP-прокси.
• Проверять доступность удалённых портов.
• Тестировать сетевые службы и демоны.
• Передавать файлы между компьютерами в связке с другими инструментами, например, pv.

Примеры использования:

1️⃣Сканирование портов
Чтобы просканировать несколько конкретных портов на сервере, используйте следующую команду:

$ nc -zv server2.merionet.lan 21 22 80 443 3000


Здесь:
• -z — не устанавливать соединение, а только проверить доступность порта.
• -v — выводить дополнительную информацию (режим verbose).

2️⃣ Сканирование диапазона портов
Для проверки диапазона портов, укажите его через дефис:

$ nc -zv server2.merionet.lan 20-90


3️⃣ Установка TCP-соединения
Открыть TCP-соединение с портом 5000 на удалённом сервере с использованием источника порта 3000 и тайм-аутом в 10 секунд:

$ nc -p 3000 -w 10 server2.merionet.lan 5000


Здесь:
• -p — исходный порт (3000).
• -w — время ожидания (10 секунд).

N.A.
Please open Telegram to view this post
VIEW IN TELEGRAM
☁️ Облака, облака повсюду

Российские компании активно используют облачные технологии и мы видим этому подтверждение на всевозможных "облачных" конференциях.

🖼 Как с их помощью решаются конкретные задачи бизнеса в условиях санкций, ужесточения требований регуляторов, растущих расходов на инфраструктуру?
🖼 Как сделать облако безопасным?

Приглашаем на открытую конференцию K2 Cloud Conf.

У ребят планируется много технических докладов: от обзоров новых типов сетевых дисков до приоритетов бизнеса в области ИТ. Будет интересно.

📅 Когда: 4 марта 2025

👆 Участие бесплатное, ссылка на регистрацию тут
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Создание переменных, доступных только для чтения, а также неизменяемых переменных в Bash

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

▶️Внутри функции в Bash вы можете использовать ключевое слово local для определения переменной, и она может быть доступна только для чтения с помощью флага -r.

➡️ Вот несколько примеров использования и результатов:
#!/usr/bin/env bash

set -o errexit
set -o pipefail
set -o nounset

function mutable {
local status="pending"

status="completed"

# This line will echo "completed".
echo "${status}"
}

function immutable {
local -r status="pending"

# This line throws an error: "status: readonly variable"
status="completed"

# This line is never reached.
echo "${status}"
}

mutable
immutable

▶️Если вы хотите объявить переменные только для чтения вне функции, вы можете использовать declare -r status=”pending”, в то время как declare status=”pending” или status=”pending” оба являются изменяемыми.

▶️В случае с read-only вы получите ту же ошибку, что и выше, если попытаетесь ее изменить.

➡️ Помните, что declare и local не соответствуют POSIX, поэтому, если вам нужна максимальная совместимость между оболочками, вам стоит рассмотреть другие варианты, например, использование readonly status=”pending”.

▶️Я предпочитаю использовать declare -r, когда знаю, что мне не нужно соответствие POSIX, потому что declare используется для других вещей, например, для определения ассоциативных массивов.

▶️Наконец, стоит отметить, что если вы попытаетесь снять значение переменной, например unset status, а она доступна только для чтения, то получите сообщение об ошибке, в котором будет сказано, что вы не можете снять значение переменных, доступных только для чтения.

▶️Ясно выражать свои намерения полезно при чтении кода. Если в большом скрипте вы видите readonly, declare -r или local -r, вы можете быть уверены, что больше ничего не измените, а если измените, то скрипт выдаст ошибку, что поможет избежать случайной перезаписи значения.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Открытый урок «Инструменты и методы мониторинга серверов на платформе Windows Server»

🗓 10 февраля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Администратор Windows» от Otus.

На вебинаре вы узнаете:
✔️ Основные подходы к мониторингу серверов и выявлению проблем в инфраструктуре.
✔️ Как использовать встроенные инструменты Windows Server: Performance Monitor, Event Viewer и другие.
✔️ Обзор сторонних решений для мониторинга серверов и сети.
✔️ Практические рекомендации по настройке автоматического уведомления и отчетности.

🔗 Ссылка на регистрацию: https://otus.pw/zgIN/?erid=2W5zFGn1KQL

#реклама
О рекламодателе
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Полезные алиасы в Bash

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

➡️ Содержание статьи:
▶️Временный алиас
▶️Добавляем в Bash
▶️Виртуальные среды и сети
▶️Полезности для Docker
▶️Заключение

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

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