日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用jenkins实现监控嵌入式设备稳定性之二----脚本部分

發(fā)布時間:2024/8/26 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用jenkins实现监控嵌入式设备稳定性之二----脚本部分 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Readme:

1、下面的腳本,是jenkins通過ftp上傳到每臺pbx的 /root/stability路徑下,pbx執(zhí)行需要用的腳本 2、 para.txt ,是在jenkins構(gòu)建時,jenkins在PBX上下發(fā)命令生成的,生成路徑也在 ??/root/stability ;無需特地準備 para.txt 3、如果想在csv中多記錄數(shù)據(jù),那么在stabilitycsv.sh腳本中自定義添加你要記錄的txt文件,然后在記錄csv的腳本中自定義添加你要增加的記錄內(nèi)容即可 4、如下腳本中有些小細節(jié)跟注意事項,搜索關(guān)鍵詞 “小細節(jié)” “注意事項” 二、具體腳本及一些細節(jié)、注意事項 df.sh df腳本,root/dev ?在$devroot下正常
  • awk獲取指定行制定列數(shù)據(jù):awk 'NR==2{print}'| awk '{print $5}':第2行第5列
#!/bin/sh df_max=`cat para.txt | grep 'df_max'|awk -F ":" '{print$2}'` #dev/root百分值的上限,具體數(shù)值在同路徑下的 para.txt中獲取 df > df.txt root=$(cat df.txt | awk 'NR==2{print}'| awk '{print $5}' | awk -F "%" '{print$1}') # awk 'NR==2{print}'| awk '{print $5}':第2行第5列if [ $root -lt $df_max ] # [] 跟條件語句之間要加 !!空格!! ;如果當前dev/root百分值大于上限,打印error then echo `date`" : dev/root OK" elseecho `date`" : dev/root false" fi
? top.sh top腳本,asterisk虛擬內(nèi)存在minvsz-maxvsz之間正常
  • Linux 中shell 腳本if判斷多個條件:https://blog.csdn.net/weixin_37569048/article/details/80039941
#!/bin/sh asterisk_vsz_max=`cat para.txt | grep 'asterisk_vsz_max'|awk -F ":" '{print$2}'` asterisk_vsz_min=`cat para.txt | grep 'asterisk_vsz_min'|awk -F ":" '{print$2}'` top -b n1 > top.txt vsz=$(cat top.txt |grep 'asterisk -vvv'| awk '{print $5}' | awk -F "m" '{print$1}') #echo $vszif [[ $vsz -gt $asterisk_vsz_min ]] && [[ $vsz -lt $asterisk_vsz_max ]] # 小細節(jié):if 多條件判斷語句,要兩個[] ;參數(shù)與[]之間要有空格 thenecho `date`" : asterisk vsz :"$vsz", OK"elseecho `date`" : asterisk vsz :"$vsz", false" fi cpu.sh CPU腳本,cpu -c 30內(nèi),10個>90% bash的shell腳本for語句有些不支持C語言的寫法:https://blog.csdn.net/liuqinglong_along/article/details/52191382 linux下shell的for語句:https://www.cnblogs.com/EasonJim/p/8315939.html #!/bin/sh #set -xv echo "" > cpu.txtcpu_max=` cat para.txt | grep 'cpu_max'|awk -F ":" '{print$2}'` #cpu的上限 ,具體數(shù)值在同路徑下的 para.txt中獲取 time=0 times=$cpu_checktime #要測試的cpu次數(shù),一秒測試一次打印一次cpu值 errortimes=$cpu_allowerrortime #允許超過指定cpu上限的次數(shù)for i in $(seq 1 $times)doecho "`cpu -c 1`" >> cpu.txtcpu=$(tac cpu.txt | awk "NR==1" | awk '{print $3}' | awk -F "%" '{print$1}') # echo "cpu:"$cpuif [ $cpu -gt $cpu_max ] #如果cpu > 指定值maxcpu,次數(shù)+1 thentime=$(($time+1))echo "time:"$timeelsetime=$timefidoneif [ $time -gt $errortimes ] #如果指定次數(shù)maxtime內(nèi),cpu超過maxcpu次數(shù)大于指定值次數(shù)errortime;打印error thenecho `date`" : cpu false"elseecho `date`" : cpu OK"fi
? memory.sh 檢查內(nèi)存是否泄漏,是否有下降趨勢:連續(xù)5次free下降cach上升,判斷為異常;單次超過極限,也判斷為異常? 在首次運行時,創(chuàng)建memory.txt,并把memory.txt分別cp到memory1.txt-memory5.txt 在第二次及之后運行時,最新的寫到memory.txt,之前的memory.txt->memory1.txt,memory1.txt->memory2.txt 以此類推 先判斷當前free、cach值是否超過給定的極限,符合給定極限后再判斷free跟前5次比是否連續(xù)下降,cach是否連續(xù)上升 #!/bin/sh #set -xv free_min=`cat para.txt | grep 'free_min'|awk -F ":" '{print$2}'` #內(nèi)存的下限 cach_max=`cat para.txt | grep 'cach_max'|awk -F ":" '{print$2}'` #cached的上限#free_min=47084 #cach_max=324000if [ ! -f "memory.txt" ] #判斷memory.txt是否存在---第一次運行該腳本不存在,若不存在則執(zhí)行then部分 then cat /proc/meminfo > memory.txt cp memory.txt memory1.txt cp memory.txt memory2.txtcp memory.txt memory3.txtcp memory.txt memory4.txtcp memory.txt memory5.txtelse break; fi a=0 b=0memfree=`cat memory.txt | awk 'NR==2{print}' | awk '{print$2}'` cached=`cat memory.txt | awk 'NR==4{print}' | awk '{print$2}'` if [[ $memfree -ge $free_min ]] && [[ $cached -lt $cach_max ]] #判斷當前的free跟cach是否超過限制范圍,若沒超過則執(zhí)行then部分進一步判斷 then mv memory4.txt memory5.txtmv memory3.txt memory4.txt mv memory2.txt memory3.txtmv memory1.txt memory2.txtmv memory.txt memory1.txtcat /proc/meminfo > memory.txtfor i in $(seq 1 5) #當前的free跟cach與memory1.txt到memory5.txt對比 do memfreelast=`cat memory$i.txt | awk 'NR==2{print}' | awk '{print$2}'`#echo $memfreelast cachedlast=`cat memory$i.txt | awk 'NR==4{print}' | awk '{print$2}'`#echo $cachedlastif [ $memfree -ge $memfreelast ]then if [ $cached -le $cachedlast ]then echo `date`" : memory and cached OK"breakelse b=$(($b+1))fielse a=$(($a+1))fi i=$((i+1))doneif [ $a -eq 5 ];thenecho `date`" : memfree continue leak:false"fiif [ $b -eq 5 ];thenecho `date`" : cached continue leak:false"fielse echo `date`"memory overflow,please chech memfree and cached : false "fi
stabilitycsv.sh 1、需要對shell執(zhí)行完輸出的txt文件做些改造: a、在寫CSV文件時,是用逗號作為換單元格, b、如果要讓一個單元格內(nèi)的內(nèi)容換行的話,需要將這個單元格的內(nèi)容都用雙引號括起來,如 "aabb",然后在需要換行的位置寫入換行的轉(zhuǎn)義字符;shell輸出的txt的換行符是 \n,excel支持的換行符是 \r\n #!/bin/sh#top.txt sed -n '1,20p' top.txt > topsed1.txt #把top.txt的前1-20行另存為 topsed1.txt(太多行會破壞格式,所以保留的20行) sed 's/,/;/g ' topsed1.txt > topsed2.txt #把topsed1.txt中的 “,”都換成“;”另存到 topsed2.txt中 (因為csv是把“,”當成換單元格,所以把內(nèi)容中的“,”替換掉以保持格式便于查看) sleep 1 sed '1i"' topsed2.txt > topsed3.txt #在topsed2.txt的第一行插入符號" sleep 1 sed '$a"' topsed3.txt > topsed4.txt #在topsed3.txt的最后一行插入符號 " sed 'H;$!d;${x;s/^\n//;s/\n/\r\n/g}' topsed4.txt > top_final.txt # 在topsed4.txt 把換行符由原來的“\n”改成“\r\n”(excel的換行符是\r\n,這樣在window打開可以保持top.txt輸出的換行效果)#如果有其他txt內(nèi)容需要改造,按照top.txt這個模式copy改造即可,如下#df.txt sed 's/,/;/g ' df.txt > dfsed1.txt sleep 1 sed '1i"' dfsed1.txt > dfsed2.txt sleep 1 sed '$a"' dfsed2.txt > dfsed3.txt sed 'H;$!d;${x;s/^\n//;s/\n/\r\n/g}' dfsed3.txt > df_final.txt#cpu.txt sed 's/,/;/g ' cpu.txt > cpu1.txt sleep 1 sed '1i"' cpu1.txt > cpu2.txt sleep 1 sed '$a"' cpu2.txt > cpu3.txt sed 'H;$!d;${x;s/^\n//;s/\n/\r\n/g}' cpu3.txt > cpu_final.txt#memory.txt sed 's/,/;/g ' memory.txt > memory1.txt sleep 1 sed '1i"' memory1.txt > memory2.txt sleep 1 sed '$a"' memory2.txt > memory3.txt sed 'H;$!d;${x;s/^\n//;s/\n/\r\n/g}' memory3.txt > memory_final.txtecho "`date`"",""`cat df_final.txt`"",""`cat top_final.txt`"",""`cat calls_final.txt`"",""`cat memory_final.txt`">> stabilitycsv$PBX_IP.csv #如果要新加入單元格內(nèi)容,在此添加,記得","換單元格

