Skip to content

deliriumTBOI/File-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README для File Monitor

Обзор проекта

File Manager — это многопоточное приложение для непрерывного мониторинга изменений и целостности группы файлов в системе Linux. Программа обнаруживает изменения в файлах, используя как периодическую проверку, так и механизм inotify (если доступен), обеспечивая надёжное отслеживание модификаций, удалений, переименований и перемещений файлов.

Основные возможности

  • Гибридный мониторинг: использует как inotify для мгновенного обнаружения событий, так и периодическую проверку для надёжности
  • Многопоточность: параллельная обработка для эффективного мониторинга большого количества файлов
  • Проверка целостности: вычисление SHA-256 хешей для обнаружения изменений в содержимом файлов
  • Рекурсивное сканирование: обработка директорий и поддиректорий для мониторинга файлов
  • Отслеживание новых файлов: обнаружение и мониторинг новых файлов в наблюдаемых директориях
  • Гибкая настройка: конфигурационный файл для тонкой настройки параметров
  • Система логирования: журналирование событий в syslog, консоль или отдельный файл

Требования

  • Linux-совместимая операционная система
  • GCC компилятор
  • make
  • Библиотеки OpenSSL (для вычисления хешей)
  • Библиотека pthread (для многопоточности)

Установка

Установка из исходников

  1. Клонируйте или скачайте репозиторий:

    git clone https://github.com/deliriumTBOI/file_monitor.git
    cd file_monitor
    
  2. Скомпилируйте программу:

    make
    
  3. Создайте конфигурационный файл (если отсутствует):

    make config
    
  4. Установите программу в систему (опционально):

    sudo make install
    

Зависимости

Установите необходимые зависимости:

Debian/Ubuntu:

sudo apt-get install build-essential libssl-dev

Fedora/CentOS:

sudo dnf install gcc make openssl-devel

Использование

Базовое использование

Запустите программу с указанием файлов или директорий для мониторинга:

./bin/file_monitor file1.txt /path/to/directory

Опции командной строки

Использование: ./bin/file_monitor [-c config_file] [-i interval] [-t threads] [-h] [file/dir ...]
  -c config_file: путь к файлу конфигурации (по умолчанию: file_monitor.conf)
  -i interval: интервал проверки в секундах (по умолчанию: 5)
  -t threads: количество потоков (по умолчанию: 4)
  -h: вывод этой справки

Конфигурационный файл

Параметры программы можно настроить в файле конфигурации file_monitor.conf:

# Интервал проверки в секундах
check_interval = 5

# Количество потоков для мониторинга
thread_count = 4

# Использовать inotify для отслеживания изменений (1 - да, 0 - нет)
use_inotify = 1

# Рекурсивное сканирование директорий (1 - да, 0 - нет)
recursive_scan = 1

# Использовать syslog для журналирования (1 - да, 0 - нет)
use_syslog = 0

# Уровень логирования (0 - INFO, 1 - WARNING, 2 - ERROR)
log_level = 0

# Файл для записи журнала (пустой - не использовать файл)
log_file = file_monitor.log

# Отслеживать новые файлы в директориях (1 - да, 0 - нет)
watch_new_files = 0

Примеры использования

Монитор файлов в директории

./bin/file_monitor /etc/nginx

Глубокое рекурсивное сканирование с изменённым интервалом

./bin/file_monitor -i 10 /var/www/html

Использование альтернативного конфигурационного файла

./bin/file_monitor -c /etc/myapp/filemon.conf /path/to/important/files

Мониторинг конкретных файлов

./bin/file_monitor /etc/passwd /etc/shadow /etc/ssh/sshd_config

Разработка

Сборка отладочной версии

make debug

Проверка на утечки памяти

make memcheck

Очистка директории проекта

make clean

Уведомления

Программа выводит подробные сообщения о событиях:

  • Обнаружение изменений в файлах с отображением старого и нового хешей
  • Обнаружение удаления или переименования файлов
  • Добавление новых файлов для отслеживания (если включена соответствующая опция)

Архитектура

File Monitor использует гибридную архитектуру мониторинга:

  1. Компонент inotify: тредом обрабатываются события файловой системы в реальном времени
  2. Компонент периодической проверки: несколько тредов периодически просматривают файлы для обнаружения изменений
  3. Компонент расчёта хешей: используется OpenSSL для вычисления SHA-256 хешей

Производительность

Программа разработана для эффективной работы даже при большом количестве отслеживаемых файлов. Основные оптимизации:

  • Многопоточная обработка для распределения нагрузки
  • Использование inotify для моментального реагирования без необходимости частой проверки
  • Эффективное управление ресурсами с автоматической очисткой

Устранение проблем

Программа не обнаруживает изменения

  • Проверьте права доступа к отслеживаемым файлам и директориям
  • Убедитесь, что значение check_interval не слишком большое
  • Проверьте лог-файл на наличие ошибок

Повышенное потребление ресурсов

  • Уменьшите количество отслеживаемых файлов
  • Увеличьте значение check_interval
  • Уменьшите количество потоков через thread_count

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors