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

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
⚙️ Скрипт для автоматического создания резервной копии MySQL и ее хранения по FTP-соединению

✔️Этот простой bash-скрипт создаст резервную копию базы данных MySQL и сохранит ее на FTP-сервере.
Скрипт также удалит старые резервные копии с сервера, освободив место.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥3
Приглашаем на большой эксклюзивный вебинар по виртуализации от команды Deckhouse! Вы узнаете всё об уникальных возможностях Deckhouse Virtualization Platform (DVP), какие задачи она решает и как может удовлетворить самые взыскательные требования современной ИТ-инфраструктуры.

📌 12 июля в 12:00, онлайн. Требуется регистрация.

Среди ключевых спикеров:
– Давид Мэгтон, технический директор и сооснователь компании «Флант»;
– Павел Тишков, технический директор Deckhouse Virtualization Platform.

На вебинаре обсудим:
🔹 ожидания клиентов от современной платформы виртуализации;
🔹 особенности DVP и сценарии использования;
🔹 сетевые политики, микросегментацию, балансировку трафика, наблюдаемость;
🔹 блочные хранилища: встроенные СХД, интеграция с внешними СХД;
🔹 производительность виртуальных машин на разных платформах, масштабирование, аппаратные и системные требования;
🔹 планы по развитию DVP и лицензирование.

Присоединяйтесь!
3
⚙️ REST API сервер на Bash с использованием сокетов и Apache

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

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

➡️ В статье будут примеры, с помощью которых можно создать такой сервер используя сетевые сокеты netcat , socat и ncat, а также веб-сервера Apache с использованием встроенных модулей.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥43
2 полезных ресурса по информационной безопасности и этичному хакингу:

Social Engineering — самый крупный ресурс в Telegram, посвященный информационной безопасности, социальной инженерии и поиску информации из открытых источников.

infosec — редкая литература, курсы и уникальные мануалы для ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.
1👍1
⚙️ Полезные команды GNU/Linux для разработчика. Часть 1

✔️В этой статье поговорим про команды GNU/Linux, которые удобно использовать разработчику для решения повседневных задач. Подборка ориентирована на тех, кто не хочет залезать глубоко в систему, но по работе вынужден иногда ходить на Linux-сервер. Здесь мы собрали то, чем пользуемся сами и к чему привыкли, однако почти все упомянутые задачи можно решить и другими способами.

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

Просмотр информации о системе и пользователях
▶️Самая первая команда - информация о пользователе — id <user>. Если ее набрать без параметров, вы получите информацию о том пользователе, под которым работаете в данный момент, а также список групп, в которых состоите. Иногда бывает полезно глянуть как раз список групп, чтобы понять, есть ли у вас права, например на исполнение команд Docker.

▶️Чтобы посмотреть разнообразную информацию о системе (о пользователях, времени ее работы и т.п.), есть три команды — who, uptime, w.

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

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍43
😱 👉 Важное событие для всех, кто хочет повысить производительность своих серверов!

🔆 Присоединяйтесь к открытому уроку «Оптимизация Nginx и Angie под высокие нагрузки»

На занятии вы:
- поймёте, какие параметры влияют на производительность;
- научитесь оптимизировать серверную часть;
- узнаете, как работать с клиентской производительностью.

🏆 Спикер Николай Лавлинский — технический директор в Метод Лаб, PhD Economic Science, опытный руководитель разработки и преподаватель.

👉 Регистрируйтесь для участия: https://otus.pw/xvNy/?erid=LjN8K9nP2
👍2
🎲 Высокая доступность в Kubernetes: бесплатный вебинар

Привет! Мы — команда Слёрма, учебный центр для айти-специалистов middle+ и фанаты k8s.😎 

11 июля в 18:00 мы приглашаем вас на вебинар «Высокая доступность в Kubernetes: пробы, реквесты/лимиты, HPA».

На встрече обсудим:

Можно ли не делать рединесс пробы и лить трафик сразу на сервер?
Что будет, если выставить неправильные пробы?
И еще много интересного!

Спикеры:

➡️ Кирилл Борисов, SRE Lead в MTS Digital
➡️ Всеволод Севостьянов, Staff engineer в Lokalise
➡️ Дмитрий Будаков, Системный инженер в интеграторе

