php 读取 linux 文件,PHP读取大文件,linux读取日志
工作中遇到一個問題,運營或客服經(jīng)常會問一些用戶使用中的問題涉及到日志查詢,開始的時候來一個給查一下日志。。后來發(fā)現(xiàn)每天都會問個五六次。。沒辦法后來就給弄了個讀日志的工具。
讀著讀著發(fā)現(xiàn)有時候會出現(xiàn)掛掉的情況,不頻發(fā)而且也不是對外的功能就沒當回事兒,但是后來將多臺服務器的日志互相做了軟鏈整合之后發(fā)現(xiàn)基本每次查詢都會掛掉,逐找時間排查問題。
看了眼異常日志發(fā)現(xiàn)日志過大,原來搜索日志的方法比較簡單粗暴,直接讀取后存入數(shù)組再遍歷匹配。但是這樣操作現(xiàn)在每天的日志都上幾百兆了明顯不可行了,后來想著日志再次細分一下吧,把一些相對比較大的日志按照類型再次劃分了目錄,但是想了想如果流量比現(xiàn)在大的話即使細分了也還是可能會出現(xiàn)問題。
想了想方案,后來覺得還是用linux的grep來處理比較方便快捷,代碼如下:
if ($search['keyword'] != ''){
$file_dir = 'log/'.$path.'.log';
if (!is_file($file_dir))goto index;
$info = shell_exec("grep -A 3 ".$search['keyword'].' '.$file_dir);
if (empty($info))goto index;
$ret = explode(PHP_EOL,$info);
}
主要是利用shell_exec來執(zhí)行grep返回搜索值,沒具體算過時間,但是二百多兆的文件也都能在一秒內(nèi)處理完。
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的php 读取 linux 文件,PHP读取大文件,linux读取日志的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 接受数组_PHP接收前端发送的数
- 下一篇: 债券型基金可以长期持有吗