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

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
👉 Изучите возможности балансировки нагрузки в Nginx и Angie и прокачайте скиллы администратора Linux

🎁 Приходите на бесплатный практический урок от OTUS, где вы вместе с опытным экспертом:
1. изучите варианты балансировки нагрузки в веб-серверах Nginx и Angie;
2. научитесь их использовать;
3. разберёте различие продуктов и их особенности.

Занятие пройдёт 9 апреля в 19:00 мск в рамках курса «Инфраструктура высоконагруженных систем». Доступна рассрочка на обучение!

👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/M3VQ/?erid=LjN8KC7gQ 

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
2
⚙️ Планирование задач в течение определённого времени

Основа использования cron – выполнение задач в определённое время, как показано ниже. Это будет выполнять скрипт полного резервного копирования (full-backup) 10 июня в 8.30.

✔️Пожалуйста, обратите внимание, что поле времени использует 24-часовой формат, Так что 8 АМ – 8, 8 РМ – 20 часов.

30 08 10 06 * /home/developer/full-backup


▶️30 – 30-ая минута
▶️08 – 08 АМ
▶️10 – 10-й день
▶️* – каждый день недели

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🔥3
Forwarded from Видеоуроки IT
#bash
Bash

Видеоуроки:
1 — Введение
2 — Базовые понятия и логические конструкции
3 — Циклы
4 — Конструкция case
5 — Функции
6 — Поиск программы в PATH
7 — Проверка ввода: только буквы и цифры
8 — Нормализация дат
9 — Удобное представление больших чисел
...
25 — Кредитный калькулятор

📹 Плейлист YouTube

Канал: ПРОтехнологии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥84
Как создавать и настраивать различные типы сервисов в Kubernetes? Эта тема актуальна, так как играет ключевую роль в развертывании масштабируемых и надежных приложений в контейнерах.

👨‍🎓Освойте ее на бесплатном практическом уроке от OTUS. На вебинаре вы узнаете, как создавать и настраивать различные типы сервисов в Kubernetes:

✔️ClusterIP для внутренних связей;
✔️ExternalService для внешнего доступа;
✔️NodePort для открытия порта на уровне узла;
✔️LoadBalancer для балансировки нагрузки.

📆Занятие пройдёт 11 апреля в 20:00 (мск) в рамках набора на онлайн-курс «Инфраструктурная платформа на основе Kubernetes».

💥Спикер — преподаватель курса и действующий Senior DevOps Engineer. Также на вебинаре вы сможете задать эксперту вопросы о самом курсе и перспективах выпускников.

👉Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок https://bit.ly/3xnFwdT?erid=LjN8KXEqT

🔥Для всех, кто пройдет вступительный тест и запишется на бесплатный вебинар этого курса, будет доступна спец.цена на курс — обсудите свое обучение с менеджерами OTUS!

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
1👍1
⚙️ Какой процесс использует определённый файл или сетевой порт?

Иногда это необходимо узнать, чтобы можно было безопасно перезапустить или завершить процесс.
Команда fuser может помочь в этом, отображая PID (идентификаторы процессов), которые используют указанный файл или сокет.

▶️Вы пытаетесь размонтировать раздел, но система сообщает, что он занят. Чтобы увидеть, какие процессы используют этот раздел, выполните:
$ fuser -vm /монтированный/раздел 
▶️Чтобы узнать, какой процесс слушает определенный TCP порт (например, 80), используйте:
$ fuser -vn tcp 80 
▶️Для проверки, какой процесс использует определённый файл, выполните:
$ fuser /путь/к/файлу

▶️Если вы хотите, чтобы fuser также вывел имена команд, которые используют файл, используйте ключ -v:
$ fuser -v /путь/к/файлу 
▶️После определения PID, вы можете использовать команду ps для получения более подробной информации о процессе или kill для его завершения.
$ ps -p 12345 -o comm= 


🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍159🔥3
⚙️ Airgeddon

Универсальный bash-скрипт для систем Linux для аудита беспроводных сетей.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥43
😈 Social Engineeringсамый крупный ресурс в Telegram, посвященный Информационной Безопасности, OSINT и Cоциальной Инженерии.

