Я пытаюсь получить последнюю строку файла. Файл ff.log получает новые данные каждую секунду, пока работает ffmpeg. Файл журнала выглядит следующим образом:Linux безумный файл - странное поведение Получение последней строки файла журнала
кадра = 20 кадров в секунду = 0 Q = 7.7 Размер = 40kB время = 1,24 битрейт = 266.1kbits/с
кадра = 30 кадров в секунду = 28 кв = 6,6 размер = 51KB время = 1,90 биттрат = 218,4 кбит/с
frame = 40 fps = 24 q = 6.6 size = 61kB time = 2,60 bitrate = 191.4kbits/s
frame = 47 fps = 20 q = 6.8 size = 65kB time = 3,08 bitrate = 173.8kbits/с
кадра = 64 кадров в секунду = 22 кв = 7,0 размер = 84KB время = 4.20 битрейт = 163.8kbits/с
(продолжает добавлять новые линии каждую секунду или быстрее)
Я попытался
$line = `tail -n 1 $file`;
Я попытался с помощью FSEEK() с "php tail script".
Оба результата привели к некоторому странному поведению.
Я побежал мой сценарий из командной строки и выводимый:
кадр = XX кадров в секунду = XX кв = XX размер = XX время = XX битрейта = XXkbits/s
Где XX продолжал расти в течение нескольких секунд, пока это не было значением из последней строки.
Теперь в моем PHP скрипт, я
echo "--$last_line--";
Когда я запускаю его, выход в течение нескольких секунд, просто строки лога с увеличением числа. Когда, когда он достигает конца, выход
--ame = 7119 кадров в секунду = 9 д = 13.8 размер = 4809kB время = 474,50 битрейт = 83.0kbits/с
Обратите внимание, что первый " - «столкнулся с $ last_line, а другой -« нет ».
Какое объяснение этому странному поведению?
Пробовал с эхом «-». $ Line. "- \ п"; также –