4.1查看文件內(nèi)容
? ? cat? 文件內(nèi)容全部顯示,用“Ctrl+C”中斷(適合內(nèi)容比較少的文件,不適合內(nèi)容比較多的)
? ? more? 文件內(nèi)容一頁(yè)一頁(yè)的下翻,“空格”翻頁(yè),用“Ctrl+b”回退往上翻,“q”退出(適用于內(nèi)容較多的文件)
? ? less? 文件內(nèi)容按“↑↓”鍵按照“行”翻動(dòng),“q”退出。
練習(xí):
cd /var/log
ll
cat Xorg.q.log
more Xorg.q.log
less Xorg.q.log
4.2 tail實(shí)時(shí)查看文件內(nèi)容
? ? tail -f? 實(shí)時(shí)查看文件內(nèi)容。假如文件被移除,然后重命名,就無(wú)法再監(jiān)控到文件。
? ? tail -F? 實(shí)時(shí)查看文件內(nèi)容。假如文件被移除,然后重命名,會(huì)不斷地“retry”嘗試去監(jiān)控文件,直到文件被監(jiān)控到位。
[高危命令2:](千萬(wàn)不能把“tail -f"寫(xiě)成“tail -F")
? !!!規(guī)避風(fēng)險(xiǎn):tail --help (仔細(xì)閱讀命令幫助)
練習(xí):
touch 1.log? 2.log
ll?
(新建兩個(gè)會(huì)話(huà)窗口,分別輸入:)
tail -f 1.log
tail -F 2.log
(此時(shí)在原會(huì)話(huà)窗口輸入:)
echo 1 >> 1.log(觀(guān)察新建窗口2的變化)
echo 2 >> 2.log(觀(guān)察新建窗口3的變化)
#說(shuō)明tail -f 和tail -F都能實(shí)時(shí)查看文件內(nèi)容
(在原會(huì)話(huà)窗口繼續(xù)輸入:)
mv 1.log 1.log1
touch 1.log
echo 3 >> 1.log(觀(guān)察新建窗口2的變化,此時(shí)沒(méi)有任何變化,說(shuō)明tail -f已經(jīng)監(jiān)測(cè)不到了)
(在原會(huì)話(huà)窗口繼續(xù)輸入:)
mv 2.log 2.log1
touch 2.log
echo 4 >> 2.log(觀(guān)察新建窗口2的變化,說(shuō)明tail -F能夠不斷嘗試監(jiān)測(cè)文件,直到監(jiān)測(cè)到)
? ? tail -100f 1.log? #查看文件內(nèi)容倒數(shù)100行,并實(shí)時(shí)監(jiān)控,用“Ctrl+C”退出(用于定位問(wèn)題,可在查看問(wèn)題上使用)
練習(xí):
cd /var/log
ll
tail -100f Xorg.q.log



[附:]log4j 日志組件 規(guī)則:大小100M,保留10份
例如:exp.log 當(dāng)其滿(mǎn)了100M時(shí),執(zhí)行:
mv exp.log exp.log1
touch exp.log #生成空的exp.log和100M的exp.log1
當(dāng)空的exp.log又滿(mǎn)100M時(shí),又執(zhí)行:
mv exp.log exp.log2
touch exp.log #生成空的exp.log和100M的exp.log2
一直這樣直到生成10個(gè)100M的exp.log.x文件(x:1~10),然后循環(huán)滾動(dòng)。
?當(dāng)文件內(nèi)容特別多時(shí),如何快速定位到“ERROR”等關(guān)鍵信息?
? cat 文件.log |.grep ERROR(或其他關(guān)鍵詞) #打印文件內(nèi)容;"|":管道符(把上一個(gè)命令輸出結(jié)果作為下一個(gè)命令輸入)
? ? ①cat 文件.log | grep -A 10 ERROR
? ? ? #顯示當(dāng)前關(guān)鍵詞" ERROR"出現(xiàn)后的后10行
? ? ②cat 文件.log | grep -B 10 ERROR
? ? ? #顯示當(dāng)前關(guān)鍵詞" ERROR"出現(xiàn)后的前10行
? ? ③cat 文件.log | grep -C 10 ERROR
? ? ? #顯示當(dāng)前關(guān)鍵詞" ERROR"出現(xiàn)后的前后各10行,共21行
當(dāng)ERROR很多時(shí),成千上萬(wàn),可用以下命令:
? ? ④cat 文件.log | grep -C 10 ERROR > 1.log
? ? ? #把查看到的" ERROR"內(nèi)容(即關(guān)鍵詞ERROR的前后各20行(輸入并覆蓋到文件1.log里面
? ? more 1.log #用more查看1.log文件內(nèi)容
練習(xí):
vi error.log
cat error.log | grep ERROR
cat error.log | grep -A 10 ERROR
cat error.log | grep -B 10 ERROR
cat error.log | grep -C 10 ERROR
touch 1.log
cat error.log | grep -C ERROR > 1.log
cat 1.log


當(dāng)文件內(nèi)容很大時(shí),通過(guò)進(jìn)入編輯模式操作:
? ? ⑤vi 文件.log 然后"shift+ : "
? ? ? 輸入"/ ERROR"(/:匹配符)回車(chē),再按"n"上下翻進(jìn)行查找
? ? ⑥通過(guò)將日志文件下載到Windows電腦再進(jìn)行搜索、定位、分析:
? ? ? yum install -y lrzsz #安裝上傳下載包
? ? 接著使用rz、sz進(jìn)行上傳下載,見(jiàn)5
【坑:】假如xxx.log原文件很大,那么從生產(chǎn)下載到公司網(wǎng)絡(luò)是不是要走外網(wǎng)帶寬10M的,
問(wèn):會(huì)不會(huì)影響公司服務(wù)?
答:肯定會(huì)影響公司服務(wù)的
[建議]:假如下載文件很大,業(yè)務(wù)高峰期或者工作日白天盡量不要做。如果非要做,那就限速!(通過(guò)下載工具FTP,而不能使用sz)