У меня есть сценарий синтаксического анализа журнала mod_security для загрузки данных в базу данных mysql, к которой затем обращается наша система управления проектами, чтобы отображать недавние пометки наборов правил для наших разработчиков.
Скрипт отлично работает, но мне нужно придумать, как он называется. Я мог бы добавить его в cronjob, но я не уверен, что сервер загружает его каждые 2-5 секунд.
Мне было интересно, есть ли способ вызвать скрипт при записи файла журнала?
Если вы пишете в файл, вы можете просто написать в «| yourimportscript» и запустить его через конвейерный ввод. При перезапуске apache перезапускается процесс. Он будет проводить большую часть своего времени в ожидании ввода данных и не требует работы cron.
Вы можете написать свой скрипт как демон и использовать famd, чтобы узнать, был ли изменен файл. Или сохраните последний прочитанный fpos, и когда ваш cron сработает, посмотрите, есть ли что-нибудь помимо сохраненного fpos.
Если вы не получаете так много данных, влияние будет несколько низким. Если вы получаете много данных, вы также можете рассмотреть возможность ведения журнала через системный журнал на отдельном компьютере и выполнения там обработки.