国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發(fā) > PHP > 正文

PHP實現(xiàn)linux命令tail -f

2024-05-04 23:43:12
字體:
來源:轉載
供稿:網(wǎng)友
tail 命令從指定點開始將文件寫到標準輸出.使用tail命令的-f選項可以方便的查閱正在改變的日志文件,tail -f filename會把filename里最尾部的內(nèi)容顯示在屏幕上,并且不但刷新,使你看到最新的文件內(nèi)容.接下來通過本文給大家介紹PHP實現(xiàn)linux命令tail -f,需要的朋友參考下
 

tail 命令從指定點開始將文件寫到標準輸出.使用tail命令的-f選項可以方便的查閱正在改變的日志文件,tail -f filename會把filename里最尾部的內(nèi)容顯示在屏幕上,并且不但刷新,使你看到最新的文件內(nèi)容.

1.命令格式;

tail[必要參數(shù)][選擇參數(shù)][文件]

2.命令功能:

用于顯示指定文件末尾內(nèi)容,不指定文件時,作為輸入信息進行處理。常用查看日志文件。

3.命令參數(shù):

-f 循環(huán)讀取

-q 不顯示處理信息

-v 顯示詳細的處理信息

-c<數(shù)目> 顯示的字節(jié)數(shù)

-n<行數(shù)> 顯示行數(shù)

--pid=PID 與-f合用,表示在進程ID,PID死掉之后結束.

-q, --quiet, --silent 從不輸出給出文件名的首部

-s, --sleep-interval=S 與-f合用,表示在每次反復的間隔休眠S秒

今天突然想到之前有人問過我的一個問題,如何通過PHP實現(xiàn)linux中的命令tail -f,這里就來分析實現(xiàn)下。

這個想一想也挺簡單,通過一個循環(huán)檢測文件,看文件的大小是否有變化,如果有變化,輸出文件變化的部分,當然了這里面會有好多的細節(jié),這里具體分析下。

如果初始文件太大或者改變內(nèi)容太多

這個時候一下輸出好多內(nèi)容可能看不清,因此我這里設置了一個閾值8192,當內(nèi)容長度超過這個閾值的時候,只輸出最后面的8192個字節(jié),這樣就不會出現(xiàn)大面積的刷新導致看不清的問題。

如何檢測文件大小的變化

這個問題是這個程序的核心,能不能成功,性能的好壞就靠這部分了。

我在這里的實現(xiàn)是下面這樣:

•打開文件句柄$fp,這里要注意,這里的文件句柄全程需中只打開一次關閉一次,因此要將他放在循環(huán)的外面。
•初始化當前文件大小file_size和file_size_new都為0。 •循環(huán)里面更新file_size_new文件大小,這里要注意,php中獲取文件大小之前一定要運行函數(shù)clearstatcache(),清除文件狀態(tài)緩存,否則獲取文件大小可能會有偏差。

•計算add_size = file_size_new - file_size,看文件大小是否有變化,如果有變化,將文件指針移動到指定位置,然后輸出新加的內(nèi)容,更新file_size值為new_file_size。
•usleep(50000),睡眠1/20秒。

代碼實現(xiàn)

#!/usr/bin/env php <?phpif(2 != count($argv)){fwrite(STDERR,"調用格式錯誤!使用格式 ./tail filename".PHP_EOL); return 1;}$file_name = $argv[1];define("MAX_SHOW", 8192);$file_size = 0;$file_size_new = 0;$add_size = 0;$ignore_size = 0;$fp = fopen($file_name, "r");while(1){clearstatcache();$file_size_new = filesize($file_name);$add_size = $file_size_new - $file_size;if($add_size > 0){ if($add_size > MAX_SHOW){$ignore_size = $add_size - MAX_SHOW;$add_size = MAX_SHOW;fseek($fp, $file_size + $ignore_size);} fwrite(STDOUT,fread($fp, $add_size)); $file_size = $file_size_new;}usleep(50000);}fclose($fp);

