Linux编程之我经常使用的主机监控shell剧本仓酷云
对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解;有一段工夫没更新Blog了次要是工夫有点严重。但是比来时不时有互联网的伴侣问我关于服务器监控方面的成绩?问经常使用的服务器监控除用开源软件,好比:cacti,nagios监控外是不是能够本人写shell剧本呢?依据本人的需求写出的shell剧本更能满意需求,更能细化主机监控的周全性。
上面是我经常使用的几个主机监控的剧本,人人能够依据本人的情形在举行修正,但愿能给人人一点匡助。
1、检察主机网卡流量
#!/bin/bash
#network
#Mike.Xu
while:;do
time=date+%m"-"%d""%k":"%M
day=date+%m"-"%d
rx_before=ifconfigeth0|sed-n"8"p|awk{print$2}|cut-c7-
tx_before=ifconfigeth0|sed-n"8"p|awk{print$6}|cut-c7-
sleep2
rx_after=ifconfigeth0|sed-n"8"p|awk{print$2}|cut-c7-
tx_after=ifconfigeth0|sed-n"8"p|awk{print$6}|cut-c7-
rx_result=$[(rx_after-rx_before)/256]
tx_result=$[(tx_after-tx_before)/256]
echo"$timeNow_In_Speed:"$rx_result"kbpsNow_OUt_Speed:"$tx_result"kbps"
sleep2
done
2、体系情况监控
#!/bin/sh
#systemstat.sh
#Mike.Xu
IP=192.168.1.227
top-n2|grep"Cpu">>./temp/cpu.txt
free-m|grep"Mem">>./temp/mem.txt
df-k|grep"sda1">>./temp/drive_sda1.txt
#df-k|grepsda2>>./temp/drive_sda2.txt
df-k|grep"/mnt/storage_0">>./temp/mnt_storage_0.txt
df-k|grep"/mnt/storage_pic">>./temp/mnt_storage_pic.txt
time=`date+%m"."%d""%k":"%M`
connect=`netstat-na|grep"219.238.148.30:80"|wc-l`
echo"$time$connect">>./temp/connect_count.txt
3、监控主机的磁盘空间,当利用空间凌驾90%就经由过程发mail来发告诫
#!/bin/bash
#monitoravailablediskspace
SPACE=df|sed-n//$/p|gawk{print$5}|seds/%//
if[$SPACE-ge90]
then
fty89@163.com
fi
4、监控CPU和内存的利用情形
#!/bin/bash
#scripttocapturesystemstatistics
OUTFILE=/home/xu/capstats.csv
DATE=date+%m/%d/%Y
TIME=date+%k:%m:%s
TIMEOUT=uptime
VMOUT=vmstat12
USERS=echo$TIMEOUT|gawk{print$4}
LOAD=echo$TIMEOUT|gawk{print$9}|sed"s/,//
FREE=echo$VMOUT|sed-n//p|sed-n2p|gawk{print$4}
IDLE=echo$VMOUT|sed-n//p|sed-n2p|gawk{print$15}
echo"$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE">>$OUTFILE
5、全方位监控主机
#!/bin/bash
#check_xu.sh
#0****/home/check_xu.sh
DAT="`date+%Y%m%d`"
HOUR="`date+%H`"
DIR="/home/oslog/host_${DAT}/${HOUR}"
DELAY=60
COUNT=60
#whethertheresponsibledirectoryexist
if!test-d${DIR}
then
/bin/mkdir-p${DIR}
fi
#generalcheck
exportTERM=linux
/usr/bin/top-b-d${DELAY}-n${COUNT}>${DIR}/top_${DAT}.log2>&1&
#cpucheck
/usr/bin/sar-u${DELAY}${COUNT}>${DIR}/cpu_${DAT}.log2>&1&
#/usr/bin/mpstat-P0${DELAY}${COUNT}>${DIR}/cpu_0_${DAT}.log2>&1&
#/usr/bin/mpstat-P1${DELAY}${COUNT}>${DIR}/cpu_1_${DAT}.log2>&1&
#memorycheck
/usr/bin/vmstat${DELAY}${COUNT}>${DIR}/vmstat_${DAT}.log2>&1&
#I/Ocheck
/usr/bin/iostat${DELAY}${COUNT}>${DIR}/iostat_${DAT}.log2>&1&
#networkcheck
/usr/bin/sar-nDEV${DELAY}${COUNT}>${DIR}/net_${DAT}.log2>&1&
#/usr/bin/sar-nEDEV${DELAY}${COUNT}>${DIR}/net_edev_${DAT}.log2>&1&
放在crontab里每小时主动实行:
0****/home/check_xu.sh
如许会在/home/oslog/host_yyyymmdd/hh目次下天生各小时cpu、内存、收集,IO的统计数据。
假如某个工夫段发生成绩了,就能够往看对应的日记信息,看看事先的主机功能怎样。
在这里你会学到更多的知识,学习linux,更要学习一种geek的精神,python之禅中也说过:以总结分享为荣,以跪求其解为耻; 直到学习Linux这门课以后,我才知道,原来我错了。? Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。 其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。 如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。 然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。 感谢老师和同学们在学习上对我的帮助。 在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。 在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。 当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。 不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。 Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。 工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。 随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。 Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
页:
[1]