Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.
Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.
2 249 подписчиков · @bash_srv
К каналу →
🕵️‍♂️ Мониторим новые файлы в каталоге в реальном времени Иногда нужно узнать, когда в определённой папке появляются новые файлы. Bash + inotifywait помогут: inotifywait -m -e cr…
Читать далее →
6 337
Сегодня я хочу поделиться простым, но очень полезным Bash-скриптом для автоматического резервного копирования директорий с ротацией старых бэкапов. Такой скрипт пригодится, если не…
Читать далее →
6 371

Анализ самых активных IP в логах веб-сервера

💡 Bash-совет: Анализ самых активных IP в логах веб-сервера 🐚🚀

Когда на сервере много трафика, полезно быстро узнать, какие IP-адреса обращаются к веб-серверу больше всего. Предлагаю скрипт, который:

1. Извлекает IP из access.log (или любого другого лог-файла).
2. Считает количество запросов от каждого IP.
3. Сортирует и показывает топ N «запросчиков».


📋 Скрипт: top_ips.sh

#!/usr/bin/env bash

# --------------------------------------------
# Скрипт для поиска топ-N IP-адресов в логах
# Автор: @bash_srv
# --------------------------------------------

# Путь к лог-файлу (по умолчанию /var/log/nginx/access.log)
LOGFILE="/var/log/nginx/access.log"

# Сколько адресов показать (по умолчанию 10)
TOP_N=10

# Временный файл для списка всех IP
TEMP="/tmp/all_ips_$(date +%Y%m%d_%H%M%S).txt"

# Проверка, что лог-файл существует
if [[ ! -f "$LOGFILE" ]]; then
echo "❌ Лог-файл '$LOGFILE' не найден!"
exit 1
fi

echo "🔎 Извлекаем IP-адреса из $LOGFILE и рассчитываем топ $TOP_N..."

# 1. Извлекаем первый столбец (обычно там IP), записываем во временный файл
awk '{print $1}' "$LOGFILE" > "$TEMP"

# 2. Считаем повторы, сортируем по убыванию, выводим топ N
echo -e "\n📊 Топ $TOP_N IP-адресов (по количеству запросов):"
sort "$TEMP" | uniq -c | sort -nr | head -n "$TOP_N" | awk '{printf "%s запросов — %s\n", $1, $2}'

# 3. Убираем временный файл
rm -f "$TEMP"

echo -e "\n✅ Готово!"

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

1. LOGFILE — путь к вашему файлу логов Nginx/Apache.

Для Apache обычно /var/log/apache2/access.log, для Nginx — /var/log/nginx/access.log.
Если у вас другой путь, просто адаптируйте переменную LOGFILE.

2. Команда awk '{print $1}' "$LOGFILE":

Берёт первый столбец в каждой строке лога (IP-адрес).
Сохраняет все адреса во временный файл $TEMP.

3. sort "$TEMP" | uniq -c | sort -nr | head -n "$TOP_N":

sort упорядочивает список IP по возрастанию.
uniq -c объединяет подряд идущие одинаковые строки и выводит количество повторений.
Второй sort -nr сортирует по числу запросов (включая самое большое значение сверху).
head -n "$TOP_N" берёт первые N строк (топ N IP).

4. awk '{printf "%s запросов — %s\n", $1, $2}' форматирует вывод:

Например: 1234 запросов — 192.168.1.100.

5. По завершении удаляется временный файл $TEMP для чистоты.


🔧 Как улучшить и кастомизировать

Датафильтрация: если нужен анализ только за последние N дней, можно применять grep с date:


# Пример: IP-адреса из логов за сегодня
TODAY=$(date '+%d/%b/%Y')
grep "$TODAY" "$LOGFILE" | awk '{print $1}' > "$TEMP"

Здесь date '+%d/%b/%Y' выдаёт, например, 05/Jun/2025, что совпадает со строками формата Nginx-лога.

Анализ URL: можно аналогично извлекать запрашиваемые URL:


awk '{print $7}' "$LOGFILE" | sort | uniq -c | sort -nr | head -n 10

Это покажет топ-10 запрашиваемых путей.

Выгрузка в файл/почту: чтобы сохранить результаты или отправить их администратору:


