您的位置:首页 > 运维架构 > Shell

常用的主机监控Shell脚本

2016-03-09 00:00 645 查看
下面是我常用的几个主机监控的脚本,大家可以根据自己的情况在进行修改,希望能给大家一点帮助。

1、查看主机网卡流量

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18
#!/bin/bash

#!/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-'


sleep
2


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"


sleep
2

done

done

2、系统状况监控

1

2

3

4

5

6

7

8

9

10

11

12

13
#!/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来发警告

1

2

3

4

5

6

7
#!/bin/bash

#monitoravailablediskspace

SPACE=
'df|sed-n'
/\/$/p
'|gawk'
{print$5}
'|sed'
s/%
//
'

if
[$SPACE-
ge
90]

then

fty89@163.com

fi

4、监控CPU和内存的使用情况

1

2

3

4

5

6

7

8

9

10

11

12
#!/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'
/[0-9]
/p
'|sed-n'
2p
'|gawk'
{print$4}
''

IDLE=
'echo$VMOUT|sed-n'
/[0-9]
/p
'|sed-n'
2p
'|gawk'
{print$15}
''

echo
"$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE"
>>$OUTFILE

5、全方位监控主机

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28
#!/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

export
TERM=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里每小时自动执行:

1
0****
/home/check_xu
.sh

这样会在/home/oslog/host_yyyymmdd/hh目录下生成各小时cpu、内存、网络,IO的统计数据。

如果某个时间段产生问题了,就可以去看对应的日志信息,看看当时的主机性能如何。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: