SRV_ADMIN_LINUX Telegram 697
📌 Bash скрипт для поиска больших файлов и уведомление админа

1. Находит файлы больше заданного порога (в мегабайтах).
2. Генерирует отчёт и отправляет уведомление администратору (например, на почту или в лог).

Скрипт: check_large_files.sh


#!/usr/bin/env bash

# --------------------------------------------
# Скрипт для поиска «тяжёлых» файлов и уведомления
# Автор @i_odmin_book
# --------------------------------------------

# Порог размера в мегабайтах (можно изменить по-своему)
THRESHOLD=100

# Директория для сканирования (можно указать любую)
DIR="/var/log"

# Файл для временного отчёта
REPORT="/tmp/large_files_$(date +%Y%m%d_%H%M%S).txt"

# Адрес почты администратора (пример)
ADMIN_EMAIL="[email protected]"

# Найти файлы больше порога и сохранить в отчёт
echo -e "🔎 Поиск файлов > ${THRESHOLD}M в директории: ${DIR}\n" > "$REPORT"
find "$DIR" -type f -size +"${THRESHOLD}"M -printf "%p (%s bytes)\n" >> "$REPORT"

# Если отчёт не пустой, отправляем уведомление
if [[ -s "$REPORT" ]]; then
echo -e "📬 Отправляем отчёт администратору: ${ADMIN_EMAIL}"
mail -s "Отчёт: большие файлы на $(hostname)" "$ADMIN_EMAIL" < "$REPORT"
else
echo " Файлов больше ${THRESHOLD}M не найдено."
fi

# Дополнительно: можно логировать в файл
LOGFILE="/var/log/check_large_files.log"
echo "$(date +'%Y-%m-%d %H:%M:%S') - Проверка завершена. Отчёт: $REPORT" >> "$LOGFILE"



Описание работы

1. THRESHOLD — порог размера в мегабайтах, выше которого файл считается «большим».
2. DIR — директория, где ищем большие файлы (по умолчанию /var/log, но можно изменить).
3. Команда find "$DIR" -type f -size +"${THRESHOLD}"M -printf "%p (%s bytes)\n":

▪️ -type f — только файлы.
▪️ -size +<число>M — размер больше заданного числа мегабайт.
▪️ -printf "%p (%s bytes)\n" — выводим полный путь и точный размер в байтах.
4. Результат пишется в временный файл ${REPORT}.
5. Проверка if [[ -s "$REPORT" ]]; then … fi:

▪️ Если отчёт непустой (-s), отправляем его на почту с помощью mail (или любую другую команду уведомления).
▪️ В противном случае выводим сообщение об отсутствии «тяжёлых» файлов.
6. Логируем факт запуска в /var/log/check_large_files.log.


Дополнительные улучшения

▪️ Регулярные выражения: можно искать по шаблону, например, только логи с ротацией:


find "$DIR" -regextype posix-extended -regex ".*/.*\.log\.[0-9]+" -size +"${THRESHOLD}"M -printf "%p (%s bytes)\n"


Здесь -regex найдёт файлы вроде syslog.1, auth.log.2, и игнорирует обычные *.log.
▪️ Cron-задача: чтобы проверять раз в день, добавьте в crontab -e:


0 8 * * * /usr/local/bin/check_large_files.sh


Это запустит скрипт каждый день в 8:00 утра и сразу уведомит вас, если что-то «не так».
4👍1🔥1



tgoop.com/srv_admin_linux/697
Create:
Last Update:

📌 Bash скрипт для поиска больших файлов и уведомление админа

1. Находит файлы больше заданного порога (в мегабайтах).
2. Генерирует отчёт и отправляет уведомление администратору (например, на почту или в лог).

Скрипт: check_large_files.sh


#!/usr/bin/env bash

# --------------------------------------------
# Скрипт для поиска «тяжёлых» файлов и уведомления
# Автор @i_odmin_book
# --------------------------------------------

# Порог размера в мегабайтах (можно изменить по-своему)
THRESHOLD=100

# Директория для сканирования (можно указать любую)
DIR="/var/log"

# Файл для временного отчёта
REPORT="/tmp/large_files_$(date +%Y%m%d_%H%M%S).txt"

# Адрес почты администратора (пример)
ADMIN_EMAIL="[email protected]"

# Найти файлы больше порога и сохранить в отчёт
echo -e "🔎 Поиск файлов > ${THRESHOLD}M в директории: ${DIR}\n" > "$REPORT"
find "$DIR" -type f -size +"${THRESHOLD}"M -printf "%p (%s bytes)\n" >> "$REPORT"

# Если отчёт не пустой, отправляем уведомление
if [[ -s "$REPORT" ]]; then
echo -e "📬 Отправляем отчёт администратору: ${ADMIN_EMAIL}"
mail -s "Отчёт: большие файлы на $(hostname)" "$ADMIN_EMAIL" < "$REPORT"
else
echo " Файлов больше ${THRESHOLD}M не найдено."
fi

# Дополнительно: можно логировать в файл
LOGFILE="/var/log/check_large_files.log"
echo "$(date +'%Y-%m-%d %H:%M:%S') - Проверка завершена. Отчёт: $REPORT" >> "$LOGFILE"



Описание работы

1. THRESHOLD — порог размера в мегабайтах, выше которого файл считается «большим».
2. DIR — директория, где ищем большие файлы (по умолчанию /var/log, но можно изменить).
3. Команда find "$DIR" -type f -size +"${THRESHOLD}"M -printf "%p (%s bytes)\n":

▪️ -type f — только файлы.
▪️ -size +<число>M — размер больше заданного числа мегабайт.
▪️ -printf "%p (%s bytes)\n" — выводим полный путь и точный размер в байтах.
4. Результат пишется в временный файл ${REPORT}.
5. Проверка if [[ -s "$REPORT" ]]; then … fi:

▪️ Если отчёт непустой (-s), отправляем его на почту с помощью mail (или любую другую команду уведомления).
▪️ В противном случае выводим сообщение об отсутствии «тяжёлых» файлов.
6. Логируем факт запуска в /var/log/check_large_files.log.


Дополнительные улучшения

▪️ Регулярные выражения: можно искать по шаблону, например, только логи с ротацией:


find "$DIR" -regextype posix-extended -regex ".*/.*\.log\.[0-9]+" -size +"${THRESHOLD}"M -printf "%p (%s bytes)\n"


Здесь -regex найдёт файлы вроде syslog.1, auth.log.2, и игнорирует обычные *.log.
▪️ Cron-задача: чтобы проверять раз в день, добавьте в crontab -e:


0 8 * * * /usr/local/bin/check_large_files.sh


Это запустит скрипт каждый день в 8:00 утра и сразу уведомит вас, если что-то «не так».

BY Админские угодья


Share with your friend now:
tgoop.com/srv_admin_linux/697

View MORE
Open in Telegram


Telegram News

Date: |

How to build a private or public channel on Telegram? Select: Settings – Manage Channel – Administrators – Add administrator. From your list of subscribers, select the correct user. A new window will appear on the screen. Check the rights you’re willing to give to your administrator. Polls Invite up to 200 users from your contacts to join your channel Read now
from us


Telegram Админские угодья
FROM American