MAX работает сбои за 24 ч Жалобы пользователей и неудачные автопроверки за последние 24 часа, по получасам жалоб за час: 0 версия 26.37.0
Максопедия
#474 в теме «Образование»

Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.

@bash_srv · канал MAX
145 постов 0,4 в день наблюдаем с 19 октября 2026
Реклама Tg t.me/evgenycarter Укроти командную строку. Пишем эффективные Bash-скрипты для сервера и десктопа. Магия текстовой обработки: Grep, Sed, Awk и регулярные выражения (Regex). Настройка окружения: Zsh, Fish, Vim,… Показать полностью

Реклама Tg t.me/evgenycarter

Укроти командную строку. Пишем эффективные Bash-скрипты для сервера и десктопа. Магия текстовой обработки: Grep, Sed, Awk и регулярные выражения (Regex). Настройка окружения: Zsh, Fish, Vim, Tmux. Автоматизация через Cron и Systemd. Работа с SSH, логами и процессами. Полезные команды (Curl, Wget, Tar) и пайплайны (Pipes). Лучшие практики написания кода и отладки.

Открыть в MAX
Подписчики?
3 015
сегодня ±0
Охват поста?
1 159
ER 38,4%
Реакций на пост?
13
на 1 000 просмотров — 10
Прирост за неделю?
—
за сутки +12 · за 30 дней —
10из 10оценка Максопедии
  • Живая аудитория — 3 из 3 · ER 38,4%: пост видит такая доля подписчиков
  • Реакции — 2 из 2 · 10,0 реакции на 1 000 просмотров
  • Рост подписчиков — 3 из 3 · рост выглядит естественным
  • Без красных меток — 2 из 2 · меток нет

Считаем открыто, только по нашим данным: ER, реакции, вердикт по росту и красные метки. Как считаем

Стоит ли покупать рекламу? Рост выглядит естественным

  • За 5 дней наблюдения резких скачков и массовых отписок не было.

Вывод сделан по открытым данным о подписчиках. Охваты и реклама появятся позже. Как мы считаем · Что такое вердикт

Публикации по дням

За 30 дней · посты · с пометкой «Реклама»

0129 сентября: 1 пост.1 октября: 1 пост.6 октября: 1 пост.9 октября: 1 пост.10 октября: 1 пост.13 октября: 1 пост.16 октября: 1 пост.18 октября: 1 пост.19 октября: 1 пост.21 октября: 1 пост.26 сентября11 октября25 октября

Охват по дням

Сколько просмотров обычно у поста, по дню публикации. Последний день — пунктир: свежие посты ещё набирают просмотры

9091 5692 22929 сентября: 1 318 просмотров у поста1 октября: 1 324 просмотров у поста6 октября: 1 233 просмотров у поста9 октября: 2 331 просмотров у поста10 октября: 1 113 просмотров у поста13 октября: 1 205 просмотров у поста16 октября: 1 007 просмотров у поста18 октября: 904 просмотров у поста19 октября: 1 008 просмотров у поста21 октября: 807 просмотров у поста26 сентября11 октября25 октября

Подписчики

Замеры с публичной страницы канала, по дням, последние 90 дней

первый замер 19 октября 2026
2 9872 9993 01119 октября24 октября

Охваты постов

Посты за 30 дней: просмотры с открытого счётчика MAX — Максопедия читает публичный канал раз в сутки. Точные данные — если владелец подключит бота

публичные данные
Просмотров у поста
1 159
медиана; обычно 1 007–1 297
Охват за 24 часа
—
нужно 3 поста под наблюдением с первых часов
ER
38,4%
просмотры поста от числа подписчиков
Реакций на пост
13
медиана по постам за 30 дней
Реакций на 1 000 просмотров
10
насколько живо реагируют читатели
Постов в день
0,4
всего в канале 145 постов
Просмотров за сутки
473
примерно: просмотры поста × постов в день

Прогноз рекламного поста

Ожидаемо около 1 159 просмотров (обычно от 1 007 до 1 297) — по медиане постов канала за 30 дней. Рекламный пост иногда набирает меньше обычного.

Введите цену — посчитаем, сколько стоит тысяча просмотров (CPM).

Что значат эти цифры: охват за 24 часа, ER, медиана, CPM — в словаре.

Посты канала

