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

💡 Bash-совет: Анализ самых активных IP в логах веб-сервера 🐚🚀 Когда на сервере много трафика, полезно быстро узнать, какие 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-скриптом для автоматич… Следующий пост → Bash-совет: анализ неудачных SSH-логинов и бан «горячих» IP 🔒🐚 Хотите быстро уз…
Другие главы канала «Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 08.05.2026
Скрипт, который находит в логах все уникальные IP-адреса и подсчитывает, сколько…
👁 387 просмотров
Глава от 06.05.2026
Мониторинга логов в реальном времени Иногда нужно следить за логами, но обычный…
👁 606 просмотров
Глава от 05.05.2026
🧯 Освобождаем место: «удалённые, но открытые» файлы Когда логи удалили, а место…
👁 701 просмотров
Глава от 04.05.2026
🔥 Bash-совет дня Иногда нужно быстро найти и удалить все битые симлинки 🪤 в сис…
👁 823 просмотров
Глава от 03.05.2026
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 ht…
👁 856 просмотров
Глава от 30.04.2026
🔥 Предупреждение о переполнении дисков + топ “пожирателей” места Данный ниже ск…
👁 1 117 просмотров
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
🔍
Архив всех постов Макс
Поиск по тексту среди 4,213,046 постов из 200,253 каналов. Фильтры по дате, видео, репостам и удалённым публикациям.
1 ₽ — 7 дней доступа
далее 490 ₽/мес
Получить доступ за 1 ₽
или войти, если уже есть аккаунт

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

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@rlz_the_kraken
Выпускайте КракенаZ! Новости Россия Путин
Первый патриотический. За Россию! За Путина! Обратная связь: МАХ: https://clck.ru/3R95Mw, https://clck.ru/3REePQ ТГ: https://t.me/rls_the_kraken_bot Канал обо всем в м…
👥 142 085 · +2 056/7д
@zolotayahozyaika
Гороскоп
Гороскоп
👥 131 571 · +12 626/7д
@vysokygovorit
Старше Эдды
Телеграмм https://t.me/vysokygovorit
👥 83 007 · +1 075/7д
@satyadas_psychology
Сатья Дас | Психология и Саморазвитие
Сатья Дас - специалист по семейным отношениям По рекламе: https://clck.ru/3SZgS7 Менеджеры : https://clck.ru/3TJXnu, https://maxln.ru/SpiralMiya Теги: Психолог Жора.…
👥 82 987 · -387/7д
@chp_78
ЧП 78 | Санкт-Петербург , Питер / СПБ / ДТП / Новости
ЧП 78 - публикуем ваши новости, происшествия, ЧП, ДТП. ВК: https://vk.com/chp_78 По рекламе: vk.com/leemma t.me/chappi golnk.ru/L5b6N Московский, Петроградский, Адмир…
👥 66 022 · +1 885/7д
@public219724157
Ведьмин котелок | Юмор
Искрометный юмор По всем вопросам: https://iimax.ru/Smokke
👥 58 159 · +1 024/7д

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

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 5 155 просмотров
🚀 Мониторим активные подключения к серверу по SSH Иногда нужно быстро узнать, кто сейчас подключён к серверу по SSH. Вот простой однострочн…
👁 5 066 просмотров
📌 Рекурсивная массовая замена текста во всех файлах 🔍✏️ Иногда нужно за пару секунд заменить одну строку или слово сразу во множестве файло…
👁 5 065 просмотров
🔥 Бэкап базы данных MySQL с автоматической ротацией 🔄 Если у тебя есть сервер с MySQL/MariaDB, автоматический бэкап с ротацией — must have …
👁 5 062 просмотров
🧹 Bash-скрипт для очистки старых логов с уведомлением Иногда логи занимают слишком много места, и их нужно периодически чистить. Этот скрип…
👁 5 046 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 5 044 просмотров
🔍 Мониторинг сервисов Linux и автоматический перезапуск 🛠️ Иногда сервисы на сервере «внезапно» падают, а вы об этом узнаёте лишь по жалоба…
👁 5 025 просмотров
Bash-совет: анализ неудачных SSH-логинов и бан «горячих» IP 🔒🐚 Хотите быстро узнать, какие IP вызывают максимум неудачных попыток входа в S…
👁 5 024 просмотров
🚀 Полезный Bash-скрипт для архивации старых логов 🚀 Иногда логи на сервере растут быстрее, чем хочется, и начинают занимать всё свободное м…
👁 5 018 просмотров
Сегодня я хочу поделиться простым, но очень полезным Bash-скриптом для автоматического резервного копирования директорий с ротацией старых б…
👁 5 011 просмотров
🔥 Bash: выводим самые «тяжёлые» директории в системе 🧱 Когда место на диске заканчивается, надо быстро найти, кто его ест. Вот однострочник…
👁 4 999 просмотров
🧠 Регулярки на практике: как вытащить IP-адреса из логов Когда нужно быстро достать все IP-адреса из логов — тебе на помощь приходит grep +…
👁 4 989 просмотров
⚙️ Bash: Мониторинг пользователей в системе в реальном времени Иногда нужно понять, кто из пользователей сейчас в системе и что они делают.…
👁 4 989 просмотров
🕵️‍♂️ Мониторим новые файлы в каталоге в реальном времени Иногда нужно узнать, когда в определённой папке появляются новые файлы. Bash + in…
👁 4 988 просмотров
🔍 Поиск текста во множестве файлов — быстро и точно! Если нужно найти, где в проекте встречается определённая строка (например, DB_PASSWORD…
👁 4 987 просмотров
🗑️ Bash-совет дня: safe_rm - «корзина» для удаляемых файлов Сколько раз вы случайно удаляли важный конфиг? Давайте сделаем rm более дружел…
👁 4 969 просмотров
✨ Извлечение уникальных IP-адресов из логов Apache ✨ Иногда нужно быстро получить список всех клиентов, обращавшихся к вашему веб-серверу. …
👁 4 967 просмотров
Проверка открытых портов без использования netstat Утилита netstat считается устаревшей (deprecated). В современных дистрибутивах Linux ста…
👁 4 954 просмотров
🔐 Проверка пароля на сложность 🧪 Когда нужно быстро проверить, достаточно ли сложный пароль (длина, буквы, цифры, спецсимволы) — используйт…
👁 4 920 просмотров
🔄 Как узнать, какой процесс держит порт в Linux? Часто бывает, что нужный порт уже занят, и надо быстро найти, кто его "захватил". Использу…
👁 4 863 просмотров
🏷 Темы и теги
#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). Лучшие практики написания кода и отладки.
📊 Аналитика канала «Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

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