精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Shell腳本實戰:日志關鍵字監控+自動告警

系統 Linux
主要用于Linux服務器監控程序日志,如出現關鍵字異常則觸發相應的動作或告警操作,通知到郵件聯系人。

該程序使用場景說明:主要用于Linux服務器監控程序日志,如出現關鍵字異常則觸發相應的動作或告警操作,通知到郵件聯系人。

一、安裝郵件服務

1、解壓 

  1. tar -jxf mailx-12.4.tar.bz2 -C /usr/src/ && cd /usr/src/mailx-12.4/ 

2、編譯 

  1. make install UCBINSTALL=/usr/bin/install 

異常編譯報錯-1

異常報錯解決方法

下載mailx補丁文件“mailx-12.4-openssl_1.0.0_build_fix-1.patch”,將補丁文件和mailx解壓縮目錄放置同一路徑

執行打補丁命令: 

  1. patch -p0 < mailx-12.4-openssl_1.0.0_build_fix-1.patch 

進入mailx-12.4重新執行編譯命令: 

  1. make install UCBINSTALL=/usr/bin/install 

檢測mailx是否安裝成功:mailx -V

3、配置 

vi /etc/nail.rc,在文件的最后添加

set from=

set smtp=

set smtp-auth-user=

set smtp-auth-password=

set smtp-auth=login

如下圖所示,修改配置完后保存

4、測試發送郵件

echo '郵件正文'|mailx -v -s "郵件標題" 郵箱地址

至此郵件功能測試正常,接下來是關鍵字監控腳本的編寫工作,通過日志關鍵字腳本觸發郵件告警腳本實現日志監控

二、關鍵字監控腳本開發

CheckLogs.sh 日志監控程序

SendMail.sh 發郵件腳本,該腳本可自定義

conf 配置文件目錄,chklist為配置文件

初次執行CheckLogs.sh腳本會讀取日志文件并記錄當前讀取的行數

后續運行腳本則讀取更新日志,例如當前日志更新了9行數據,則腳本從最新的9行數據獲取關鍵字

測試插入關鍵字error

繼續執行腳本可以看到已捕獲關鍵字并觸發告警

測試多關鍵字

再次執行可以看到已捕獲最新更新的日志信息

測試頻率控制

