亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

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

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

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

1.命令格式;

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

2.命令功能:

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

3.命令參數(shù):

-f 循環(huán)讀取

-q 不顯示處理信息

-v 顯示詳細(xì)的處理信息

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

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

--pid=PID 與-f合用,表示在進(jìn)程ID,PID死掉之后結(jié)束.

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

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

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

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

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

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

如何檢測文件大小的變化

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

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

•打開文件句柄$fp,這里要注意,這里的文件句柄全程需中只打開一次關(guān)閉一次,因此要將他放在循環(huán)的外面。
•初始化當(dāng)前文件大小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,"調(diào)用格式錯誤!使用格式 ./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中查找,這樣的好處就是移植性好。

下面是結(jié)果

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

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

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

Shell代碼

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

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

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


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美亚洲在线观看| 精品动漫3d一区二区三区免费版| 欧美性性性性性ⅹxxbbbb| 亚洲精品无码专区| 中文字幕 自拍| 激情小说 在线视频| xxxx 国产| 麻豆一二三区精品蜜桃| 男人天堂视频在线观看| av不卡在线| 精品久久久久久亚洲综合网| 日本在线一二三区| 久久久香蕉视频| 蜜桃视频欧美| 国产精品一区二区三区乱码| 美女尤物国产一区| 50路60路老熟妇啪啪| 岛国片在线观看| 国产欧美日韩一区二区三区在线| 中文在线www| 日韩伦理在线| 一级精品视频在线观看宜春院| 亚洲国产精品v| 免费精品国产自产拍观看| 国产高清在线观看视频| 亚洲人成午夜免电影费观看| 无码国产精品久久一区免费| 久久99久久人婷婷精品综合| 亚洲伊人观看| 美女在线视频一区二区| 丰满亚洲少妇av| 久热精品视频在线免费观看| 欧日韩在线观看| aaa国产精品| jizzjizz16| 午夜日韩在线电影| 精品国产区一区二区三区在线观看| 精品处破女学生| 国产蜜臀一区二区打屁股调教| 羞羞视频在线观看不卡| 日韩免费在线观看| 欧美视频免费看| 视频在线这里都是精品| 最新91在线| 欧美一区二区国产| 国产激情精品久久久第一区二区| 日韩欧美三级在线观看| av网站免费播放| 欧美在线一级va免费观看| 天堂中文在线资源| 懂色av一区二区三区在线播放| 一区二区不卡视频| 91免费观看在线| 日本vs亚洲vs韩国一区三区二区| 波多野结衣电影在线播放| 欧美色就是色| 免费无遮挡无码永久视频| 一区二区三区美女视频| 亚洲一区二区图片| 亚洲精品ady| 亚洲激情视频网| 91日本在线观看| 夫妻性生活毛片| 色综合欧美在线视频区| 亚洲高清精品视频| 91免费在线视频| 亚洲精品视频中文字幕| 亚洲国产精品第一区二区| 视频二区一区| 成人淫片免费视频95视频| 大片免费在线观看| porn视频在线观看| 美女福利精品视频| 邻居大乳一区二区三区| 欧美一卡2卡3卡4卡无卡免费观看水多多| 羞羞漫画网18久久app| 久久久久久久久久久久久91| 18成人免费观看视频| 91黄色在线视频| 国产乱码精品一区二区三区忘忧草| 懂色av一区二区三区四区五区| 日漫免费在线观看网站| 中文字幕第12页| 欧美色精品在线视频| 91精品国产91久久综合桃花| 韩国av免费在线观看| 亚洲一区二区三区四区五区午夜| 一区二区三区视频在线观看视频| 国产成人精品视频一区| 国产精品三级一区二区| 欧美成人h版在线观看| 亚洲人的天堂男人爽爽爽| 色综合影院在线观看| 国产免费又粗又猛又爽| 99国产精品久久久久久久久久| 91久久在线播放| 国产亚洲欧美另类一区二区三区| 国产美女免费观看| 秋霞影院午夜丰满少妇在线视频| 欧美性受xxx黑人xyx性爽| 自拍av一区二区三区| 国产不卡在线观看视频| 中国一级特黄录像播放| 日本一不卡视频| 久久综合九色综合久99| 色黄视频在线| 日本三级中国三级99人妇网站| av在线电影网| 7799精品视频天天看| 97人人爽人人喊人人模波多| 国产精品香蕉一区二区三区| 国产精品视频免费在线观看| 精品国产成人亚洲午夜福利| 天堂在线免费av| 免费久久精品视频| 鲁大师影院一区二区三区| 男人操女人免费软件| 欧美日韩综合一区二区| 久久免费精品日本久久中文字幕| 亚洲视频自拍偷拍| 又黄又色的网站| 亚洲精品一二三**| 天天躁日日躁aaaa视频| 国产精品视频免费看| 欧美精品卡一卡二| 国产亚洲精品网站| 亚洲日本精品| 狠狠做深爱婷婷久久综合一区| 国产午夜精品理论片a级探花| 户外极限露出调教在线视频| 欧美日韩亚洲不卡| 免费h网站在线观看| 久久视频这里有精品| 国产aⅴ精品一区二区三区色成熟| 婷婷六月国产精品久久不卡| 夜夜爽www精品| av在线你懂的| 亚洲国产91视频| 91九色对白| 日韩精品一二三区| 国产91av在线| 美国一级片在线免费观看视频| 亚洲欧美中文日韩在线| 天天综合网站| 亚洲人成在线观看网站高清| 久久免费国产精品| 日韩毛片在线播放| 欧美中文字幕视频| 夜色资源站国产www在线视频| 成人激情免费在线| 久久一区视频| 91老师国产黑色丝袜在线| 欧美日韩中文在线视频| 亚洲欧美日韩国产综合在线| 小处雏高清一区二区三区| 黄色动漫在线| 99理论电影网| 男人添女人荫蒂免费视频| 国产精品嫩草影院一区二区| 亚洲一卡2卡三卡4卡2021四卡| 国产成人免费看| 日本黄色免费在线| 久热精品在线| 国产毛片久久久久| av高清日电影| caoporen国产精品| 成人在线爆射| 精品人妻伦一区二区三区久久| 亚洲成a人片777777久久| 美女黄色丝袜一区| 欧美激情视频一区二区三区免费| 国产一二三在线视频| 国产精品xx| 激情久久久久久久| 日韩精品一区二区三区| 99精品热视频只有精品10| 成人精品在线视频| 男人的天堂在线视频免费观看| 国产精品久久午夜| 国产极品一区二区三区| 26uuu亚洲伊人春色| 57pao国产精品一区| 日本视频中文字幕| 欧美自拍一区| 国产亚洲一区在线| 色爽爽爽爽爽爽爽爽| 黄色毛片视频| 醉酒壮男gay强迫野外xx| 狠狠色狠狠色综合人人| 欧美激情精品久久久久久蜜臀| 都市激情亚洲欧美| 日韩大片b站免费观看直播| 亚洲免费在线视频一区 二区| youjizz欧美| 91视频免费在线观看| 国产又粗又大又爽| 国产精品白丝jk白祙| 最近2019中文字幕在线高清| 色一情一乱一伦一区二区三区日本| 91小视频网站| 久久久美女视频| 久久久久人妻一区精品色欧美| 亚洲国产精品国自产拍av秋霞| 又黄又湿又爽又免费又色| 天天干天天操天天拍| 色婷婷av金发美女在线播放| 黑人精品一区二区三区| 日本久久二区| 欧美成人免费在线观看| 韩国三级hd中文字幕有哪些| 亚洲一区二区毛片| 1区2区3区国产精品| av日韩在线免费| 欧亚洲嫩模精品一区三区| 日韩女优制服丝袜电影| 色老头在线一区二区三区| 亚洲三级电影在线观看| 亚洲精品久久久狠狠狠爱| 欧美精品二区三区四区免费看视频| 久热精品视频在线| 亚洲欧美日韩一二三区| 国产成人精品123区免费视频| 日韩精品一二三四区| 欧美电影精品一区二区| 日本午夜在线亚洲.国产| 亚洲承认在线| 中文字幕精品三区| 在线成人免费观看| 在线免费三级电影网站| 国产精品国产成人国产三级| 全部免费的黄色毛片| 在线电影一区二区三区| 麻豆一区区三区四区产品精品蜜桃| 成人精品美女隐私视频| 五月综合激情婷婷六月色窝| 奇米色一区二区| 亚洲国产精品高清| 色一情一乱一区二区三区| 国产农村妇女精品一区二区| 欧美 日韩 成人| 厕沟全景美女厕沟精品| www.欧美三级电影.com| 日韩精品在线一区| 日韩在线观看av| 中文字幕在线导航| 中文字幕亚洲一区二区三区五十路| 精品国产欧美| 蜜臀av免费一区二区三区| 日韩高清一区在线| 中文字幕在线看人| 四虎最新地址发布| 中国女人内谢25xxxx免费视频| 在线综合+亚洲+欧美中文字幕| 中文字幕一区二区人妻电影丶| 欧美中文在线观看国产| av网址在线免费观看| 黄色三级网站在线观看| 日韩精品视频一区二区在线观看| 中国女人一级一次看片| 亚洲精品乱码久久久久久久久久久久| 欧美成熟毛茸茸复古| 成人天堂噜噜噜| 在线免费看视频| 国产麻豆精品入口在线观看| japan乱配videos老少配| 亚洲综合一区中| 欧美日韩一区二区三区四区在线观看| 久久蜜桃资源一区二区老牛| av片在线免费观看| 国产freexxxx性播放麻豆| 一区二区三区四区精品在线视频| 宅男噜噜噜66国产日韩在线观看| 国产女主播喷水高潮网红在线| 中国极品少妇xxxx| 青青国产91久久久久久| 色啪免费观看视频| 玖玖爱免费视频| 色狠狠av一区二区三区| 国产精品一区在线观看你懂的| 中国黄色一级视频| 国产成人va亚洲电影| 欧美性生交xxxxx久久久| www.4438全国最大| 狠狠操视频网| av电影在线观看完整版一区二区| 黑人と日本人の交わりビデオ| 日韩av一区二区在线播放| 日本大胆欧美| 黄色一级片在线| 很污很黄的网站| 色久综合一二码| 国产不卡一二三| 国产精品综合二区| 热99精品视频| 日韩国产欧美视频| 欧美性生活一级片| 超碰在线最新| 91美女在线免费观看| www.av黄色| 一二三四日本在线| 国产日韩欧美精品在线观看| 欧美电影在线免费观看| 欧美日韩大尺度| 欧美性受xxxx黑人xyx性爽| 欧美一区高清| 麻豆国产va免费精品高清在线| 一区二区三区视频在线| 久久久成人av毛片免费观看| 欧美大片顶级少妇| 国产老头和老头xxxx×| 国产嫩草一区二区三区在线观看| 美女露出粉嫩尿囗让男人桶| 男人的天堂在线视频免费观看| 欧美专区视频| 国产在线国偷精品免费看| 91精品国自产在线观看| 欧美天堂亚洲电影院在线播放| 欧美熟妇另类久久久久久多毛| 成人av色在线观看| 99爱在线视频| 一级做a爱片性色毛片| 欧美激情精品久久久久久免费印度| 欧美a级片网站| 久久综合九色综合欧美就去吻| 国产欧美日韩综合一区在线观看| 成人国产视频在线观看| 久久99国产精品尤物| 一个人看的www久久|