shell 監(jiān)控日志變化
問題背景
系統(tǒng)運(yùn)維工作中經(jīng)常需要手動(dòng)的確認(rèn)一下系統(tǒng)是否正常運(yùn)行瘩欺,通常就是監(jiān)控一下日志是否輸出执桌。
問題解決
服務(wù)器很多,頻繁的進(jìn)入日志目錄很不方便
考慮使用linux 的軟連接:
ln -s /app/tomcat/log/catalina.out /app/log
這樣只需要
tail -f /app/log
問題進(jìn)階-1
上邊的方案確實(shí)節(jié)省了一些時(shí)間甚脉,但是還不夠误堡,考慮是使用監(jiān)控日志的變化,判斷應(yīng)用是否出現(xiàn)了假死
- 使用命令watch
-d, --differences[=cumulative] 高亮顯示變動(dòng)
-n, --interval= 周期(秒)
-t 或-no-title 會關(guān)閉watch命令在頂部的時(shí)間間隔
Example : watch -n 1 -d netstat -ant
具體事例
#watch uptime
#watch -t -d uptime
#watch -d -n 1 netstat -ntlp
#watch -d ’ls -l | fgrep goface’ //監(jiān)測goface的文件
#watch -t -differences=cumulative uptime
#watch -n 60 from //監(jiān)控mail
#watch -n 1 ”df -i;df” //監(jiān)測磁盤inode和block數(shù)目變化情況
#watch -n 60 -d du -ah //查看usb3.0拷貝到該目錄下面的速度
我們可以使用這個(gè)有趣命令觀察日志文件是否變化:
watch -n 1 -d -t 'ls -l catalina.out'
日志文件的大小會高亮顯示變化丢习,說明系統(tǒng)在正常運(yùn)行(當(dāng)然這里只是一種假設(shè)牵触,并不考慮異常輸出的問題,主要是介紹這個(gè)命令)
如果系統(tǒng)中存在多個(gè)tomcat泛领,我們可以在同時(shí)監(jiān)控多個(gè)命令
watch -n 1 -d -t 'ls -l /tomcat/tomcat01/log/catalina.out;ls -l /tomcat/tomcat02/log/catalina.out'