OUTPUT="/tmp/top_ips_report.txt"
sort "$TEMP" | uniq -c | sort -nr | head -n "$TOP_N" > "$OUTPUT"
mail -s "Топ IP-адресов на $(hostname)" admin@example.com < "$OUTPUT"

Интеграция в cron: автоматизируйте ежедневный отчёт:


# crontab -e
30 0 * * * /usr/local/bin/top_ips.sh >> /var/log/top_ips.log

Это запустит скрипт каждый день в 00:30 и добавит результаты в /var/log/top_ips.log.


🔔 Вывод: Используя этот простой Bash-скрипт, вы сможете в пару команд узнать, какие IP-адреса генерируют наибольшую нагрузку на ваш веб-сервер. Это поможет вовремя выявить подозрительные активности, защититься от DDoS-атак или просто понять, кто чаще всего посещает сайт.

👉 @bash_srv
Bash-совет: анализ неудачных SSH-логинов и бан «горячих» IP 🔒🐚 Хотите быстро узнать, какие IP вызывают максимум неудачных попыток входа в SSH, и оперативно заблокировать самых нас…
Читать далее →
6 398
🔍 Мониторинг сервисов Linux и автоматический перезапуск 🛠️ Иногда сервисы на сервере «внезапно» падают, а вы об этом узнаёте лишь по жалобам пользователей. Предлагаю простой Bash-…
Читать далее →
6 401
Другие главы канала «Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 25.06.2026
🎥 Вебинар: «Gitlab CI как конструктор workflow» Научитесь создавать эффективные…
👁 384 просмотров
Глава от 25.06.2026
🚀 Bash совет дня: Удаление старых логов по дате 🧹 Если логи со временем забиваю…
👁 449 просмотров
Глава от 23.06.2026
📦 Онлайн-мониторинг логов с выделением ошибок Следить за логами в реальном врем…
👁 603 просмотров
Глава от 22.06.2026
🔍 Регулярки на каждый день: как найти строки, содержащие IP-адреса Иногда нуж…
👁 645 просмотров
Глава от 21.06.2026
🔍 Поиск строк с IP-адресами в логах Иногда нужно быстро найти все IP-адреса в…
👁 698 просмотров
Глава от 20.06.2026
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 ht…
👁 681 просмотров
Глава от 18.06.2026
🎯 Bash-совет дня: быстрое сравнение файлов по хэшу Иногда нужно убедиться, чт…
👁 916 просмотров
Глава от 15.06.2026
🖥 Скрипт Bash для для проверки производительности системы в реальном времени, а …
👁 1 110 просмотров
Глава от 15.06.2026
🖥 Bash скрипт проверки существования файла, каталога, пользователя Проверка су…
👁 1 118 просмотров

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

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 6 549 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 6 511 просмотров
📌 Рекурсивная массовая замена текста во всех файлах 🔍✏️ Иногда нужно за пару секунд заменить одну строку или слово сразу во множестве файло…
👁 6 465 просмотров
🔥 Бэкап базы данных MySQL с автоматической ротацией 🔄 Если у тебя есть сервер с MySQL/MariaDB, автоматический бэкап с ротацией — must have …
👁 6 457 просмотров
🚀 Мониторим активные подключения к серверу по SSH Иногда нужно быстро узнать, кто сейчас подключён к серверу по SSH. Вот простой однострочн…
👁 6 420 просмотров
🧹 Bash-скрипт для очистки старых логов с уведомлением Иногда логи занимают слишком много места, и их нужно периодически чистить. Этот скрип…
👁 6 413 просмотров
🔥 Bash: выводим самые «тяжёлые» директории в системе 🧱 Когда место на диске заканчивается, надо быстро найти, кто его ест. Вот однострочник…
👁 6 408 просмотров
🧠 Регулярки на практике: как вытащить IP-адреса из логов Когда нужно быстро достать все IP-адреса из логов — тебе на помощь приходит grep +…
👁 6 401 просмотров
🔍 Мониторинг сервисов Linux и автоматический перезапуск 🛠️ Иногда сервисы на сервере «внезапно» падают, а вы об этом узнаёте лишь по жалоба…
👁 6 401 просмотров
Bash-совет: анализ неудачных SSH-логинов и бан «горячих» IP 🔒🐚 Хотите быстро узнать, какие IP вызывают максимум неудачных попыток входа в S…
👁 6 398 просмотров
🔍 Поиск текста во множестве файлов — быстро и точно! Если нужно найти, где в проекте встречается определённая строка (например, DB_PASSWORD…
👁 6 393 просмотров
Сегодня я хочу поделиться простым, но очень полезным Bash-скриптом для автоматического резервного копирования директорий с ротацией старых б…
👁 6 371 просмотров
🚀 Полезный Bash-скрипт для архивации старых логов 🚀 Иногда логи на сервере растут быстрее, чем хочется, и начинают занимать всё свободное м…
👁 6 348 просмотров
🔐 Проверка пароля на сложность 🧪 Когда нужно быстро проверить, достаточно ли сложный пароль (длина, буквы, цифры, спецсимволы) — используйт…
👁 6 347 просмотров
🕵️‍♂️ Мониторим новые файлы в каталоге в реальном времени Иногда нужно узнать, когда в определённой папке появляются новые файлы. Bash + in…
👁 6 337 просмотров
🔄 Как узнать, какой процесс держит порт в Linux? Часто бывает, что нужный порт уже занят, и надо быстро найти, кто его "захватил". Использу…
👁 6 334 просмотров
📌 Мониторинг процессов с высоким потреблением CPU Скрипт, который покажет топ-5 процессов по загрузке CPU. ps -eo pid,comm,%cpu --sort=-%c…
👁 6 314 просмотров
✨ Извлечение уникальных IP-адресов из логов Apache ✨ Иногда нужно быстро получить список всех клиентов, обращавшихся к вашему веб-серверу. …
👁 6 286 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 6 278 просмотров
🗑️ Bash-совет дня: safe_rm - «корзина» для удаляемых файлов Сколько раз вы случайно удаляли важный конфиг? Давайте сделаем rm более дружел…
👁 6 271 просмотров

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@economy
🤑 КЭШ - тренды и деньги
Деньги — это не магия, а система. КЭШ — канал, где тренды и личные финансы перестают быть скучной теорией. Разбираем, как заработать, сохранить и приумножить в современ…
👥 153 244 · +3 655/7д
@rlz_the_kraken
Выпускайте КракенаZ! Новости Россия Путин
Первый патриотический. За Россию! За Путина! Обратная связь: МАХ: https://clck.ru/3R95Mw, https://clck.ru/3REePQ ТГ: https://t.me/rls_the_kraken_bot Канал обо всем в м…
👥 145 313 · -361/7д
@zolotayahozyaika
Гороскоп
Ежедневные астрологические прогнозы для всех знаков зодиака. Узнайте, что звёзды приготовили вам на сегодня: советы по карьере, любви, финансам и здоровью. Актуальные рек…
👥 111 871 · -1 675/7д
@vysokygovorit
Старше Эдды
Погружение в мир скандинавской мифологии, истории викингов и древних саг. Разбираем руны, археологические находки и культурное наследие Севера. Для тех, кто ищет глубину…
👥 92 723 · +1 239/7д
@satyadas_psychology
Сатья Дас | Психология и Саморазвитие
Сатья Дас - специалист по семейным отношениям Регистрация в РКН : https://clck.ru/3UCp35 По рекламе: https://clck.ru/3SZgS7 Менеджеры : https://clck.ru/3TJXnu, https:…
👥 87 496 · +1 382/7д
@pikabu
Пикабу
Официальный канал Пикабу — здесь тепло и лампово, как в любимом сообществе. Свежие истории, мемы, юмор и вирусный контент со всего рунета. Подписывайся, чтобы не пропусти…
👥 82 686 · +1 488/7д
🏷 Темы и теги
#linux terminal #командная строка #bash-скрипты #автоматизация #devops #sysadmin #Астрология и эзотерика
📋 О канале Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.
Укроти командную строку. Пишем эффективные Bash-скрипты для сервера и десктопа. Магия текстовой обработки: Grep, Sed, Awk и регулярные выражения (Regex). Настройка окружения: Zsh, Fish, Vim, Tmux. Автоматизация через Cron и Systemd. Работа с SSH, логами и процессами. Полезные команды (Curl, Wget, Tar) и пайплайны (Pipes). Лучшие практики написания кода и отладки.
🔍 Архив всех постов Макс
Поиск по 9,694,988 постам из 201,272 каналов
Подключить за 490 ₽/мес →
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
📊 Аналитика канала «Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

Бесплатная регистрация, быстрая модерация.