tigroid3
@tigroid3
PHP, YII2, SQL, Postgres, Docker, SPHINX, GIT

Как слушать файл в realtime?

Собственно в файл посредством утилиты записываются данные о пользователе. На этом же сервере написал api которое принимает логи. Можно ли как то реализовать, что при каждом апдейте файла или вообще просто, без файла, данные отправлять на адрес моего api?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
vman
@vman
для файла простейшим вариантом будет реализовать поведение подобное утилите tail или вызвать tail и забирать вывод с нее

$handle = popen("tail -f /path/to/my/logfile.log 2>&1", 'r');

while(!feof($handle)) {
    $buffer = fgets($handle);
    // здесь будет вызов API
    ob_flush();
    flush();
}
pclose($handle);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Ну, хоть на вопрос и ответили, таки добавлю. В линуксе есть подсистема inotify, которая позволяет мониторить файл действительно в realtime - https://ru.wikipedia.org/wiki/Inotify
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы