Linux 第四课 监控脚本编写

作业:编写脚本

  1. 持续循环监控top命令

  2. 汇总系统CPU、内存使用情况

  3. 汇总系统网络、IO使用情况

  4. 先启动nginx服务,然后循环监控它是否存在,如被kill,则再次启动,重复监控

  5. 持续循环监控top命令

#!/bin/bash
result_file=top.log
baseline_cpu=100
filter_string="print \$9,\$1,\$12"
while true
do
top -b -n 1 > $result_file
free_cpu=`grep Cpu $result_file  | awk '{print $5}' | sed  "s|\%\([a-z]\)\([a-z]\)\,||g"`
used_cpu=`echo 100 - $free_cpu | bc`
echo "free cpu: $free_cpu ,  used_cpu: $used_cpu"
if [ $(echo "$free_cpu >  $baseline_cpu "|bc) -eq 1 ];then
  echo  "idle cpu is enough"
else
  echo "cpu is not enough , max used cpu pid info : "
  echo "cpu pid cmd"
  echo "`grep  %CPU  -A 100000 $result_file | grep -v  %CPU | awk '{print $9,$1,$12}'  | sort -nrk1 | head -n 1 ` "
fi
sleep 5  
echo 
done

思路1:定时任务
思路2:写个循环,每隔多久执行

  1. 汇总系统CPU、内存使用情况
#!/bin/bash
result_file=top.log
top -b -n 1 > $result_file
system_cpu=`grep Cpu $result_file | awk '{print $3}' | sed "s|\%\([a-z]\)\([a-z]\)\,||g"`
free_mem=`grep Mem $result_file | awk '{print $6}' | sed "s|\%\([a-z]\)\([a-z]\)\,||g"`
echo "sys cpu: $system_cpu ,free mem: $free_mem "
#!/bin/bash
result_file=top.log
result_cpu_log=cpu.log
result_mem_log=mem.log
cpu_total=0
mem_total=0
top -b -n 1 > $result_file
grep %CPU -A 100000 $result_file |grep -v %CPU | awk '{print $9}' | sort -nrk1 > $result_cpu_log
grep %MEM -A 100000 $result_file |grep -v %MEM | awk '{print $10}' | sort -nrk1 > $result_mem_log
echo "sum: %CPU %MEM "
for i in  `cat $result_cpu_log`
do
   cpu_total=`echo $cpu_total +  $i | bc`
done
for i in  `cat $result_mem_log`
 do
  mem_total=`echo $mem_total +  $i | bc` 
 done
echo "sum : $cpu_total, $mem_total"
  1. 汇总系统网络、IO使用情况
#!/bin/bash
result_file=iotop.log
result_io_log=io.log
io_total=0
iotop -b -n 1 > $result_file
grep IO -A 100000 $result_file |grep -v IO | awk '{print $10}' | sort -nrk1 > $result_io_log
echo "sum: IO "
for i in  `cat $result_io_log`
do
   io_total=`echo $io_total +  $i | bc`
done
echo "sum : $io_total"

脚本模式和获取cpu、内存的使用 相同
awk 'BEGIN{total=0}{total+=$1}END{print total}'

根据某个网卡去查网络使用情况
rxkB/s : 每秒接受的字节数
txkB/s : 每秒发送的字节数

#!/bin/bash
result_file=net.log
sar -n DEV 2 5 | grep em1 > $result_file
echo "rxkB/s,txkB/s"
awk 'NF{a=$0}END{print a}' $result_file | awk '{print $5,$6}'
  1. 先启动个nginx服务,然后循环监控它是否存在,如被kill,则再次启动,重复监控
#!/bin/sh
while true
do
ps -fe|grep nginx |grep -v grep
if [ $? -ne 0 ]
then
  echo "start process....."
  /usr/local/nginx/sbin/nginx
else
  echo "runing....."
fi
sleep 5
done

top后台执行显示:top: failed tty get
Linux系统中top命令是交互式命令,故脚本中执行时会卡住,不再执行下一个命令。解决办法是:top -b
-b : Batch mode operation
Starts top in Batch mode, which could be useful for sending output from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit youve set with the-ncommand-line option or until killed.
如要持续监控top,没有启动时则立刻启动
在shell脚本中可用 nohup top -b &

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容