Особое внимание стоит обратить на следующую информацию:

Собственный бот, который проверит Ваш файл 70 антивирусами одновременно.
Наш репозиторий с подборкой материала для изучения компьютерных сетей.
Коллекция инструментов и ресурсов для поиска информации о человеке в 2024 году.
Актуальные методы социальной инженерии и профайлинга.
Бесплатные курсы для изучения ИБ и OSINT.

Вас ждёт только актуальный и качественный материал. @S.E.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
⚙️ Прокачай терминал! Полезные трюки, которые сделают тебя гуру консоли

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

✔️Эта статья не обучит тебя, как пользоваться консолью, как объединять команды в пайпы и перенаправлять ввод-вывод. Она не о том, как писать скрипты или функции. Из нее ты не узнаешь, чем отличается bash от tcsh. Ее задача — показать тебе, как использовать консоль на всю катушку, добавить +50 к скорости ввода команд и +100 к эффективности.

Содержание статьи:
▶️Мигрируем на ZSH
▶️Перемещаемся по каталогам быстро
➡️Fasd
➡️Peco
▶️Используем автодополнение на полную катушку
▶️Работаем с историей команд
▶️Копируем, удаляем, переименовываем
▶️Ищем правильно
▶️Работаем с буфером обмена
▶️Выводы

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍62
⚡️Совместно с компанией Zyxel разыгрываем 5 сетевых устройств

– Точка доступа Zyxel NWA1123ACv3
– 4g-роутер Zyxel LTE3202-M437
– Гигабитный роутер Zyxel NBG6515
– Портативный роутер Zyxel WAH7601
– Гигабитный коммутатор Zyxel GS-108B

Победители самостоятельно выбирают какой приз им достанется. Отправка по России Почтой за счет отправителя.

Для участия нужно:

1. Быть подписанным на мой канал @poznyaevru
2. Подписаться на канал Zyxel Новости @zyxel_news
3. Нажать на кнопку «Участвовать»

Итоги подведем 22 апреля в 17:00 при помощи бота, который рэндомно выберет победителя.
👍63🔥3😐2
⚙️ Приёмы командной строки

✔️Как обращаться с каталогами с большим количеством файлов
Возможно, вы сталкивались с этой проблемой: вы пытались выполнить ls в каталоге с очень большим количеством файлов, но команда выдавала ошибку "список аргументов слишком длинный".
Есть несколько вариантов обойти это ограничение:
▶️Использование встроенной командной строки
Встроенный Bash не имеет ограничения ARG_MAX.
▶️Используйте find, когда вам нужны параметры форматирования.
find /data/test_xargs -type f -ls -printf '%name'

▶️Или с помощью форматирования, имитирующего ls:
find /data/test_xargs -type f -printf '%f\n


✔️Предположим, что вы хотите сжать все файлы в данном каталоге из предыдущего примера.

Нужен способ регулировать количество запросов на сжатие, чтобы вы не запускали больше процессов, чем количество имеющихся у вас процессоров.

▶️Попробуем сделать это с помощью find и xargs:
find /data/test_xargs -type f -print0| xargs -0 -P $(($(nproc)-1)) -I % gzip %


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

Команда taskset используется для установки или получения привязки к процессору запущенного процесса с учетом его pid или для запуска новой команды с заданным привязкой к процессору.

▶️В общем, мы всегда хотим оставлять один из процессоров "свободным" для задач операционной системы. Обычно ядро довольно хорошо работает, привязывая запущенные процессы к определенному процессору, чтобы избежать переключения контекста, но если вы хотите принудительно установить, на каких процессорах будет выполняться ваш процесс, вы можете использовать taskset.
taskset -c 1,2,3,4,5,6,7 find /data/test_xargs -type f -print0| xargs -0 -P $(($(nproc)-1)) -I % gzip %


🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥145👍4
Вместе уютно собираемся по вечерам каждый у себя дома и учимся верстать сайты с нуля. В комплекте приятная музыка, тёмная тема и добрейшее сообщество неопытных верстальщиков, которые вообще-то огого и всем ещё покажут.

Всё это будет на бесплатном марафоне по HTML и СSS «ночной кружок по вёрстке», который пройдёт с 18 по 23 апреля.

