BashMaster
Ir al canal en Telegram
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help
Mostrar más8 889
Suscriptores
+124 horas
-977 días
+2030 días
Archivo de publicaciones
8 889
Как выстроить карьерный трек в DevOps
...и не сойти при этом с ума 🤪
В теории вроде бы всё понятно, но как перенести её на свой собственный опыт?
На курсе «DevOps Upgrade» можно не только прокачать необходимые хард- и софт-скиллы, но и выстроить карьерную стратегию, составить качественное резюме и подготовить портфолио.
Как это сделать:
1️⃣ Перейти на страницу курса
2️⃣ В разделе оплаты выбрать тариф «Комфорт Карьера»
3️⃣ Выбрать способ оплаты и дождаться старта потока
4️⃣ Пройти видеокурс «Администрирование Linux», который идёт в подарок до 21 марта — чтобы на 100% быть готовым к обучению.
Что входит в тариф «Комфорт Карьера»:
🔸Видеоуроки и практика на виртуальных стендах
🔸Q&A-сессии и встречи с ментором
🔸Telegram-чат с ментором и спикерами курса
🔸3 индивидуальные встречи с ментором
🔸Помощь с резюме и портфолио
🔸Рекомендательное письмо
‼️ На тарифе «Комфорт Карьера» осталось 2 места, так что рекомендуем поторопиться. Старт потока — 31 марта.
Подробности — на сайте.
#реклама
О рекламодателе
8 889
⚙️ Wandersage
✔️Интерактивный блокнот для работы в терминале, разработанный с использованием Bash, Zellij и Gum.
➡️ Некоторые функции Wandersage:
▶️Автоматическая загрузка зависимостей для Linux и MacOS. Бинарники загружаются в локальную папку, не требуется установка или использование
sudo.
▶️Отображение двух терминалов рядом. Слева — блокнот, справа — интерактивный терминал.
▶️Глобальный терминал для ввода дополнительных команд. Поскольку интерактивный терминал очищается при загрузке каждого блокнота, есть глобальный терминал для использования.
▶️Подтверждение ввода команд или кода. Перед отправкой команд или кода в интерактивный терминал пользователь должен подтвердить это.
▶️Поддержка выполнения встроенного кода внутри блокнота с использованием Bash, JavaScript, TypeScript, Python и Perl.
▶️Поддержка функций терминала, таких как REPL, Docker и удалённые оболочки SSH.
🐙 Перейти на Github
🔨 bash_help8 889
⚙️ sig — интерактивный grep для работы с потоковыми данными
➡️ Некоторые возможности sig:
▶️Повторное выполнение команды. Если указать параметр
--cmd, то команда будет выполняться при первом запуске и при повторном. Это полезно, когда данные уже прошли, а пользователь настраивает критерии поиска.
▶️Архивный режим. В нём сохраняются последние N записей потоковых данных, и в любой момент можно выполнить поиск по этим записям на основе ключевых входных данных.
🐙 Перейти на Github
🔨 bash_help8 889
⚙️ Bash скрипт для поиска пустых файлов и каталогов
✔️Пустые файлы могут иногда загромождать каталоги, и их выявление может быть полезно для целей очистки или аудита.
▶️Откройте терминал и выполните следующую команду, чтобы создать файл с именем
empty_files.sh
▶️Добавьте в файл следующий код.
#!/bin/bash
# Get the directory from the first script argument
directory="$1"
# Check if the directory argument is provided
if [ -z "$directory" ]; then
echo "Usage: $0 <directory>"
exit 1
fi
# Check if the provided argument is a valid directory
if [ ! -d "$directory" ]; then
echo "Error: '$directory' is not a valid directory."
exit 1
fi
# Find and list all empty files in the directory
echo "Empty files in $directory:"
find "$directory" -type f -empty
➡️ Пояснение к скрипту:
💠Строка Shebang: #!/bin/bash указывает, что сценарий должен быть запущен с помощью оболочки bash.
💠Аргумент директории: directory=”$1″ фиксирует первый аргумент, переданный скрипту в качестве директории для поиска.
💠Проверка аргумента: if [ -z «$directory» ]; проверяет, пуст ли аргумент директории, и предлагает пользователю использовать его правильно, если это так.
💠Проверка валидности каталога: if [ ! -d «$directory» ]; проверяет, является ли указанный аргумент действительным каталогом.
💠Команда Find: find «$directory» -type f -empty ищет пустые файлы (-type f) в указанном каталоге (-empty).
▶️Сделайте скрипт исполняемым, изменив его права:
chmod +x empty_file.sh
▶️Чтобы запустить скрипт, используйте следующую команду в терминале. При запуске скрипта нам нужно указать каталог в качестве аргумента:
sudo ./empty_file.sh /var/log
▶️Система выведет все пустые файлы из каталога /var/log.
➡️ Этот скрипт проверяет достоверность входного каталога, использует мощную команду find для поиска пустых файлов и предоставляет удобный для пользователя вывод.
🖼️ Ссылка на источник
🔨 bash_help8 889
СОТЕЛ – дата-центр, облачные сервисы и IT-решения для вашего бизнеса со скидкой по промокоду!
IP-телефония📞
IT аутсорсинг 🖥️
Монтаж и обслуживание сетей🔧
СКУД, видеонаблюдение 🔌
Пожарная безопасность 🔥
Услуги дата-центра
Размещение серверов и аренда стоек 📡🔹 Облачные серверы со скидкой до 20% ☁️
🎁 Хотите скидку на услуги СОТЕЛ? Пройдите короткий опрос и получите промокод за минуту!
Жмите 👉 @sotel_poll_bot. Для запуска наберите /start.
#реклама
О рекламодателе
8 889
⚙️ Replit
✔️Предоставляет интерактивную платформу для написания скриптов Bash с коллаборативной средой.
➡️ Некоторые возможности платформы:
▶️Онлайн-компилятор и интерпретатор Bash. С его помощью можно писать, сотрудничать, компилировать, запускать, делиться и развёртывать код Bash прямо в браузере.
▶️Многопользовательская работа. Пользователи могут видеть курсоры, правки и результаты работы друг друга в режиме реального времени.
▶️Функция Ghostwriter. Ассистент на основе искусственного интеллекта помогает писать код быстрее. Он может автозаполнять код, предлагать улучшения, генерировать шаблонный код и даже писать целые функции за пользователя.
🖼️ Перейти на сайт
🔨 bash_help
8 889
Несколько источников
Чтобы докопаться до истины, надо читать разные источники информации. В обучении также: читаешь крутые каналы, чтобы получать актуальную и полезную инфу.
В копилку проверенных добавьте DevFM — канал от разработчиков и для разработчиков. Ребята пишут о том, с чем сами сталкиваются каждый день при разработке, проектировании систем и управлении командами. Читайте:
→ Зачем вообще нужен Docker. Бонусом поделились полезными гайдам по Docker, Compose, Kubernetes. И как контейнеры защитить
→ Как я использую папки в Телеграм для минимизации прерываний
→ Как ускорить принятие решений в команде
→ Как проводить багскрам
→ Что интересного в отчёте Developer Ecosystem Report 2024 от JetBrains
Ещё у них есть подкаст про роли в ИТ-проекте
Подписывайтесь на канал DevFM и повышайте свою цену на рынке.
8 889
⚙️ Сетевая безопасность Linux: Best practices и баш скрипты
✔️Важно обеспечить безопасность систем Linux при подключении к сети для защиты от потенциальных угроз и уязвимостей. Существуют различные best practices, которым можно следовать для повышения безопасности систем Linux при подключении к сети, в том числе использование надежных паролей, включение двухфакторной аутентификации, поддержание систем в актуальном состоянии, настройка и включение брандмауэра, а также регулярный мониторинг. журналы и активность системы.
➡️ Вот несколько примеров сценариев bash, которые можно использовать для автоматизации каждого из приведенных выше best practices
▶️Скрипт, который проверяет и применяет надежные пароли:
#!/bin/bash
# Check all users' passwords for strength
for user in $(cut -d: -f1 /etc/passwd); do
# Check the password for strength
if ! grep -qP '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})' <(grep "^$user:" /etc/shadow); then
# If the password is not strong, force the user to change it
change -d 0 "$user"
fi
done
▶️Скрипт, который проверяет и устанавливает доступные обновления безопасности:
#!/bin/bash
# Update the package repository
apt update
# Install available security updates
apt upgrade -y --security
▶️Скрипт, который настраивает и включает файерволл:
#!/bin/bash
# Install the necessary packages
apt update
apt install -y ufw
# Allow SSH connections
ufw allow ssh
# Enable the firewall
ufw enable
🖼️ Дочитать статью на Habr'e
🔨 bash_help8 889
13 марта, 11:00
Как увеличить производительность облачных баз данных в 10 раз
Selectel проведет вебинар, для DBA- и DevOps-инженеров, системных администраторов и руководителей IT-проектов, где покажут, как одновременно в 10 раз увеличить производительность баз данных и сократить расходы на инфраструктуру до 47%.
На практических кейсах и расчетах:
— Расскажут про подбор железа и оптимизацию ОС для максимальной производительности облачных баз данных,
— Поделятся сравнением производительности баз данных на выделенном облачном сервере с аналогичными сервисами.
Мероприятие бесплатное. Посмотреть программу вебинара и зарегистрироваться можно по ссылке: https://slc.tl/lrn7o
Чтобы не пропустить вебинар и узнавать о митапах, воркшопах и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2Vtzquyp3UA
8 889
Вирус получил доступ к системе — сможете его остановить?
Участвуйте в CTF-турнире и выигрывайте призы
С 17 по 21 марта Selectel проведет онлайн-соревнование по кибербезопасности. Участникам нужно искать и захватывать «флаги» — секретные строки на веб-страницах. Регистрируйтесь, чтобы принять участие в CTF-турнире и выиграть один из 15 призов. Победители получат мерч Selectel, печатный IT-комикс «Мультихакер» и не только.
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2Vtzqvb3tPG
8 889
⚙️ Свой прокси. Волшебство разделения ресурсов в одном браузере
✔️Представьте себе ситуацию: вы хотите в одном браузере смотреть любимый сериал на зарубежном сайте, который требует прокси, и одновременно листать локальные новости, где прокси только мешает. Обычно это превращается в жонглирование настройками или даже окнами браузера — скучно и утомительно. Но что, если я скажу, что есть простой и изящный способ объединить эти миры? Сегодня я поделюсь с вами крутым Bash-скриптом для сервера на Ubuntu, который настроит прокси-сервер Squid так, чтобы вы могли легко разделять ресурсы с прокси и без него в одном браузере. Давайте разберёмся, как это работает, и почему это так увлекательно!
➡️ Зачем это нужно?
▶️Идея проста, но гениальна: прокси-сервер становится вашим личным швейцаром, который решает, какие запросы отправлять через туннель в другую страну, а какие оставить "дома". Например, вы настроили прокси для доступа к заблокированным сайтам или для маскировки IP, но не хотите, чтобы он затрагивал локальные ресурсы — скажем, ваш банковский сайт или форум соседнего города. Скрипт, о котором я расскажу, создаёт такую возможность через авторизацию и настройки Squid. Это как волшебная кнопка "вкл/выкл" для прокси прямо в вашем браузере!
▶️Скрипт устанавливает прокси-сервер Squid, настраивает авторизацию (чтобы никто лишний не подключился), маскирует ваш IP для анонимности и даже открывает нужный порт в брандмауэре. Вы просто запускаете его, вводите имя пользователя и пароль, а в конце получаете готовые данные для подключения. Никаких часов в терминале или гугления сложных команд — всё быстро и с энтузиазмом!
🖼️ Ссылка на скрипт
🔨 bash_help
8 889
Как попасть в команду СберТеха, если ты Middle DevOps?
Вячеслав Федосеев приглашает эйчаров и тимлидов из BigTech, чтобы разобраться, как они нанимают DevOps-инженеров:
✔️ Какими навыками и компетенциями обладает идеальный Middle DevOps?
✔️ Что важно знать и уметь, чтобы случился мэтч с первого собеседования?
✔️ На какие харды и софты смотрят, какие неочевидные знания могут стать плюсом для кандидата?
Ведущий — Вячеслав Федосеев, TeamLead DevOps в «Честном знаке», автор канала «DevOps Bootcamp с Федосеевым»
Будет полезно тем, кто начинает свой путь в качестве DevOps, думает о смене карьерного трека или уже работает по специальности, но хочет прокачать резюме и получить оффер мечты.
📍Встречаемся с гостями из СберТеха 10 марта в 17:00, подпишитесь на Telegram-канал Вячеслава, чтобы не пропустить начало вебинара и другие встречи проекта.
erid: 2W5zFJiq7x4
8 889
⚙️ Bash-cкрипт для просмотра
времени жизни (TTL) для записи DNS на Linux, Unix, macOS
✔️Этот скрипт написан на языке Bash, поэтому вам необходимо установить его. Кроме того, команда dig должна быть установлена в Linux, FreeBSD, macOS или Unix-подобных системах.
▶️Для поиска DNS TTL в Linux, macOS и Unix мы используем следующий синтаксис команды dig:
dig {TYPE} {DomainNameHere} {NS-AUTHNAME-SERVER-HERE}
➡️ Как посмотреть время жизни (TTL) для записи DNS / домена
▶️Создайте новый скрипт find-dns-ttl.sh следующим образом:
#!/bin/bash
# Usage:
# Shell script too see Time-To-Live (TTL) for a DNS record in human readable
# format.
#
# Tested on:
# Ubuntu/Debian/macOS with bash shell v5.x
#
# Note:
# dig must be installed on your system this to work.
#
# Syntax:
# /path/to/find-domain-ttl cyberciti.biz
# /path/to/find-domain-ttl google.com | more
# /path/to/find-domain-ttl cyberciti.biz | grep -i 'AAAA'
# ----------------------------------------------------------------------------
# Written by Vivek Gite <https://www.cyberciti.biz/>
# (c) 2021 Vivek Gite under GNU GPL v2.0+
# ----------------------------------------------------------------------------
# Last updated: 26/Jul/2024
# ----------------------------------------------------------------------------
set -eu -o pipefail
domain="${1:-NULL}"
# fail safe i.e. if no $1 passed to the script, die with an error
[ "$domain" == "NULL" ] && { echo "Usage: $0 domain-name"; exit 1; }
# make sure dig installed else die
if ! type -a dig &>/dev/null
then
echo "Error: $0 - dig command not found."
exit 2
fi
# repeat given char 90 times
repeat(){
for i in {1..90}; do echo -n "$1"; done
}
# get first ns for domain
# remove everything except domain.com
str="${domain%.*.*}"
domain="${domain/$str./}"
ns="$(dig +nocmd +noall +answer ns "${domain}" | head -1 | awk '{ print $5}')"
# now print ttl for a, aaaa, and mx
repeat '-'
echo -e "\nDomain\t\t\tTTL\tIN\tRecord\tAnswer"
repeat '-'
echo
for i in a aaaa mx
do
dig +nocmd +noall +answer +ttlunits "${i}" "${domain}" "@${ns}"
done
▶️Цикл bash for выполняет всю работу за вас:
for i in a aaaa mx
do
dig +nocmd +noall +answer +ttlunits "${i}" "${domain}" "@${ns}"
done
🖼️ Прочитать статью полностью
🔨 bash_help8 889
Управление кластерами в Kubernetes — мастхэв для DevOps-инженера
Если вы хотите расти и в цене, и как спец — важно уметь автоматизировать развёртывание приложений. Углубиться в эту тему этому можно с помощью базы знаний Яндекса.
Yandex Cloud открыл свободной доступ к материалам для инженеров. Из них вы узнаете всё об автоматизации работы с кластерами.
Из программы для DevOps-инженеров вы узнаете, как:
▪️Развёртывать кластеры;
▪️Настраивать сети;
▪️Автоматизировать работу;
▪️Контролировать доступ через RBAC;
▪️Устранять проблемы с кластером и приложениями;
▪️Работать с Yandex Managed Service for Kubernetes.
Программа не займёт много времени — она рассчитана на 24 часа освоения. При этом можно двигаться в свободном темпе, а материалы останутся с вами навсегда. В программе и теория, и практика — 60 заданий для самостоятельного выполнения.
Подробнее о базе знаний — по ссылке.
8 889
⚙️ DevDocs.io
✔️Веб-платформа, предназначенная для разработчиков программного обеспечения, предоставляющая документацию по различным языкам программирования, фреймворкам и инструментам командной строки.
▶️Страница, посвящённая Bash, содержит исчерпывающую справочную информацию по этому популярному интерпретатору командной строки, который широко используется в Unix-подобных операционных системах.
➡️ Особенности страницы DevDocs по Bash
💠 Удобный интерфейс: Документация представлена в виде интерактивного справочника, где легко находить нужные команды и опции. Структура документа позволяет быстро перемещаться между различными разделами, такими как синтаксис, встроенные команды, переменные окружения и специальные символы.
💠 Поисковая система: Встроенный поиск помогает мгновенно найти нужную команду или параметр, экономя время разработчика. Это особенно полезно при работе с большим количеством команд и опций.
💠 Описание синтаксиса: Подробное руководство по использованию базовых конструкций Bash, включая условные операторы, циклы, функции и обработку сигналов. Это делает страницу ценным ресурсом для начинающих пользователей, желающих освоить основы работы с командной строкой.
💠 Примеры использования: В каждом разделе приводятся практические примеры, иллюстрирующие применение различных команд и функций. Это помогает лучше понять, как работают те или иные элементы Bash.
💠 Совместимость с разными платформами: Информация актуальна для всех основных дистрибутивов Linux, macOS и других Unix-подобных систем, поддерживающих Bash.
💠 Обновляемость: Платформа регулярно обновляется, чтобы соответствовать последним изменениям в документации Bash. Это гарантирует, что пользователи получают самую свежую и точную информацию.
💠 Поддержка оффлайн-доступа: Возможность скачивания локальной копии документации для использования без подключения к Интернету.
💠 Интеграция с IDE: Некоторые интегрированные среды разработки поддерживают интеграцию с DevDocs, позволяя разработчикам получать доступ к документации прямо из редактора кода.
▶️ Эта страница является незаменимым инструментом для любого IT-специалиста, работающего с командной строкой Bash, будь то администратор серверов, разработчик программного обеспечения или энтузиаст, стремящийся углубить свои знания в области автоматизации задач и скриптов.
🖼️ Перейти на сайт
🔨 bash_help
8 889
Python — самый простой путь в IT! Проверено тысячами людей.
Думаете, почему язык Python так востребован? Он простой, интуитивно понятный и подходит для любого уровня подготовки. Если вы хоть раз задумывались о программировании, начните с бесплатного мини-курса по Python: https://epic.st/mAwkU5?erid=2VtzqvtuRTL
Сами «пощупаете», напишете сайт и пару Telegram-ботов, вот тогда и поговорим. Времени много не займёт: всего 4 занятия в записи — можно смотреть, когда удобно. После видео — практика и тесты.
А ещё подарки: подборка полезных материалов по Python-разработке, скидка 10 000 рублей на любой курс Skillbox и персональная карьерная консультация. Последняя очень кстати: не зайдёт Python — разберётесь с экспертом, что зайдёт, и получите тестовый доступ к профессии.
Переходите и регистрируйтесь 😉 https://epic.st/mAwkU5?erid=2VtzqvtuRTL
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
8 889
⚙️ OnlineGDB
✔️Предоставляет среду для написания скриптов Bash с функциями отладки и выполнения кода в удобном интерфейсе.
▶️Сервис позволяет писать, компилировать, запускать и отлаживать скрипты Bash онлайн. Для этого нужно написать код в редакторе и нажать кнопку «Выполнить».
➡️ Некоторые особенности OnlineGDB:
▶️не требуется предварительная настройка для кодирования или отладки;
▶️запуск и отладка одним нажатием кнопки;
▶️автоматическое сохранение исходного кода в браузере локально;
▶️удобный интерфейс.
🖼️ Перейти на сайт
🔨 bash_help
8 889
⚙️ Создание динамических переменных на Bash
✔️Конечно, можно использовать это для удаления кучи условий
if, когда есть несколько наборов переменных env для разных окружений.
▶️Подход, который мы будем использовать, совместим с Bash 3.2+, что очень удобно, если вы хотите, чтобы он работал “из коробки” на macOS.
#!/usr/bin/env bash
set -o errexit
set -o pipefail
set -o nounset
# Представьте, что у вас есть несколько переменных окружения для нескольких сред, таких как.
# как TEST, STAGING и PROD. Обычно они существуют в файле .env и
# передаются с помощью `. .env", я оставил их здесь, чтобы они были самостоятельными.
export TEST_API_KEY="abc123"
export STAGING_API_KEY="def456"
export PROD_API_KEY="ghi789"
# Теперь представьте, что у вас есть shell-скрипт, где первым аргументом является env, с которым вы
# с которым вы хотите работать, например, `./demo TEST ...` или `./demo PROD ...`.
ENV="${1}"
# И теперь вы хотите использовать значение API_KEY конкретного окружения.
# переменной. На данный момент не имеет значения, из какого окружения она получена.
API_KEY="${ENV}_API_KEY"
# Здесь мы можем получить доступ как к имени переменной, так и к ее значению. Вы можете захотеть
# использовать любой из них в зависимости от вашего случая
echo "${API_KEY}=${!API_KEY}"
▶️Если бы вы запустили этот скрипт вот так ./demo TEST, то получили бы в ответ API_KEY=abc123.
Использование ${!API_KEY} называется косвенным расширением.
Это описано в официальной документации по Bash.
▶️Без использования динамических переменных вы можете решить ту же проблему, но вы можете написать код, который выглядит следующим образом:
if [ "${ENV}" == "TEST" ]; then
API_KEY="${TEST_API_KEY}"
elif [ "${ENV}" == "STAGING" ]; then
API_KEY="${STAGING_API_KEY}"
elif [ "${ENV}" == "PROD" ]; then
API_KEY="${PROD_API_KEY}"
else
echo "Invalid environment!" && exit 1
fi
▶️Теперь, если вы прочтете echo “${API_KEY}”, то получите abc123, если ENV=”TEST”.
▶️Не то чтобы приведенный выше код был ужасен.
Можно привести доводы в пользу того, что он более прост, но он может быстро стать менее удобным для обслуживания.
➡️ Если у вас есть куча переменных окружения, то использование динамических переменных является более чистым решением, оно уменьшает количество дублирований при объявлении одной и той же переменной для каждого окружения.
🖼️ Ссылка на источник
🔨 bash_help8 889
• infosec - это один из самых ламповых каналов по информационной безопасности, где говорят об истории ИТ, публикуют актуальные новости и пишут технический материал на разные темы:
- Что из себя представляет официально взломанный iPhone от Apple?
- К чему могла привести опечатка в инфраструктуре платёжной системы MasterCard?
- Авторский материал для ИБ специалистов с закрытого хакерского форума XSS;
- Бесплатный бот, который проверит файлы на предмет угроз более чем 70 антивирусами одновременно.
• А еще у нас часто проходят розыгрыши самых актуальных и новых книг для ИБ специалистов. Так что присоединяйся, у нас интересно!
8 889
⚙️ VPS Security Audit Script
✔️Лёгкий, не требующий зависимостей bash-скрипт для аудита безопасности и производительности VPS (виртуального частного сервера).
➡️ Скрипт выполняет различные проверки и предоставляет цветные результаты (Pass/Warn/Fail):
▶️Проверки безопасности: конфигурация SSH (логин root, аутентификация по паролю, порты не по умолчанию), статус брандмауэра, конфигурация Fail2ban, неудачные попытки логина, настройка автоматических обновлений и другое.
▶️Мониторинг производительности: использование диска (с общим, используемым и доступным пространством), использование памяти (с детальными метриками), использование CPU (со средними нагрузками и информацией о ядрах), время работы системы, ожидающие обновления, необходимость перезагрузки системы.
➡️ Некоторые особенности скрипта:
▶️цветной вывод для удобного чтения;
▶️генерация подробного отчёта (сохраняется в текстовый файл);
▶️действенные рекомендации по неудачным проверкам;
метрики системных ресурсов с абсолютными значениями и процентами;
▶️отсутствие внешних зависимостей (используются стандартные инструменты Linux).
🐙 Перейти на Github
🔨 bash_help