代碼實現(xiàn)這里第一行的#!/usr/bin/env php 是告訴可執(zhí)行文件,可執(zhí)行文件php在系統(tǒng)PATH中查找,這樣的好處就是移植性好。

下面是結果

PHP實現(xiàn)linux命令tail -f

下文給大家介紹如何實現(xiàn)Linux下高亮關鍵字的tail -f功能

公司內(nèi)部一哥們發(fā)布到郵件列表中的一個小tip,挺有意思,屬于程序員的“奇淫技巧”類吧,值得記錄一下。
如果你在linux下工作,那用tail -f跟蹤一個日志文件的輸出內(nèi)容應該是家常便飯了。
但是,有時你更關心的是一些敏感字詞,希望能夠在動態(tài)跟蹤的同時,把這些字詞高亮出來,比如日志中的ERROR關鍵字。
那么,一種思路就是把你tail輸出的東西再做一次包裝處理,這個很符合linux管道處理的思想。以高亮Log中的ERROR為例,你可以這樣:

Shell代碼

tail -f xxx.log | perl -pe 's/(ERROR)//e[1;31m$1/e[0m/g' 

其中,xxx.log是你要跟蹤的文件。這里假設了你的Linux的PATH中有perl。perl在這里干的事情,就是通過命令行的方式進行動態(tài)的替換ERROR字符串的操作,替換過程中,主要使用了Linux的console_codes的語法結構。(具體關于console_codes的細節(jié),可以通過man console_codes進行了解)這里,/e主要進行轉移說明。
如果你手頭有server log之類的日志,試試上面的命令,是不是把ERROR全部標紅了。
利用這個原理,你完全可以按照你所需要的顏色高亮你感興趣的輸出,具體的顏色說明,可以在man console_codes中查到。
另外,less本身也支持類似于tail -f的操作,就是在你用less打開一個文件之后,按住SHIFT+F鍵,這樣就直接進入follow的模式了。看上去跟tail -f效果是一致的。利用這點,你想達到高亮的tail -f的效果,就攏共分為以下3步了:

less xxx.log中/${key_work}的方式搜索你要高亮的關鍵字。(即使目前文件中沒有也沒關系)SHIFT+F,進入follow模式