Показано 10 из 145 постов · просмотры и реакции — с открытого счётчика MAX

  • 80712

    🔐 Проверка пароля на сложность 🧪

    Когда нужно быстро проверить, достаточно ли сложный пароль (длина, буквы, цифры, спецсимволы) — используйте вот такой bash-однострочник:

    read -s -p "Введите пароль: " pass; echo; [[ ${#pass} -ge 8 && "$pass" =~ [A-Z] && "$pass" =~ [a-z] && "$pass" =~ [0-9] && "$pass" =~ [^a-zA-Z0-9] ]] && echo "✅ Надёжный пароль" || echo "❌…

    Показать ещё

    🔐 Проверка пароля на сложность 🧪

    Когда нужно быстро проверить, достаточно ли сложный пароль (длина, буквы, цифры, спецсимволы) — используйте вот такой bash-однострочник:

    read -s -p "Введите пароль: " pass; echo; [[ ${#pass} -ge 8 && "$pass" =~ [A-Z] && "$pass" =~ [a-z] && "$pass" =~ [0-9] && "$pass" =~ [^a-zA-Z0-9] ]] && echo "✅ Надёжный пароль" || echo "❌ Слабый пароль"

    📋 Проверка включает:

    - минимум 8 символов
    - заглавные буквы
    - строчные буквы
    - цифры
    - спецсимволы

    🛡 Удобно использовать в скриптах или при создании новых пользователей вручную.

    👀 Если хотите использовать это в скрипте без отображения ввода — read -s уже всё делает за вас.

    👉 @bash_srv

    • 👍 9
    • 🔥 2
    • 👌 1
    Открыть в MAX
  • 1 00817

    🔍 Поиск текста во множестве файлов — быстро и точно!

    Если нужно найти, где в проекте встречается определённая строка (например, DB_PASSWORD), не лезь в каждый файл руками!
    Используй мощную связку grep:

    grep -rnw '/путь/к/папке' -e 'DB_PASSWORD'

    📌 Пояснение:

    * -r — рекурсивный поиск по подкаталогам.
    * -n — показать номер строки.
    * -w — искать точное слов…

    Показать ещё

    🔍 Поиск текста во множестве файлов — быстро и точно!

    Если нужно найти, где в проекте встречается определённая строка (например, DB_PASSWORD), не лезь в каждый файл руками!
    Используй мощную связку grep:

    grep -rnw '/путь/к/папке' -e 'DB_PASSWORD'

    📌 Пояснение:

    * -r — рекурсивный поиск по подкаталогам.
    * -n — показать номер строки.
    * -w — искать точное слово (не подстроку).
    * -e — указывает, что дальше идёт выражение для поиска.

    💡 Хочешь исключить определённые директории, например .git?

    grep -rnw --exclude-dir={.git,node_modules} '/путь/к/папке' -e 'DB_PASSWORD'

    Незаменимо при отладке конфигов и аудите секрета в коде! 😉

    👉 @bash_srv

    • 🔥 11
    • 👍 5
    • 👌 1
    Открыть в MAX
  • 9048

    🧠 Регулярки на практике: как вытащить IP-адреса из логов

    Когда нужно быстро достать все IP-адреса из логов — тебе на помощь приходит grep + регулярные выражения 💪

    Пример:

    grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log/nginx/access.log

    🔍 Что делает:

    -o — выводит только совпадения, без строки целиком
    -E — расширенные регулярки
    \b([0-9]{1,3}\.){3}[…

    Показать ещё

    🧠 Регулярки на практике: как вытащить IP-адреса из логов

    Когда нужно быстро достать все IP-адреса из логов — тебе на помощь приходит grep + регулярные выражения 💪

    Пример:

    grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log/nginx/access.log

    🔍 Что делает:

    -o — выводит только совпадения, без строки целиком
    -E — расширенные регулярки
    \b([0-9]{1,3}\.){3}[0-9]{1,3}\b — паттерн для IPv4

    📌 Пример вывода:

    192.168.0.1
    10.0.0.55
    172.16.100.7

    🛡️ Хочешь избавиться от дубликатов?

    grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log/nginx/access.log | sort -u

    📁 Подходит для Apache, Nginx, sshd и других логов, где есть IP.

    👉 @bash_srv

    • 👍 5
    • 🔥 2
    • 👌 1
    Открыть в MAX
  • 1 00715

    🧹 Bash совет дня: удаляем пустые директории рекурсивно 🧹

    Когда на сервере скапливаются лишние пустые папки — это не только мусор, но и потенциальная головная боль при навигации и поиске. Вот простой способ зачистить их:

    #!/bin/bash

    # Путь, в котором нужно очистить пустые папки
    TARGET_DIR="/var/www/html"

    # Удаляем все пустые директории, включая вложенные
    …

    Показать ещё

    🧹 Bash совет дня: удаляем пустые директории рекурсивно 🧹

    Когда на сервере скапливаются лишние пустые папки — это не только мусор, но и потенциальная головная боль при навигации и поиске. Вот простой способ зачистить их:

    #!/bin/bash

    # Путь, в котором нужно очистить пустые папки
    TARGET_DIR="/var/www/html"

    # Удаляем все пустые директории, включая вложенные
    find "$TARGET_DIR" -type d -empty -delete

    echo "✅ Все пустые директории удалены из $TARGET_DIR"

    🔍 Как это работает:
    • find ищет все папки (-type d), которые пусты (-empty) и удаляет их (-delete).
    • Работает рекурсивно, удаляя даже вложенные пустые директории.

    📅 Можно запускать из cron раз в неделю, например:

    0 3 * * 0 /opt/scripts/clean_empty_dirs.sh

    👌 Удобно, когда на сервере регулярно создаются временные папки, которые потом остаются без содержимого.

    👉 @bash_srv

    • 🔥 9
    • 👍 5
    • 👌 1
    Открыть в MAX
  • 1 2057

    🔥 Бэкап базы данных MySQL с автоматической ротацией 🔄

    Если у тебя есть сервер с MySQL/MariaDB, автоматический бэкап с ротацией — must have для спокойной жизни 😌

    Вот простой скрипт, который:

    1. Делает дамп всех баз
    2. Сохраняет в архив с датой
    3. Удаляет архивы старше N дней

    #!/bin/bash
    # автор: https://t.me/bash_srv

    # Папка для бэкапов
    BACKUP_DIR="/opt/…

    Показать ещё

    🔥 Бэкап базы данных MySQL с автоматической ротацией 🔄

    Если у тебя есть сервер с MySQL/MariaDB, автоматический бэкап с ротацией — must have для спокойной жизни 😌

    Вот простой скрипт, который:

    1. Делает дамп всех баз
    2. Сохраняет в архив с датой
    3. Удаляет архивы старше N дней

    #!/bin/bash
    # автор: https://t.me/bash_srv

    # Папка для бэкапов
    BACKUP_DIR="/opt/backups/mysql"
    # Кол-во дней хранения
    RETENTION_DAYS=7
    # Дата для имени файла
    DATE=$(date +'%Y-%m-%d_%H-%M')

    # Учетные данные
    DB_USER="root"
    DB_PASS="mypassword"

    mkdir -p "$BACKUP_DIR"

    # Делаем дамп
    mysqldump -u"$DB_USER" -p"$DB_PASS" --all-databases | gzip > "$BACKUP_DIR/mysql_backup_$DATE.sql.gz"

    # Удаляем старые бэкапы
    find "$BACKUP_DIR" -type f -name "*.gz" -mtime +$RETENTION_DAYS -delete

    echo "✅ Бэкап MySQL завершён: $DATE"

    🛠 Рекомендуется повесить в крон, например, на каждый день в 3:00:

    0 3 * * * /path/to/backup_mysql.sh

    👀 Теперь бэкапы всегда под контролем, а лишние файлы не засоряют диск.

    👉 @bash_srv

    • 🔥 4
    • 👍 2
    • 👌 1
    Открыть в MAX
  • 1 113

    🚀 Подборка полезных IT каналов в Max


    Системное администрирование, DevOps 📌

    https://max.ru/i_odmin Все для системного администратора
    https://max.ru/bash_srv Bash Советы
    https://max.ru/sysadminof Книги для админов, полезные материалы
    https://max.ru/i_odmin_book Библиотека Системного Администратора
    https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и…

    Показать ещё

    🚀 Подборка полезных IT каналов в Max


    Системное администрирование, DevOps 📌

    https://max.ru/i_odmin Все для системного администратора
    https://max.ru/bash_srv Bash Советы
    https://max.ru/sysadminof Книги для админов, полезные материалы
    https://max.ru/i_odmin_book Библиотека Системного Администратора
    https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
    https://max.ru/tipsysdmin Типичный Сисадмин
    https://max.ru/channel_win_sysadmin Системный Администратор Windows
    https://max.ru/channel_linux_admin Linux: Системный администратор
    https://max.ru/channel_linuxmod Linux
    https://max.ru/channel_i_linux Системный администратор
    https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
    https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)

    Excel лайфхак 📌
    https://t.me/Excel_lifehack Excel лайфхак

    Английский с нуля 🇬🇧
    https://max.ru/UchuEnglish

    1C разработка 📌
    https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
    https://max.ru/channel_DevLab1C 1С:Предприятие 8

    Программирование C++📌
    https://max.ru/cpp_lib Библиотека C/C++ разработчика
    https://max.ru/channel_cpp_geek C++ geek

    Программирование Go📌
    https://max.ru/golang_lib Библиотека Go (Golang) разработчика

    Программирование React📌
    https://max.ru/react_lib React

    Программирование Rust📌
    https://max.ru/channel_rust_lib

    Программирование Python 📌
    https://max.ru/python_of Python академия.
    https://max.ru/BookPython Библиотека Python разработчика

    Java разработка 📌
    https://max.ru/bookjava Библиотека Java разработчика
    https://max.ru/channel_java_geek Java Geek

    GitHub Сообщество 📌
    https://max.ru/githublib Интересное из GitHub

    Базы данных (Data Base) 📌
    https://max.ru/database_info Все про базы данных

    Фронтенд разработка 📌
    https://max.ru/frontend_1 Подборки для frontend разработчиков

    Библиотеки 📌
    https://max.ru/programmist_of Книги по программированию
    https://max.ru/proglb Библиотека программиста
    https://max.ru/bfbook Книги для программистов

    Программирование 📌
    https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
    https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
    https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

    Шутки программистов 📌
    https://max.ru/itumor Шутки программистов

    Защита, взлом, безопасность 📌
    https://max.ru/thehaking Канал о кибербезопасности
    https://max.ru/xakkep_1 Хакер Free

    Книги, статьи для дизайнеров 📌
    https://max.ru/odesigners Статьи, книги для дизайнеров

    Математика 📌
    https://max.ru/Pomatematike Канал по математике
    https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

    Вакансии в IT📌
    https://max.ru/progjob
    https://max.ru/channel_rabotait

    Мир технологий 📌
    https://max.ru/mir_teh Канал для любознательных

    Городские📌
    https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
    https://max.ru/mockva_life Свежие новости Москвы
    https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
    https://max.ru/channel_krasnodar_novosty Краснодар Новости
    https://max.ru/channel_novosibirsk_novosti Новосибирск
    https://max.ru/channel_samara_novosti Новости Самары
    https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
    https://max.ru/channel_kazan_novosti Новости Казани
    https://max.ru/channel_omsk_novosti Новости Омска
    https://max.ru/channel_moskva_24 Москва 24

    Открыть в MAX
  • 2 3318

    Что в bash скрипте означает команда set -euo pipefail?

    Команда set -euo pipefail в Bash-скрипте изменяет поведение интерпретатора и добавляет контроль ошибок, что делает сценарий более надежным.

    1. -e: Завершает выполнение скрипта, если любая команда завершилась с ненулевым статусом (то есть произошла ошибка). Это предотвращает дальнейшее выполнение скрип…

    Показать ещё

    Что в bash скрипте означает команда set -euo pipefail?

    Команда set -euo pipefail в Bash-скрипте изменяет поведение интерпретатора и добавляет контроль ошибок, что делает сценарий более надежным.

    1. -e: Завершает выполнение скрипта, если любая команда завершилась с ненулевым статусом (то есть произошла ошибка). Это предотвращает дальнейшее выполнение скрипта, если что-то пошло не так.

    2. -u: Вызывает ошибку, если используется неинициализированная (неопределенная) переменная. Это помогает избежать ошибок, когда случайно обращаются к переменной, которая не была задана.

    3. -o pipefail: Заставляет весь конвейер (|) завершиться с ошибкой, если любая команда в цепочке вернула ненулевой статус. По умолчанию в Bash статус конвейера определяется только последней командой, а pipefail изменяет это поведение. Если любая команда в конвейере завершится ошибкой, это будет считаться ошибкой всего конвейера.

    Пример
    set -euo pipefail

    # Пример команды, использующей необъявленную переменную
    echo $undefined_var # Это вызовет ошибку из-за опции -u
    Таким образом, set -euo pipefail делает скрипт более устойчивым к ошибкам, помогая избежать неожиданных ситуаций и неявных ошибок.

    👉 @bash_srv

    • 👍 5
    • 🔥 3
    Открыть в MAX
  • 1 23313

    📌 Рекурсивная массовая замена текста во всех файлах 🔍✏️

    Иногда нужно за пару секунд заменить одну строку или слово сразу во множестве файлов в каталоге и его поддиректориях.

    #!/usr/bin/env bash
    # автор: https://t.me/bash_srv

    # Проверка аргументов
    if [ "$#" -ne 3 ]; then
    echo "Использование: $0 <старый_текст> <новый_текст> <путь_к_директории>"
    exit 1
    …

    Показать ещё

    📌 Рекурсивная массовая замена текста во всех файлах 🔍✏️

    Иногда нужно за пару секунд заменить одну строку или слово сразу во множестве файлов в каталоге и его поддиректориях.

    #!/usr/bin/env bash
    # автор: https://t.me/bash_srv

    # Проверка аргументов
    if [ "$#" -ne 3 ]; then
    echo "Использование: $0 <старый_текст> <новый_текст> <путь_к_директории>"
    exit 1
    fi

    OLD="$1"
    NEW="$2"
    DIR="$3"
    EXT="*" # можно указать, например, "*.conf" или "*.txt"

    # Находим файлы и делаем замену с созданием резервных .bak-файлов
    find "$DIR" -type f -name "$EXT" -print0 \
    | xargs -0 sed -i.bak "s/${OLD}/${NEW}/g"

    # Удаляем .bak, если они больше не нужны
    # find "$DIR" -type f -name "*.bak" -delete

    echo "Заменено '$OLD' на '$NEW' во всех файлах под '$DIR'."

    🔧 Как использовать

    1. Сохраните скрипт, например, как /usr/local/bin/bulk-replace.sh
    2. Дайте права на исполнение:


    chmod +x /usr/local/bin/bulk-replace.sh

    3. Запустите, указав искомую строку, замену и каталог:


    /usr/local/bin/bulk-replace.sh "foo" "bar" /etc/myapp

    💡 Советы и примочки

    🟢 По умолчанию скрипт обрабатывает все файлы (EXT="*"). Для конкретных типов (конфиги, скрипты) замените на "*.conf" или "*.sh".

    🟢 Флаг -i.bak создаёт резервную копию каждого файла с расширением .bak. Если вы уверены, что бэкапы не нужны, после замены раскомментируйте строку удаления.

    🟢 При сложных шаблонах (точки, слэши) вместо прямых слэшей s/old/new/g можно использовать другой разделитель, например s|old|new|g.

    🟢 Для чувствительных к регистру замен добавьте флаг I (GNU sed`): `s/${OLD}/${NEW}/gI.

    🟢 Если нужно увидеть, в каких файлах были изменения, перед sed вставьте -exec grep -l "${OLD}" {} \; или используйте grep -R --include="$EXT" "${OLD}" "$DIR".

    👉 @bash_srv

    • 👍 12
    • 👌 1
    Открыть в MAX
  • 1 32417

    🔍 Мониторинг сервисов Linux и автоматический перезапуск 🛠️

    Иногда сервисы на сервере «внезапно» падают, а вы об этом узнаёте лишь по жалобам пользователей. Предлагаю простой Bash-скрипт, который:

    1. Проверяет статус списка сервисов
    2. При необходимости перезапускает их
    3. Логирует все действия

    #!/usr/bin/env bash
    # автор: https://t.me/bash_srv
    # Список се…

    Показать ещё

    🔍 Мониторинг сервисов Linux и автоматический перезапуск 🛠️

    Иногда сервисы на сервере «внезапно» падают, а вы об этом узнаёте лишь по жалобам пользователей. Предлагаю простой Bash-скрипт, который:

    1. Проверяет статус списка сервисов
    2. При необходимости перезапускает их
    3. Логирует все действия

    #!/usr/bin/env bash
    # автор: https://t.me/bash_srv
    # Список сервисов для мониторинга
    services=(nginx sshd mysqld)

    # Файл логов
    logfile="/var/log/service_monitor.log"

    for svc in "${services[@]}"; do
    status=$(systemctl is-active "$svc")

    if [[ "$status" != "active" ]]; then
    echo "$(date '+%F %T') ❗️ Сервис $svc статус: $status. Перезапускаем..." >> "$logfile"
    systemctl restart "$svc"

    if [[ $? -eq 0 ]]; then
    echo "$(date '+%F %T') ✔️ Сервис $svc успешно перезапущен" >> "$logfile"
    else
    echo "$(date '+%F %T') ❌ Не удалось перезапустить $svc" >> "$logfile"
    fi
    fi
    done

    🗓️ Как запустить по расписанию
    Добавьте в crontab (например, каждый 5-й минут):

    */5 * * * * /path/to/service_monitor.sh

    🔎 Пара совета по регулярным выражениям
    Для анализа логов удобно собирать все строки с ошибками:

    grep -Ei "(error|fail|critical|panic)" /var/log/syslog

    -E включает расширенные регэкспы
    -i — нечувствительность к регистру
    Настройте свой набор ключевых слов для поиска 🎯

    👉 @bash_srv

    • 🔥 13
    • 👍 3
    • 👌 1
    Открыть в MAX
  • 1 31814

    Bash-совет: анализ неудачных SSH-логинов и бан «горячих» IP 🔒🐚

    Хотите быстро узнать, какие IP вызывают максимум неудачных попыток входа в SSH, и оперативно заблокировать самых настырных? Ниже скрипт:

    #!/usr/bin/env bash
    # ssh_fail_analyzer.sh
    # Анализ неудачных SSH-попыток и вывод TOP-10 IP

    LOG_FILE="/var/log/auth.log" # путь к логам (для CentOS: /v…

    Показать ещё

    Bash-совет: анализ неудачных SSH-логинов и бан «горячих» IP 🔒🐚

    Хотите быстро узнать, какие IP вызывают максимум неудачных попыток входа в SSH, и оперативно заблокировать самых настырных? Ниже скрипт:

    #!/usr/bin/env bash
    # ssh_fail_analyzer.sh
    # Анализ неудачных SSH-попыток и вывод TOP-10 IP

    LOG_FILE="/var/log/auth.log" # путь к логам (для CentOS: /var/log/secure)
    TOPN=10 # сколько IP показывать

    echo "Топ $TOPN IP с неудачными SSH-входами:"
    grep -E "Failed password for" "$LOG_FILE" \
    | grep -oP '(?<=from )[\d\.]+' \
    | sort \
    | uniq -c \
    | sort -rn \
    | head -n "$TOPN"

    Как это работает

    1. grep -E "Failed password for"
    Ищем все строки с неудачными попытками.
    2. grep -oP '(?<=from )\[\d.]+'
    С помощью PCRE-регулярки достаём только IP-адреса после слова "from".
    3. sort | uniq -c | sort -rn
    Сортируем, считаем вхождения и выводим в порядке убывания.
    4. head -n "\$TOPN"

    Ограничиваем результат топ-10.


    🛠 Можно добавить в crontab ежедневный запуск и автоматическую отправку отчёта на почту или сразу бан «горячих» IP через iptables:

    # в crontab: каждый день в 00:10
    10 0 * * * /path/to/ssh_fail_analyzer.sh | mail -s "SSH Fail Report" admin@example.com

    Или сразу блокировать подозрительные IP, если они превысили порог:

    THRESHOLD=50
    for ip in $(grep -E "Failed password for" "$LOG_FILE" \
    | grep -oP '(?<=from )[\d\.]+' \
    | sort | uniq -c \
    | awk -v t="$THRESHOLD" '$1 > t {print $2}'); do
    iptables -I INPUT -s "$ip" -j DROP
    echo "$(date): Заблокирован $ip за превышение $THRESHOLD неудачных попыток" >> /var/log/ssh_ban.log
    done

    👉 @bash_srv

    • 👍 13
    • 🤣 1
    Открыть в MAX

Где пересылали канал

За 90 дней, по каналам каталога, которые читает Максопедия. Пересылка с пометкой «Реклама» — почти всегда оплаченное размещение

Пересылали его посты · 1

Он пересылал · 0

Пока не нашли, чьи посты пересылал канал.

О канале

Канал «Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.» в мессенджере MAX — небольшой: 3 015 подписчиков. Тема — образование. По числу подписчиков — 474-е место из 5 650 в теме «Образование» в нашем каталоге. В каталоге Максопедии с 19 октября 2026.

История изменений

  • Описание: «Укроти командную строку. Пишем эффективные Bash-скрипты для сервера и десктопа. » → «Реклама Tg t.me/evgenycarter Укроти командную строку. Пишем эффективные Bash-скр»

Значок для вашего сайта

Если это ваш канал — поставьте значок на сайт. Число подписчиков обновляется само.

Максопедия: подписчики канала Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.

<a href="https://maxopedia.ru/kanal/bash_srv/"><img src="https://maxopedia.ru/badge/bash_srv.svg" alt="Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console. в Максопедии" height="28"></a>

Похожие каналы

Вся тема