Зарегистрироваться на вебинар можно с помощью нашего бота-помощника. Подключайтесь!

🔗 ХОЧУ НА ВЕБИНАР

erid: LjN8K5hwP
2👍1
⚙️ Полезные команды GNU/Linux для разработчика. Часть 2

✔️Подборка ориентирована на тех, кто не хочет залезать глубоко в систему, но по работе вынужден иногда ходить на Linux-сервер. Речь пойдет о возможностях bash, работе с сетью и ssh.

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

Не все знают, но у bash есть автодополнение - можно начать писать имя команды и если она есть где-то в переменной path, bash автоматически ее дополнит. Применить автодополнение можно клавишей TAB. Правила автодополнения на самом деле чуть более сложные и их можно редактировать самостоятельно. Для многих распространённых команд такие правила уже созданы и, скорее всего, уже установлены в вашем дистрибутиве.

▶️Очистить консоль от предыдущего хлама, который там накопился можно командой clear

▶️Альтернативная команда позволяет также вернуть клиентскую часть терминала в первоначальный режим (если внезапно все сломалось) — reset

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥73
⚙️ Advanced Bash-Scripting Guide

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

➡️ Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом, раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell.

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

🖼️ Перейти к руководству

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥73
Бесплатный однодневный интенсив по искусственному интеллекту!

За 1 день научим тебя писать нейронные сети. Напишешь 9 нейронок с нуля, без опыта программирования!

На интенсиве ты создашь:
- 3 нейронки из области компьютерного зрения
- 3 нейронки по распознаванию и обработке текста
- 3 нейронки по сегментации, временным рядам и аудио

Регистрируйся прямо сейчас, исследуй футуристичный мир нейросетей с нами!

Реклама. ООО "ТЕРРА ЭЙАЙ". ИНН 9728019395. erid: LjN8KQEYZ
3😐2👍1
⚙️ Как отправлять и обрабатывать графические уведомления на bash

✔️Сегодня будет разбор интересной задачи: как рисовать красивые графические уведомления и взаимодействовать с ними из скриптов bash.

➡️ Демонстрация будет осуществляться не на абстрактных примерах, а на вполне реальной задаче — необходимо уведомить пользователя о скором истечении пароля и дать возможность его сменить. Ситуация не надуманная — компьютер в домене, sssd даёт возможность авторизоваться/аутентифицироваться пользователю, но вот демонстрировать ему информацию о необходимости смены пароля не может — не его уровень. Вроде как gdm готов этим заняться, только весьма специфически — при удачном логине быстро проскакивает малозаметная строчка с информацией о последнем входе и количестве дней до смены. Раньше, когда все пользователи Linux в большинстве своём были сисадминами/гиками, это никого особо не напрягало. А вот сейчас, из-за активного импортозамещения, появилось большое количество «начинающих» пользователей Linux и, как следствие, достаточно глупые заявки — учётка заблочилась, потому что кто-то не поменял пароль вовремя.

✔️Архитектура проекта
Мы люди серьёзные — сначала думаем, а потом делаем (или не делаем). Набросаем нечто вроде ТЗ: Уведомление должно быть ненавязчивым, а также всё должно быть красиво и удобно!

В качестве среды исполнения будет bash, coreutils — в общем всё, что есть в фундаментальных трудах предков, с учётом современных реалий.

➡️ Скрипт будет исполняться при старте графической сессии пользователя и производить следующие действия:

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

Имеются удобные для нас факторы — т. к. скрипт выполняется в графической сессии пользователя, то выполняется он с его правами и установленной переменной DISPLAY.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥53
Курс "Профессия Пентестер" стартует 22 июля!

- Научитесь атаковать сети, WEB-сайты, операционные системы и локальные устройства и проводить внутренний и внешний пентест
- Участвуйте в BugBounty программах или постройте карьеру в сфере информационной безопасности

Полный цикл обучения:
- от освоения Kali Linux и администрирования, до написания эксплойтов и шелл-кода, обхода антивирусных решений
- от сетевой разведки до эксплуатации уязвимостей, повышения привилегий и закрепления в сети

Хотите стать пентестером? Присоединяйтесь к нам – защищайте мир от угроз, находя уязвимости и предотвращая кибератаки!

