Этот скрипт в реальном времени отслеживает логи веб-сервера и автоматически отправляет email-уведомления при обнаружении ошибок HTTP 500.
Он проверяет наличие аргумента с файлом логов, существование самого файла и доступность команды mail. Чтобы не обрабатывать старые записи, фиксируется текущий размер лог-файла.
Далее используется tail -F для слежения за новыми строками, которые анализируются на наличие ошибок 500. При совпадении через регулярные выражения извлекаются HTTP-статусы и пути запросов, после чего отправляется отформатированное уведомление по email и параллельно пишется запись в локальный лог.
В процессе демонстрируются базовые приёмы shell-скриптинга: работа с аргументами командной строки через $# и $1, проверки с помощью условных конструкций if [ ], операции с файлами и проверка наличия команд через command -v. Также используются регулярные выражения в grep, строковые преобразования через cut и tr, определение функций, пайпинг с tail и циклы while для непрерывного мониторинга.
✈️ Linux Ninja
Post #1275
453

- ❤ 6