Я столкнулся с проблемой. У меня есть журнал в окне Linux, в котором записан вывод нескольких запущенных процессов. Этот файл иногда может быть очень большим, и мне нужно прочитать последнюю строку из этого файла.
Проблема в том, что это действие будет вызываться через AJAX-запрос довольно часто, и когда размер файла этого журнала превышает 5-6 МБ, это довольно плохо для сервера. Поэтому я думаю, что мне нужно прочитать последнюю строку, но не читать весь файл и проходить через него или загружать его в ОЗУ, потому что это просто загрузит до смерти мою коробку.
Есть ли какая-либо оптимизация для этой операции, чтобы она работала без сбоев и не вредила серверу или не убивала Apache?
Другой вариант, который у меня есть, - exec('tail -n 1 /path/to/log')
, но он звучит не так хорошо.
Позднее редактирование: Я НЕ хочу помещать файл в ОЗУ, потому что он может стать огромным. fopen()
не вариант.