至此相關功能測試已完成。最后附上腳本相關代碼如下: 

  1. #!/bin/bash  
  2. basedir=$(cd `dirname "$0"`;pwd)  
  3. logsdir=$basedir/logs  
  4. tmpsdir=$basedir/tmps  
  5. confdir=$basedir/conf  
  6. chkfile=$confdir/chklist  
  7. logfile=$logsdir/log.log_$(date +%F)  
  8. #創建各種目錄  
  9. mkdir -p $logsdir $tmpsdir $confdir  
  10. #創建配置文件  
  11. if test ! -e "$chkfile";then  
  12.     echo "#日志文件,關鍵字(多關鍵字|隔開),重試次數,最大執行次數,啟動命令,停止命令" >$chkfile  
  13. fi  
  14. #生成日志函數  
  15. do_writelog() {  
  16.     case $1 in  
  17.     i|I)  
  18.         shift  
  19.         echo "$(date +%Y-%m-%d) $(date +%H:%M:%S)|INFO|$@" >>$logfile  
  20.         ;;  
  21.     e|E)  
  22.         shift  
  23.         echo "$(date +%Y-%m-%d) $(date +%H:%M:%S)|ERROR|$@" >>$logfile  
  24.         ;;  
  25.     w|W)  
  26.         shift  
  27.         echo "$(date +%Y-%m-%d) $(date +%H:%M:%S)|WARNING|$@" >>$logfile  
  28.         ;;  
  29.     *)  
  30.         echo "$(date +%Y-%m-%d) $(date +%H:%M:%S)|DEBUG|$@" >>$logfile  
  31.         esac  
  32.  
  33. #日志處理部分代碼  
  34. cat $chkfile|egrep -v "^($|#)"|while read i;do  
  35.  
  36.     app_name=$(echo "$i"|awk -F, '{print $1}')  
  37.     if test -z "$app_name";then  
  38.         do_writelog e "應用名稱為空,退出執行"  
  39.         exit 0  
  40.     fi  
  41.     log_filename=$(echo "$i"|awk -F, '{print $2}')  
  42.     if test ! -e "$log_filename";then  
  43.         do_writelog e "日志文件($log_filename)不存在,退出執行"  
  44.         exit 0  
  45.     fi  
  46.     log_md5sum=$(echo -n "$log_filename"|md5sum|awk '{print $1}')  
  47.     log_gjz=$(echo "$i"|awk -F, '{print $3}')  
  48.     if test -z "$log_gjz";then  
  49.         do_writelog i "日志文件($log_filename),關鍵字為空,退出執行"  
  50.         exit 0  
  51.     fi  
  52.     log_retry=$(echo "$i"|awk -F, '{print $4}')  
  53.     expr $log_retry + 0 &>/dev/null  
  54.     if [ $? -ne 0 ];then  
  55.         log_retry=0  
  56.     fi 
  57.      log_max=$(echo "$i"|awk -F, '{print $5}')  
  58.     expr $log_max + 0 &>/dev/null  
  59.     if [ $? -ne 0 ];then  
  60.         log_max=3  
  61.     fi  
  62.     start_command=$(echo "$i"|awk -F, '{print $6}')  
  63.     stops_command=$(echo "$i"|awk -F, '{print $7}')  
  64.     open_sendmail=$(echo "$i"|awk -F, '{print $8}')  
  65.     mail_scripts=$(echo "$i"|awk -F, '{print $9}')  
  66.     mail_contacts=$(echo "$i"|awk -F, '{print $10}')  
  67.     if [ $open_sendmail -eq 1 ];then  
  68.         if test -z "$mail_scripts";then  
  69.             do_writelog i "應用($app_name),觸發動作腳本為空,退出執行"  
  70.             exit 0  
  71.         fi  
  72.         if test -z "$mail_contacts";then  
  73.             do_writelog i "應用($app_name),聯系人為空,退出執行"  
  74.             exit 0  
  75.         fi  
  76.     fi  
  77.     if test ! -e "$tmpsdir/$log_md5sum";then  
  78.         log_new_count=$(wc -l $log_filename|awk '{print $1}')  
  79.         echo "$log_new_count" >$tmpsdir/$log_md5sum 
  80.         do_writelog i "日志文件($log_filename),初始化讀取日志行數:$log_new_count,退出執行"  
  81.     else  
  82.         log_old_count=$(cat $tmpsdir/$log_md5sum)  
  83.         expr $log_old_count + 0 &>/dev/null 
  84.          if [ $? -ne 0 ];then  
  85.             do_writelog e "日志文件($log_filename),讀取歷史行數失敗,退出執行"  
  86.             exit 0  
  87.         fi  
  88.         log_new_count=$(wc -l $log_filename|awk '{print $1}')  
  89.         if [ $log_new_count -eq $log_old_count ];then  
  90.             do_writelog i "日志文件($log_filename),未更新,退出執行"  
  91.             exit 0  
  92.         elif [ $log_new_count -lt $log_old_count ];then  
  93.             do_writelog i "日志文件($log_filename),跨日更新日志行數:$log_new_count,退出執行"  
  94.             echo "$log_new_count" >$tmpsdir/$log_md5sum  
  95.         else  
  96.            log_upd_count=$(expr $log_new_count - $log_old_count)  
  97.            do_writelog i "日志文件($log_filename),歷史行數:$log_old_count,最新行數:$log_new_count,更新行數:$log_upd_count"   
  98.            #讀取更新的日志  
  99.            log_content=$(tail -n +`expr $log_old_count + 1` $log_filename|head -n +$log_upd_count)  
  100.            oldIFS=$IFS  
  101.            IFS="|"  
  102.            count=0  
  103.            for i in $log_gjz;do  
  104.                if [ $(echo "$log_content"|grep -c -w "$i") -ge 1 ];then  
  105.                    let count+=1    
  106.                fi  
  107.                if [ $count -gt 0 ];then  
  108.                    break  
  109.                fi  
  110.            done  
  111.            IFS=$oldIFS  
  112.            if [ $count -gt 0 ];then  
  113.                echo "0" >>$tmpsdir/${log_md5sum}.retry  
  114.            else  
  115.               do_writelog i "日志文件($log_filename),未獲取到關鍵字,退出執行"  
  116.               echo "$log_new_count" >$tmpsdir/$log_md5sum  
  117.               exit 0  
  118.            fi  
  119.            if [[ $(wc -l $tmpsdir/${log_md5sum}.retry|awk '{print $1}') -gt $log_retry ]];then  
  120.                echo "0" >>$tmpsdir/${log_md5sum}_$(date +%F)  
  121.                if [ $(wc -l $tmpsdir/${log_md5sum}_$(date +%F)|awk '{print $1}') -le $log_max ];then  
  122.                    $stops_command 1>>$logfile 2>&1  
  123.                    $start_command 1>>$logfile 2>&1  
  124.                    do_writelog i "日志文件($log_filename),日志內容:$log_content,找到關鍵字:$i,停止命令:$stops_command,啟動命令:$start_command,重啟服務"  
  125.                    if [ $open_sendmail -eq 1 ];then  
  126.                        if test -n "$mail_scripts";then  
  127.                            $mail_scripts "應用[$app_name]故障" "日志文件($log_filename),日志內容:$log_content,找到關鍵字:$i" "$mail_contacts" 1>>$logfile 2>&1  
  128.                            if [ $? -ne 0 ];then  
  129.                                do_writelog i "日志文件($log_filename),日志內容:$log_content,找到關鍵字:$i,觸發告警失敗"  
  130.                            fi  
  131.                            do_writelog i "日志文件($log_filename),日志內容:$log_content,找到關鍵字:$i,觸發告警通知聯系人:[$mail_contacts]"  
  132.                        fi  
  133.                    else  
  134.                        do_writelog i "日志文件($log_filename),日志內容:$log_content,找到關鍵字:$i,不觸發告警"  
  135.                    fi  
  136.                else  
  137.                    do_writelog i "日志文件($log_filename),日志內容:$log_content,找到關鍵字:$i,重啟服務超出當天限制次數:$log_max,退出執行"  
  138.                fi  
  139.                rm -f $tmpsdir/${log_md5sum}.retry &>/dev/null  
  140.            else  
  141.                do_writelog i "日志文件($log_filename),日志內容:$log_content,找到關鍵字:$i,重試檢測:$(wc -l $tmpsdir/${log_md5sum}.retry|awk '{print $1}')"  
  142.            fi  
  143.            echo "$log_new_count" >$tmpsdir/$log_md5sum  
  144.            do_writelog i "日志文件($log_filename),更新記次文件完成"   
  145.         fi  
  146.     fi  
  147. )&  
  148. done 

 

 