Пишите нам @Codeby_Academy или 
Узнайте подробнее о курсе
👍31🔥1
⚙️ Как запускать команды внутри контейнера Docker?

✔️ Контейнер Docker – это изолированная среда, которая обычно содержит одно приложение со всеми необходимыми зависимостями.
Зачастую нам необходимо запустить некоторые команды внутри контейнера. Есть несколько способов, которыми мы можем выполнить команду внутри контейнера и получить требуемый результат.

➡️ Использование интерактивного шелла
Мы можем напрямую обращаться к оболочке контейнера и выполнять наши команды, как в обычном терминале Linux. Чтобы получить интерактивную оболочку остановленного (не в рабочем состоянии) контейнера, вы можете использовать:
$ docker run -it ubuntu bash


Мы попали прямо в новый контейнер Ubuntu, где мы можем запускать наши команды.

Если контейнер уже запущен, вы можете использовать команду exec, как показано ниже.

Узнаем идентификатор контейнера.
$ docker ps


Затем зайдем в контейнер с идентификатором, например, c2d969adde7a
$ docker exec -it c2d969adde7a bash 
root@c2d969adde7a:/#


В приведенном выше выводе вы можете заметить, что мы запустили сеанс bash контейнера nginx, который находился в рабочем состоянии.
Здесь мы можем выполнить любую поддерживаемую команду и получить результат.

Обратите внимание: в вашем контейнере может не быть bash, и если это так, вы можете использовать sh.
docker exec -it c2d969adde7a sh


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

Cинтаксис будет таким:
$ docker exec <container-id or name> <command>


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

Мы можем использовать команду RUN внутри Dockerfile.
Вот наш пример Dockerfile:
FROM nginx:latest
RUN nginx -V


Данный метод просто извлекает последний образ nginx из реджестри, а затем запускает команду nginx -V, чтобы отобразить версию Nginx при создании образа.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥5👍3
Курс по Kubernetes для разработчиков. Видеокурс по Docker в подарок ⤵️

Ваша компания решила мигрировать сервисы на Kubernetes?
Большая часть интересных вам вакансий требует навыков в K8s?
Вы не врубаетесь, где границы ответственности девопсов и разработчиков в работе с кубами?

Разбираемся с этим на курсе Слёрма «Kubernetes для разработчиков» 😎

Старт потока — 22 июля

ПРОГРАММА КУРСА

Вас ждут:
7 недель обучения 
112 часов практики + 26 часов теории
Общий чат со студентами, экспертами и куратором
Стенды для отработки практических навыков
Сдача сертификации
Итоговый проект

Эксперты — действующие devops-инженеры:
➡️ Марсель Ибраев, Senior System Engineer G42 Cloud
➡️ Павел Селиванов, архитектор Yandex Cloud

🎁 При оплате обучения до 22 июля — видеокурс по основам Docker в подарок🎁

🔗 ПРОЙТИ ПЕРВЫЕ ТРИ УРОКА БЕСПЛАТНО
👍2
⚙️ Подборка часто используемых инструментов удаленного подключения

▶️ Xshell — это очень мощное программное обеспечение для эмуляции защищенного терминала, которое поддерживает SSH1, SSH2 и протокол TELNET платформы Windows. Xshell можно использовать в интерфейсе Windows для доступа к удаленным серверам на различных системах, тем самым лучше достигая цели терминала удаленного управления.

▶️ SecureCRT — это мощное программное обеспечение для эмуляции защищенного терминала, которое может помочь пользователям более безопасно подключаться к удаленным серверам, а также может быть использовано для реализации функций удаленного управления сервером и передачи файлов. SecureCRT поддерживает протоколы SSH1, SSH2, Telnet, Rlogin, Serial и SSL/TLS, которые могут быть использованы для подключения к различным удаленным терминалам, что позволяет удовлетворить различные потребности пользователей.

▶️ WinSCP — это графический клиент SFTP с открытым исходным кодом, который использует SSH в среде Windows. Он также поддерживает протокол SCP. Его основная функция — безопасное копирование и передача файлов между локальным и удаленным компьютерами.

▶️ Putty — это легкий клиент SSH и Telnet, который может помочь пользователям подключиться к удаленным серверам, а также поддерживает протокол шифрования аутентификации SSH-2, что может сделать доступ пользователей к сети более безопасным. Putty также поддерживает протокол SSH на платформе Windows, что позволяет пользователям лучше контролировать удаленные серверы.