注:相關教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
亚洲一区免费在线| 国产专区在线| 国产亚洲依依| 国产视频第一区| 国产黄色免费看| 国产在线www| 国内自拍视频在线观看| 超碰免费在线| 国产小黄视频| 亚洲综合在线免费| 久热国产视频| 国产精美视频| 欧美韩日国产| 国产精品视频一区麻豆| 亚洲社区在线| 国产一级二级在线| 亚洲国产成人综合| 国产人成精品| gogo高清在线播放免费| 丁香花高清在线观看完整版| 国产三区四区在线观看| 国产传媒在线播放| 青青草免费在线视频| 国产乱子伦三级在线播放| 国产h色视频在线观看| 日本福利午夜视频在线| 国产高清在线观看| 国产中文字幕在线视频| 精品福利视频导航大全| 国产秒拍福利视频露脸| av二区三区| 国产精品伦理一区二区三区| 久久久久久国产视频| 精品一区二区三区免费站| 国产69精品久久久久孕妇国产69久久| 国产精品入口麻豆电影| 国产中文在线| 国产69精品久久久久孕妇国产69久久| 亚洲综合色视频在线观看| 国产天堂在线| 国产一二三四| 国产亚av手机在线观看| 在线中文免费视频| 伊人免费视频| 国产天堂在线| 日本中文字幕在线视频| 精品欧美日韩一区二区| 资源视频在线播放免费| 国产在线拍揄自揄拍视频| 亚洲欧美一区二区三区在线播放| 成人欧美日韩| 欧美日韩在线精品成人综合网| 永久免费在线观看| 97中文字幕| 四虎久久影院| 超碰国产在线观看| 高清av中文在线字幕观看1| 丁香花在线电影小说观看 | av在线资源网| 人人干人人插| 丁香综合五月| 91精品专区| av在线二区| 日本欧美在线视频免费观看| www.狠狠| 最新中文字幕在线| 2021av天天| www.eeuss影院| 国产乱子视频| 在线色视频网| 国产在线视频精品视频免费看| 国产免费一级片| 精品国产免费观看一区| 老司机在线视频二区| 国产精品186在线观看在线播放| 在线视频三级| 成人av小说网| 亚洲91av| 尤物视频在线看| 在线播放黄色网址| 午夜伦全在线观看| 免费日本黄色| 中文字幕av在线播放| 国产免费专区| 亚洲国产精华液| 国产精品99爱免费视频| 超碰人人在线| 四虎精品成人a在线观看| 国产人成高清视频观看| 激情六月丁香| 波多野结衣久久高清免费| 97操碰视频| 国产区在线观看| 九九热视频在线观看| 亚洲精品男人| 国产黄色在线网站| 国产三级视频在线看| 最近中文字幕av免费高清| 久久久久久久久久久久久91 | 国产老肥熟xxxx在线观看| 奇米影视狠狠狠| 在线观看精品一区二区三区| 国产福利热线视频| 国产呻吟对白刺激无套视频在线| 国产在线观看a视频| 久久精品蜜桃| 黄色av电影在线播放| 午夜在线网站| 亚洲欧美日韩综合精品网| www.色五月| 2018中文字幕在线| 国产一区二区三区不卡免费观看| 性色视频在线| 亚洲精品久久久成人| 在线看a视频| 在线中文免费视频| 精品网站www| 精品欧美不卡一区二区在线观看| 国产人成高清视频观看| 国产三级在线播放| 国产高清视频在线观看| 国产不卡在线| 国产激情视频在线观看| 国产高清视频在线播放| 在线亚洲不卡| 麻豆网站在线| 国产视频精选在线| av高清在线| 国产伦精品一区二区三区高清版禁| 中文字幕在线资源| 精品国产99久久久久久| 亚洲videos| 天天操天天曰| 在线国产三级| 黄色国产网站在线观看| 国产精品99999| 亚洲国产日韩成人综合天堂| 在线观看的网站你懂的| 久热免费在线视频| 国产寡妇树林野战在线播放| 亚洲成人在线播放| 午夜视频在线免费 | 精品视频在线一区二区| 一本大道久久精品| 最新中文字幕av专区| av中文资源在线| 国产一级在线观看www色 | 成人日韩欧美| 99久久免费精品国产免费| eeuss影院在线播放| 中文字幕网站视频在线| 影音先锋在线中文字幕| 综合图区亚洲白拍在线| 色中文字幕在线| 国产福利在线免费观看| 久久久久久久久久久久久91| 精品视频一二三| 国产丝袜在线观看视频| 免费看成年人视频在线观看| 在线播放国产区| 97福利电影| 国产一级大片| 中文字幕在线视频免费观看| 久久久久久久久亚洲精品| 99热免费观看| 99re热视频在线| 99热免费观看| 国产福利小视频在线| 国产精品va在线观看视色| 国产免费永久在线观看| 久久久久久国产视频| www久久日com| 人人澡人人爽| 国产在线视频精品视频免费看| 青青久草在线| 激情小说 在线视频| 国产主播福利在线| 国产乱精品一区二区三区| 国产免费一级片| 国产精品综合久久久久| 天堂在线免费观看| 国产小视频福利在线| 69堂视频在线观看国产| 亚洲尤物在线视频| 高清av在线| 国产不卡精品一区二区三区| 日韩在线天堂| 久久精品最新免费国产成人| 丁香花在线电影| 国产盗摄精品一区二区酒店| 伊人伊人av电影| 麻豆国产在线播放| 国产小视频在线播放| 亚洲人成电影| 国产69久久| 精品美女在线观看视频在线观看| 天天艹天天操| 国产精品视频一区二区免费不卡| 先锋av资源网| 国产福利资源|