За 6 дней вы:

— Изучите основы веб-технологий и попробуете себя в роли фронтенд-разработчика;
— Напишете в тренажёрах свои первые строчки кода и увидите как изменяется страница сайта в реальном времени;
— Поймёте нравится ли вам веб-разработка.

Кстати, а ещё мы разыграем курс по HTML и СSS среди участников марафона.


Вступить в кружок.
😐3🔥2👍1
⚙️ Bash-скрипт для выполнения дампа всех баз данных MySQL, используемых на сервере

✔️Для запуска скрипта необходимо дать права на исполнение скрипту командой chmod +x dump_all_databases.sh.

✔️Запустите скрипт, выполнив одну из следующих команд:

./dump_all_databases.sh
sh dump_all_databases.sh
bash dump_all_databases.sh


✔️Дождитесь, когда выполнится процесс. Дампы будут сохранены в формате YYYYMMDD.name_db.sql.

#!/usr/bin/env bash

databases=`mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump --databases $db > `date +%Y%m%d`.$db.sql
# gzip $OUTPUT/`date +%Y%m%d`.$db.sql
fi
done


🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15😐65🔥4
Python-разработчики — одни из самых востребованных IT-специалистов на рынке. По данным HeadHunter, более 8 000 компаний ищут компетентных специалистов разных уровней в сфере Python-разработки. Хотите попасть в этот список?

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


Подробная программа: https://epic.st/_9-WO?erid=2Vtzqw5crUn

Что особенного в мини-курсе по Python:
— Подходит новичкам — от вас не требуется знаний и опыта в IT
— 4 крутых проекта для портфолио
— Практические задания для проверки знаний
— Живое общение со спикером
— 5 статей для старта карьеры в Python-разработке
— Бессрочный доступ к видео

Спикер — Анастасия Борнева, руководитель направления по исследованию данных в «Сбере». Опыт в программировании — более 9 лет. С 2018 года — эксперт по автоматизации процессов с помощью искусственного интеллекта в «Сбере».

Успейте записаться и получить подарки!

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
👍2
⚙️ Зарезервированные переменные Bash

$DIRSTACK — Содержимое вершины стека каталогов.
$EDITOR — Текстовый редактор по-умолчанию.
$EUID — Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя.
$UID — Содержит реальный идентификатор, который устанавливается только при логине.
$FUNCNAME — Имя текущей функции в скрипте.
$GROUPS — Массив групп к которым принадлежит текущий пользователь.
$HOME — Домашний каталог пользователя.
$HOSTNAME — hostname машины.
$HOSTTYPE — Архитектура машины.
$LC_CTYPE — Внутренняя переменная, которая определяет кодировку символов.
$OLDPWD — Прежний рабочий каталог.
$OSTYPE — Тип ОС.
$PATH — Путь поиска программ.
$PPID — Идентификатор родительского процесса.
$SECONDS — Время работы скрипта (в сек.)
$# — Общее количество параметров переданных скрипту
$* — Все аргументы переданыне скрипту(выводятся в строку).
$@ — Тоже самое, что и предыдущий, но параметры выводятся в столбик.
$! — PID последнего запущенного в фоне процесса.
$$ — PID самого скрипта.
$? — Содержит код завершения последней команды.

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥64
🧠 Вебинар "Как работают программы в Linux?"

На бесплатном практическом уроке от OTUS, вы вместе с опытным экспертом изучите системные вызовы, сигналы и межпроцессное взаимодействие в Linux. Также преподаватель ответит на все вопросы по теме. 

👉 Зарегистрируйтесь на вебинар чтобы принять участие и получить подарок https://otus.pw/k3BC/?erid=LjN8K5L1u 

🎁 Всем кто зарегистрируется подарим урок «Настройка Nginx для высоких нагрузок и защиты от DoS-атак»

Занятие пройдёт 16 апреля в 20:00 мск

📌 Вебинар пройдет в рамках курса «Инфраструктура высоконагруженных систем». Доступна рассрочка на обучение!

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
👍5🔥1
⚙️ uDork — инструмент для взлома Google

uDork - это сценарий, написанный на языке Bash Scripting, который использует передовые техники поиска Google для получения чувствительной информации в файлах или каталогах, поиска устройств IoT, обнаружения версий веб-приложений и тому подобное.

uDork НЕ совершает атаки на какие-либо серверы, он только использует предопределенные запросы (dorks) и/или официальные списки с сайта exploit-db.com (Google Hacking Database)

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥42😐1
🪞 Современные операционные системы

Видео:
1 — Установка Ubuntu в VirtualBox
2 — Типы ядер. Bash
3 — Файловая система
4 — Процессы
5 — Многопоточность и методы синхронизации

📹 Смотреть на YouTube

Rick Academy 🫥 #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥3
💥 Шоу-прожарка: собеседование на должность DevOps-инженера в прямом эфире

Хочешь узнать, что ждет на реальном собесе в айти?

18 апреля ты сможешь увидеть это вживую 

На твоих глаза реальный эйчар и матерый техдир будут заваливать стажера Геннадия во время собеседования.

Пройдет Геннадий собеседование или нет — решать зрителям.

Повторов не будет. Трансляция 18 апреля, ссылка будет на канале. Подписывайся, чтобы не пропустить🔥

erid: LjN8KEs7M
😐5👍2🔥1
⚙️ Шифрование файла или каталога

✔️Bash скрипт предназначен для создания простого интерфейса для шифрования файла с помощью инструмента шифрования GnuPG (GPG).

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

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

▶️Команда "gpg -c filename" используется для шифрования файла с помощью GnuPG (GNU Privacy Guard) с симметричным шифрованием
▶️Команда "gpg -d filename.gpg > filename" используется для расшифровки зашифрованного GPG файла и сохранения расшифрованного содержимого в новый файл.

#!/bin/bash

echo "Welcome! I am ready to encrypt a file/folder for you."
echo "Currently, I have a limitation. Please place me in the same folder where the file to be encrypted is located."
echo "Enter the exact file name with the extension."
read file;

gpg -c "$file"

echo "I have successfully encrypted the file..."

# Ask for confirmation before removing the original file
read -p "Do you want to remove the original file? (y/n): " confirm

if [ "$confirm" == "y" ]; then
rm -rf "$file"
echo "Original file removed."
else
echo "Original file was not removed. Exiting without deletion."
fi


🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍145🔥3😐1
⚙️ Как очистить историю bash при выходе из системы

Отключите переменную оболочки HISTFILE при входе в систему, чтобы история команд не сохранялась при выходе из оболочки.

$ echo "unset HISTFILE" | sudo tee /etc/profile.d/unset_histfile.sh 


При необходимости установите для переменной оболочки HISTSIZE значение 0 при входе в систему, чтобы выполненные команды не сохранялись в списке истории.

Внимание, это очень неудобно, так как полностью отключит историю в оболочке входа в систему.

$ echo "HISTSIZE=0" | sudo tee /etc/profile.d/disable_histsize.sh 


Создайте /etc/bash.bash_logout файл, который будет выполняться при выходе из шелла.

Используйте его для очистки истории.

Не волнуйтесь, он будет выполнен после отдельного файла очистки оболочки входа ~/.bash_logout.

$ echo "history -c" | sudo tee /etc/bash.bash_logout 


Обратите внимание, он не будет записывать пустой список истории в файл истории.

Добавление второй команды для записи списка истории в файл истории не будет работать, так как переменная оболочки HISTFILE не была установлена.

Это также означает, что список истории не будет инициализирован из файла истории при запуске.

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

Обратите внимание, что это добавит текущий список истории в файл.

$ HISTFILE=session_history.txt history -w
$ cat session_history.txt
cat .bash_history
HISTFILE=session_history.txt history -w


🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥53
⚡️ RECURA - один из лучших каналов для разработчиков и инженеров.

Канал ведёт практикующий DevOps-инженер, который ежедневно публикует:
код, повышающий эффективность разработки
— лайфхаки и полезные трюки для BashLinuxmacOS
— полезные книги и советы по информационной безопасности
— актуальные новости из мира технологий и нейросетей

Подпишись на @recura_tech, чтобы каждый день открывать для себя что-то новое и быть востребованным специалистом.
👍6🔥53😐1