▶️ MobaXterm предоставляет комплексные возможности, почти все важные удаленные сетевые инструменты (такие как SSH, X11, RDP, VNC, FTP, MOSH и т.д.), а также команды Unix на рабочем столе Windows (bash, ls, cat, sed, grep, awk, rsync и т.д.), и автоматически открывает режим sftp после входа в систему.

▶️ Tabby — это современный инструмент терминального подключения, с открытым исходным кодом и кроссплатформенный, поддерживающий системы Windows, MacOS и Linux. Tabby имеет более 20k+ Star на Github, что говорит о том, что это очень популярный терминальный инструмент!

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥4😐3
⚠️ Как создать собственный тип данных с помощью PostgreSQL?

Расскажем на открытом уроке «Пользовательские типы данных в PostgreSQL» в рамках практического курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS

🔹На открытом уроке рассмотрим как можно создать пользовательский тип и как с ним работать.

🔹Разберем несколько примеров детально "до винтика"

🦾  PostgreSQL — навык, открывающий двери в более интересные и перспективные проекты. Тестируйте занятие на бесплатном уроке и начните обучение уже 30 июля. 

👉  Регистрация и подробности
https://otus.pw/KVCL/?erid=LjN8KRVSz
2
⚙️ Каталог /bin

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

/bin содержит оболочки типа bash и часто используемые команды, такие как cp, mv, rm, cat, ls, grep, tar, kill, echo, ps, gzip, ping, su и vi, которые используются как системным администратором, так и непривилегированными пользователями. Он содержит необходимые двоичные файлы (в отличие от каталога /usr/bin), в том числе для загрузки. Он также может содержать команды, которые косвенно используются скриптами.

Список всех программ в /bin можно посмотреть с помощью команды ls, которая обычно используется для просмотра содержимого каталогов : ls /bin

➡️ Следующие команды или символические ссылки на них должны находиться в /bin:

cat — Утилита для конкатенации файлов в стандартный вывод
chgrp — Утилита для изменения группы, которой принадлежит файл или директория
chmod — Утилита для изменения прав доступа к файлам
chown —Утилита для изменения владельца и группы файлов
cp — Утилита для копирования файлов и каталогов
date — Утилита для вывода или установки системных данных и времени
dd — Утилита для преобразования и копирования файла
df — Утилита для создания отчета об использовании дискового пространства файловой системы
dmesg — Утилита для вывода буфера сообщений ядра в стандартный поток вывода (по умолчанию на экран)
echo — Утилита для отображения строки текста
false — Утилита, единственное действие которой — возвратить ненулевое значение (обычно 1)
hostname — Утилита для отображения или установки имени хоста системы
kill — Утилита отправляет сигнал процессу(-ам), указанному с помощью каждого из операндов идентификатор_процесса
ln — Утилита командной строки для создания ссылок между файлами
login — Утилита, которая позволяет пользователям войти в систему
ls — Утилита для просмотра содержимого каталога
mkdir — Утилита для создания каталогов
mknod — Утилита создаёт запись в файловой системе (обычный файл, файл устройства или именованный канал)
more — Утилита для постраничного просмотра текста
mount — Утилита для монтирования файловой системы
mv — Утилита для перемещения/переименования файлов
ps — Утилита для сообщения о состоянии процесса
pwd — Утилита выводит полный путь от корневого каталога к текущему рабочему каталогу
rm — Утилита для удаления файлов или каталогов
rmdir — Утилита для удаления пустых каталогов
sed — Утилита Sed работает с текстовыми файлами
sh — Это интерпретатор командного языка, который выполняет команды, прочитанные из строки командной строки, стандартный ввод или указанный файл
stty — Утилита для изменения и печати настроек терминальной строки
su — Утилита для изменения идентификатора пользователя
sync — Утилита Unix, предназначенная для обновления файловых систем и для синхронизации данных на диске с данными в памяти
true — Утилита, единственное действие которой — возвратить значение 0
umount — Утилита для размонтирования файловых систем
uname — Утилита для вывода информации о системе

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥75😐1
Курс "Профессия Пентестер" стартует 22 июля!