?

ftp_get.sh 執(zhí)行命令格式 ./ftpget.sh PBX_IP password ? (password參數(shù)不填表示密碼為空) ./ftpget.sh 192.168.101.155 1 ? :ip為192.168.101.155,密碼為1 ./ftpget.sh 192.168.101.155 ? ? ?:ip為192.168.101.155,密碼為空 用戶名代碼固定為ls@yf 注意點: 1、該腳本用的是expect ,所以首行是 #!/usr/bin/expect ?;而不是 #!/bin/sh 2、要用 ./ftpget.sh的 格式運行,所以這個腳本要賦予執(zhí)行權(quán)限 755 3、expect用是的tcl語法,注釋跟shell不一樣,需 在#前加?; #!/usr/bin/expect set PBX_IP [lindex $argv 0] ;#取自命名后帶的第一個參數(shù)值,設置為連接的ip,參數(shù)值之間以空格隔開; [lindex $argv 0]表示執(zhí)行命令行帶的第一個參數(shù)值 set password [lindex $argv 1] ;#取自命令后待的第二個參數(shù)值,設置為連接的密碼;無該參數(shù)值表示密碼為空 spawn ftp $PBX_IPexpect "Name" send "root\r"expect "Password:" send "$password\r"expect "ftp>" send "bin\r"expect "ftp>" send "get df.txt\r"expect "ftp>" send "get cpu.txt\r"expect "ftp>" send "bye\r"

?


轉(zhuǎn)載于:https://www.cnblogs.com/cixiafeibixia/p/10712660.html

總結(jié)

以上是生活随笔為你收集整理的使用jenkins实现监控嵌入式设备稳定性之二----脚本部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本wwwxxxx| 久操网在线 | 怡红院一区 | 日韩一区三区 | 91丨porny在线 | 国产精品果冻传媒 | 狠狠的日 | 亚洲天堂高清 | 国产精品一区二区三区四区视频 | 好爽快一点高潮了 | 国产一区二区三区视频在线 | 欧美熟妇精品一区二区蜜桃视频 | 亚洲一区精品视频在线观看 | 日本电影一区二区三区 | 人人射视频 | 国产最新地址 | 91九色网站 | 亚洲精品久久久蜜桃网尤妮丝 | 国产精品无码av在线播放 | 男女做爰真人视频直播 | 国产成人av一区二区 | 久久久久久久久综合 | 成片免费观看视频 | 国产a∨精品一区二区三区仙踪林 | 韩国激情呻吟揉捏胸视频 | 亚洲国产第一 | 欧美性猛交xx | 丁香色欲久久久久久综合网 | 真人bbbbbbbbb毛片| 日韩午夜毛片 | 国产精品久久久久久久久免费 | 国产精品国产三级国产Av车上的 | 精品国产乱码久久久久久1区2区 | 亚洲精品www久久久久久广东 | 中国a一片一级一片 | 一区二区三区手机在线观看 | 裸体裸乳免费看 | 国产一区二区三区播放 | 国产精品久久久久999 | 中文在线字幕免费观看电 | 懂色av中文一区二区三区天美 | 亚洲成人av网址 | 欧美无遮挡高潮床戏 | 一区二区三区欧美精品 | 日本一本久久 | 欧美性猛交xxxx偷拍洗澡 | 亚洲欧美日韩天堂 | 青青青视频在线播放 | www.69av.com| 亚洲色图 校园春色 | 国毛片| 久久亚洲高清 | 国产又粗又猛又黄又爽 | 国产3级在线 | 亚洲天天影视 | 久久精品免费av | 中文二区 | 中国老太婆性做爰 | 91国在线啪 | 亚洲精品性视频 | 不卡视频一区 | 人人妻人人玩人人澡人人爽 | 欧美激情一区二区三区蜜桃视频 | 久久99久久久久久 | www.色黄 | 成人午夜福利视频 | 91看片网 | 久久久人体| 老师的肉丝玉足夹茎 | 欧美大片免费观看 | 久久久久久久久免费视频 | 欧美在线不卡 | 国产精品久久久久久亚洲影视 | 91视频黄| 7777av| 日韩精品一区二区三区四区 | 最新在线视频 | 懂色av蜜臀av粉嫩av分 | 久久久久一区 | 蜜臀中文字幕 | 一级做a爱片久久毛片 | www.狠狠 | 欧美日韩不卡一区二区三区 | 米奇7777狠狠狠狠视频 | 亚洲欧美另类在线观看 | 亚洲天堂资源 | 老女人性生活视频 | 人妻少妇被粗大爽9797pw | 伊人网伊人影院 | 波多野结衣一区二 | 91伦理视频| 久久69| 男人天堂一区二区 | 精品久久久在线观看 | 怡春院在线视频 | 精品久久99 | 欧洲性生活视频 | 亚洲一区二区在线视频 | 亚洲孕交 |