責任編輯:龐桂玉 來源: Linux學習
相關推薦

2009-11-26 19:24:54

PHP類CMS

2025-05-08 09:05:00

Shell腳本磁盤日志

2022-01-04 16:35:42

C++Protected關鍵字

2012-03-01 12:50:03

Java

2009-09-02 09:24:03

C# this關鍵字

2009-09-17 09:30:00

Linq LET關鍵字

2013-01-30 10:12:14

Pythonyield

2018-04-20 15:56:09

Pythonglobal關鍵字

2009-08-21 14:58:56

C# this關鍵字

2009-08-13 13:04:29

C# lock關鍵字

2022-06-29 08:05:25

Volatile關鍵字類型

2021-02-01 13:10:07

Staticc語言UNIX系統

2022-05-06 08:32:40

Pythonwith代碼

2019-11-06 10:36:43

MavenoptionalJava

2022-02-17 08:31:38

C語言staic關鍵字

2025-01-09 10:30:40

2009-08-21 14:47:59

C# base關鍵字

2009-08-26 15:16:29

C# lock關鍵字

2019-12-20 15:19:41

Synchroinze線程安全

2011-06-14 13:26:27

volatile
點贊
收藏

51CTO技術棧公眾號

欧美性videos高清精品| 亚洲综合日本| 日韩一区二区三区在线| 国产 国语对白 露脸| 成人毛片在线免费观看| 亚洲欧美日韩国产一区| 国产亚洲在线播放| 国产在线视频三区| 欧美男男激情videos| 日本一区二区三区视频视频| 91日韩在线视频| 国产污视频在线观看| 国产精品片aa在线观看| 欧美精品日韩一区| 18禁裸男晨勃露j毛免费观看| 中文 欧美 日韩| 天天操夜夜操国产精品| 亚洲二区在线播放视频| 丝袜制服一区二区三区| 在线观看中文字幕的网站| 97精品电影院| 成人有码在线视频| 免费在线不卡视频| 五月开心六月丁香综合色啪| 亚洲国产一区二区三区在线观看| 成年人小视频网站| 福利在线导航136| 日本一区二区三区dvd视频在线| 国产日韩欧美日韩| 在线观看 中文字幕| 欧美激情电影| 日韩激情视频在线播放| 国产精品嫩草影视| 成人看片网页| 亚洲国产精品综合小说图片区| 免费久久一级欧美特大黄| 国产精品视频第一页| 性色一区二区| 欧美激情影音先锋| 三级黄色片在线观看| 九九热线有精品视频99| 精品国产一区二区三区久久影院| 已婚少妇美妙人妻系列| 国产美女一区视频| 亚洲人成人一区二区在线观看| 看欧美日韩国产| 成 人 免费 黄 色| 精品一区二区三区视频在线观看| 97成人超碰免| 欧美黄色一级网站| 亚洲国产一区二区在线观看| 一区二区三区四区精品| 人妻少妇精品视频一区二区三区| 在线不卡一区| 欧美调教femdomvk| 99精品视频播放| 美女露胸视频在线观看| 亚洲一区免费观看| wwwwww欧美| 成人三级网址| 自拍偷拍亚洲激情| 一区二区精品在线| 香蕉视频国产在线观看| 国产精品婷婷午夜在线观看| 天堂精品视频| 午夜视频在线免费观看| 国产精品女主播av| 色综合久久av| 日本不卡不卡| 亚洲三级在线免费| 蜜桃网站在线观看| 黄色羞羞视频在线观看| 亚洲成人你懂的| 国产妇女馒头高清泬20p多| 波多野结衣在线播放| 五月激情六月综合| 欧美亚洲另类色图| 色8久久影院午夜场| 欧美少妇bbb| 中文字幕亚洲乱码| 国产精品xnxxcom| 日韩精品一区二区三区四区视频| 樱花草www在线| 91久久偷偷做嫩草影院电| 日韩精品一页| 高潮白浆女日韩av免费看| 日韩欧美亚洲天堂| 免费观看成人性生生活片 | 熟妇人妻久久中文字幕| 丝袜美腿综合| 国产一区二区三区在线观看视频| 妺妺窝人体色WWW精品| 91亚洲国产| 欧美黑人xxxⅹ高潮交| 九九热在线免费观看| 日韩1区2区3区| 亚洲影院在线看| 日本高清视频免费观看| 久久久www成人免费无遮挡大片| 欧美在线激情| а√中文在线8| 精品久久久久久电影| 国产福利影院在线观看| 精品亚洲二区| 日韩毛片在线看| 小嫩苞一区二区三区| 亚洲精品123区| 国产精品自拍网| 欧美一区二区三区黄片| 亚洲国产成人私人影院tom| 福利在线一区二区| 成人精品三级| 精品福利在线导航| 美国美女黄色片| 亚洲激情视频| 92国产精品久久久久首页| 伦理片一区二区三区| 一区二区三区日本| 欧美伦理片在线观看| 超碰成人福利| xxxxx成人.com| 国产超碰人人爽人人做人人爱| 日韩精品高清不卡| 国产精品yjizz| 三级外国片在线观看视频| 午夜av电影一区| 久久久久久综合网| 国产精品亚洲二区| 午夜精品www| 999免费视频| 国产欧美日韩精品在线| 六月丁香激情网| 日韩视频在线直播| www国产91| 一区二区三区麻豆| 91一区一区三区| 国产一区二区三区小说| а天堂中文最新一区二区三区| 日韩精品免费在线视频观看| 久久老司机精品视频| 国精产品一区一区三区mba视频 | 久久97人妻无码一区二区三区| 天堂va蜜桃一区二区三区漫画版| 亚洲综合自拍一区| 大地资源网3页在线观看| 在线视频中文字幕一区二区| 亚洲一区二区三区四区五区六区| 亚洲xxx拳头交| 国产女人精品视频| 3p视频在线观看| 欧美午夜精品久久久| 91网站免费入口| 亚洲综合欧美| 久久超碰亚洲| 原纱央莉成人av片| 国产视频精品久久久| 制服.丝袜.亚洲.中文.综合懂色| 国产乱码精品一区二区三区av | 欧美与亚洲与日本直播| 亚洲老头同性xxxxx| 日本三级小视频| 国产99一区视频免费| 国产精品视频二| julia中文字幕一区二区99在线| 久久福利网址导航| 国产成人精品毛片| 亚洲精品你懂的| 午夜视频在线网站| 亚洲精品国产首次亮相| 亚洲自拍av在线| 欧美寡妇性猛交xxx免费| 欧美va亚洲va| 日韩成年人视频| 99视频有精品| 草草草在线视频| 日韩中字在线| 亚洲综合精品伊人久久| hd国产人妖ts另类视频| 日韩精品久久久久久久玫瑰园| 五月天婷婷久久| 国产亚洲精品7777| 91亚洲精品久久久蜜桃借种| 你懂的视频一区二区| 国产精品区二区三区日本| 色在线视频观看| 在线播放国产一区中文字幕剧情欧美 | 国产视频第一页| 日韩毛片高清在线播放| 人妻巨大乳一二三区| 雨宫琴音一区二区在线| 精品在线不卡| 国产精品久久久久久久久免费高清 | 一区二区精品| 日韩精品资源| **国产精品| 国产69精品久久久| 番号集在线观看| 欧美一级片免费看| 伦av综合一区| 综合激情成人伊人| 特大黑人巨人吊xxxx| 久久精品国产一区二区三| www.国产亚洲| 精品国产一区探花在线观看| 91久久综合亚洲鲁鲁五月天| 美女的胸无遮挡在线观看| www欧美日韩| 深夜影院在线观看| 欧美一区二区视频在线观看| 久久黄色精品视频| 亚洲女子a中天字幕| 日韩精品无码一区二区三区久久久| 毛片av一区二区| 久久这里只有精品23| 久久裸体网站| 久久精品日产第一区二区三区| 精品123区| 91chinesevideo永久地址| 黄色成人影院| 国产亚洲一级高清| 日本福利在线观看| 日韩精品自拍偷拍| 一级黄色免费片| 欧美日韩亚洲精品一区二区三区 | 亚洲视频在线观看一区二区| 亚洲6080在线| 久久精品视频免费在线观看| 国产人伦精品一区二区| 国产熟女高潮一区二区三区 | 中文字幕观看在线| 欧美日韩一区二区三区 | 亚洲综合精品久久| 蜜桃视频最新网址| 欧美韩国一区二区| 一卡二卡三卡四卡| www.亚洲精品| 欧美激情 亚洲| 国产乱码精品一品二品| www.99r| 男男视频亚洲欧美| 激情视频综合网| 美女精品一区| 国产美女网站在线观看| 精品二区视频| 国产成人在线小视频| 欧美视频一区| 激情六月天婷婷| 中文字幕av亚洲精品一部二部| 先锋影音网一区| 精品一区免费| 欧美日韩一区二区三| 婷婷成人影院| 噜噜噜噜噜久久久久久91| 欧美男人操女人视频| 国模精品一区二区三区| 大型av综合网站| 成人在线视频网址| 都市激情亚洲| 国产一区二区精品在线| 美女av一区| 鲁丝一区鲁丝二区鲁丝三区| 伊人久久大香线蕉| 日韩高清dvd| 日韩电影免费网址| 一区二区三区不卡在线| 91精品国产91久久久久久密臀 | 少妇喷水在线观看| 亚洲精品国产欧美| 青春有你2免费观看完整版在线播放高清| 欧美xxxx在线观看| 男人天堂网在线视频| 日韩av在线高清| 日夜干在线视频| 在线观看日韩欧美| 黄色的网站在线观看| 欧美激情女人20p| 国产无遮挡裸体视频在线观看| 91精品国产777在线观看| 欧美91看片特黄aaaa| 国产精品影片在线观看| 日韩一区二区三区精品| 精品欧美国产一区二区三区不卡| 日本午夜精品久久久| 色综合视频二区偷拍在线| 亚洲一级毛片| 日韩在线综合网| 欧美aⅴ一区二区三区视频| 国产在线视频三区| 久久一二三国产| 女人18毛片毛片毛片毛片区二| 亚洲人成在线观看一区二区| 日本三级理论片| 欧美亚洲高清一区二区三区不卡| 在线免费av片| 精品国产免费视频| 精品国内二区三区| 国产精品333| 免费在线欧美黄色| 日本爱爱免费视频| 国产一区欧美一区| 国产黑丝一区二区| 中文字幕不卡的av| 日韩免费一二三区| 在线精品视频免费观看| 99久久国产免费| 亚洲精品视频在线播放| 超碰在线无需免费| 3344国产精品免费看| 91国内外精品自在线播放| 91免费观看| 成人av资源电影网站| 精品丰满人妻无套内射| 麻豆精品国产91久久久久久| 亚洲中文字幕无码一区| 国产精品电影一区二区| 青青青国产在线| 日韩欧美激情在线| eeuss影院在线观看| 91国产精品视频在线| 国产欧美88| 视频在线精品一区| 99热精品在线观看| 欧美熟妇另类久久久久久多毛| 成熟亚洲日本毛茸茸凸凹| 99国产精品无码| 欧美日在线观看| 亚洲伦理在线观看| 久久国产精彩视频| 狠狠久久伊人中文字幕| 欧美13一14另类| 怡红院精品视频在线观看极品| 高清一区在线观看| 久久人人爽人人爽| 99热国产在线观看| 精品91自产拍在线观看一区| 蜜桃av在线免费观看| 国产成人精品视频在线| 日韩动漫一区| 无码 制服 丝袜 国产 另类| 国产美女娇喘av呻吟久久| 性爱在线免费视频| 欧美专区亚洲专区| 国外av在线| 国产成人精品综合| 久久99久久人婷婷精品综合 | 中文精品一区二区| 成年人网站免费视频| 成人丝袜18视频在线观看| 99热精品免费| 欧美一级一级性生活免费录像| www黄在线观看| 国产精品吹潮在线观看| 怕怕欧美视频免费大全| 红桃av在线播放| 久久影音资源网| 久草视频在线观| 日韩精品免费综合视频在线播放| 第一中文字幕在线| 韩国成人一区| 亚洲免费播放| 给我免费观看片在线电影的| 精品久久久久久久久久国产| 色婷婷av一区二区三区之e本道| 久久99久久久久久久噜噜| 欧美成人一级| 成人免费a级片| 99久久伊人精品| 日韩欧美成人一区二区三区| 亚洲欧美综合v| 国产成人精品一区二区三区视频| 欧美日韩精品中文字幕一区二区| 午夜在线精品偷拍| 色欲AV无码精品一区二区久久| 色综合天天综合色综合av| 国产高清自拍视频在线观看| 国产精品热视频| 亚洲电影在线一区二区三区| 在线免费黄色小视频| 亚洲国产精品久久久久秋霞影院 | 日本h片在线| 精品视频第一区| 日本网站在线观看一区二区三区| 国产三级在线观看完整版| 91精品国产品国语在线不卡| 国产在线拍揄自揄拍视频 | 国产一区二区小视频| 欧美精品手机在线| 亚洲另类av| 天天综合网久久| 亚洲尤物视频在线| 国产一级二级三级在线观看| 成人亲热视频网站| 亚洲精品影院在线观看| 亚洲AV无码成人精品区明星换面 | 精品久久福利| 国产精品www在线观看| 国产蜜臀av在线一区二区三区 | 欧美一级在线免费| 欧美一区久久久| 女女百合国产免费网站|