- Научитесь атаковать сети, WEB-сайты, операционные системы и локальные устройства и проводить внутренний и внешний пентест
- Участвуйте в BugBounty программах или постройте карьеру в сфере информационной безопасности

Полный цикл обучения:
- от освоения Kali Linux и администрирования, до написания эксплойтов и шелл-кода, обхода антивирусных решений
- от сетевой разведки до эксплуатации уязвимостей, повышения привилегий и закрепления в сети

Хотите стать пентестером? Присоединяйтесь к нам – защищайте мир от угроз, находя уязвимости и предотвращая кибератаки!

Пишите нам @Codeby_Academy или 
Узнайте подробнее о курсе
1
⚙️ Шпаргалка по Docker для DevOps-инженера

✔️Ловите полезную шпаргалку по Docker, которая содержит примеры различных команд и их пояснение.

➡️ Содержание:
▶️Установка Docker
▶️Информация и регистрация
▶️Управление контейнерами (Container Management)
▶️Управление образами (Images Management)
▶️Отличия Save, Load от Export, Import
▶️Запуск docker (Run)
▶️Хранилище (Volumes)
▶️Сеть (Network)
▶️CMD VS ENTRYPOINT
▶️Лучшая практика(Best Practice)

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥107👍3
⚙️ LUKS. Автомонтирование при загрузке

✔️Для автоматической расшифровки LUKS разделов и их монтирования можно использовать небольшой bash скрипт, который запускается при старте системы.

Причина написания этой статьи: "все диски необходимо шифровать!". Это нужно не только на случай утери устройства, но и на случай замены на новое. Зачастую об этом вспоминаешь только после того, как выбросил незашифрованный носитель. После чего молишься, чтобы его на свалке никто никогда не нашёл. Но чтобы шифрование не превратилось в боль, оно должно открываться незаметно...

➡️ Далее действия для создания скрипта делаем от лица root пользователя.
▶️Создаём файл /root/luks_passwd пишем пароль для расшифровки тома.
▶️Создаём скрипт /root/luks_unlock, который будет разблокировать и монтировать раздел:

key_file='/root/luks_passwd'  # путь к файлу с ключом
mount_point='/mnt/files' # точка монтирования
UUID='658f0eb8-fdc6-4440-a8fd-46b7bc8ae0ba' # UUID диска, который надо примонтировать к точке
name='files' # название диска для mapper

# определяем имя диска по его UUID (напр. /dev/sda1)
disk=''
while [[ ${#disk} == 0 ]]; do
# диск может подключаться не сразу после старта системы, поэтому делаем много попыток с задержко
echo "Получаем путь к диску по его UUID=${UUID}"
disk=$( blkid | grep ${UUID} | awk '{print $1}' | tr -d ':|\n' )
if [[ ${#disk} == 0 ]]; then
sleep 5
else
echo "Диск ${name} найден тут: ${disk}"
fi
done

# расшифровываем диск
while [[ ! -e /dev/mapper/${name} ]]; do
echo "Расшифровываем диск ${name}: ${disk}"
cat ${key_file} | cryptsetup luksOpen ${disk} ${name} -
if [[ ! -e /dev/mapper/${name} ]]; then
sleep 5
else
echo "Диск успешно расшифрован ${name}: ${disk}"
fi
done

# монтируем
while [[ "$( lsblk -o MOUNTPOINT | grep -i ${mount_point} | wc -l | tr -d '\n' )" == 0 ]]; do
echo "Монтируем ${name}: ${disk}"
mount /dev/mapper/${name} ${mount_point}
sleep 5
done

Ставим скрипт /root/luks_unlock на автозагрузку через крон. Для этого можно в файле /etc/crontab добавить в конец такую строку:
@reboot root bash /root/luks_unlock


Но этот файл затрётся при полном обновлении системы (например, через команду do-release-upgrade в Ubuntu). Поэтому лучше записать в персональные cron задачи. Для этого выполняем crontab -e и пишем в конец:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

@reboot bash /root/luks_unlock


Обратите внимание, что если не задать SHELL и PATH, то скрипт не выполнится корректно, потому что ему будет непонятно, откуда брать утилиты lsblk и blkid. А вот в общесистемном crontab файле эти директивы определены.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96🔥5