linux 基本服務檢測腳本
linux
這裏是我本身寫的一些監控linux基本服務的腳本,基於公司的實際生產環境,公司已經在使用zabbix,可是因爲和公司要求不符合,這裏就都使用了本身手寫的腳本進行取值,有不合理的地方但願你們可以指出來。bash
1. cpu_load.sh
ide
#!/bin/bashspa
#這裏是作的一個cpu load負載的一個腳本,取的值爲一分鐘。ip
uptime | awk '{print $10}' | awk -F "," '{print $1}'內存
2. cpu_used.sh it
#!/bin/bashio
#這裏取值取的是cpu的使用百分比, 單位%class
File=cpu_`date +%Y%m%d`awk
sar -u >/tmp/$File
free=`tac /tmp/$File|sed -n 2p|awk '{print $NF}'`
echo $free|awk '{printf "%.2f\n", 100-$1}'
3. Mem_free.sh
#!/bin/bash
# 這個一個計算內存可用容量腳本 可用容量等於free+buffers+cached,單位爲M
Free=`free -m| grep Mem| awk '{print $4}'`
Buffers=`free -m| grep Mem| awk '{print $6}'`
Cached=`free -m| grep Mem| awk '{print $7}'`
Avial=$(($Free+$Bufers+$Cached))
echo $Avial
4. Mem_total.sh
#!/bin/bash
#單位名稱爲M
free -m | grep Mem| awk '{print $2}'
5. Mem_usage.sh
#!/bin/bash
#這個一個計算內存可用使用率腳本 可用容量等於free/total
Free=`free -m| grep Mem| awk '{print $4}'`
Buff=`free -m| grep Mem| awk '{print $6}'`
Cach=`free -m| grep Mem| awk '{print $7}'`
Total=`free -m | grep Mem| awk '{print $2}'`
Tused=$(($Total-$Free-$Buff-$Cach))
echo "$Tused $Total"|awk '{printf ("%.2f\n",$1*100/$2)}'
6.IO_read.sh
#!/bin/bash
#原始單位:塊 換算單位:M
file=ior_`date +%Y%m%d`
sar -b > /tmp/$file
Read=`tac /tmp/$file|sed -n 2p|awk '{print $(NF-1)}'`
echo $Read|awk '{printf ("%.2f\n", $1*4/1024)}'
7.IO_write.sh
#!/bin/bash
#原始單位:K 換算單位:M
file=iow_`date +%Y%m%d`
sar -b > /tmp/$file
Write=`tac /tmp/$file|sed -n 2p|awk '{print $NF}'`
echo $Write|awk '{printf ("%.2f\n", $1*4/1024)}'
8. disk_total.sh
#!/bin/bash
#這裏取值取的是disk total值,單位名稱是GB
df -hT| grep '/$'| awk '{print $2}'| awk '{print$1}'|sed 's/G//g'
9. disk_usage.sh
#!/bin/bash
#這裏取值取的是disk 使用率值,單位名稱是%
df -hT| grep '/$'| awk '{print $5}'| awk '{print$1}'|sed 's/%//g'
10. disk_used.sh
#!/bin/bash
#這個是取值 取的是disk used的值,單位是GB
df -hT| grep '/$'| awk '{print $3}'| awk '{print$1}'|sed 's/G//g'
11. Network_in.sh
#!/bin/bash
#這是一個檢測網卡入口流量的腳本,單位名稱爲Mb
File=net_`date +%Y%m%d`
for i in `ls /etc/sysconfig/network-scripts/|grep ifcfg|grep -v lo|awk -F "-" '{print $2}'`
do
mii-tool $i >/dev/null 2>&1
if [ $? -eq 0 ];
then
sar -n DEV 1 2|grep $i >/tmp/$File
Net_in=`tac /tmp/$File|sed -n 2p|awk '{print $6}'`
echo $Net_in|awk '{printf ("%.2f\n", $1*8/1000)}'
else
continue
fi
done
12. Network_out.sh
#!/bin/bash
# 這是一個檢測網卡出口流量的腳本,單位名稱爲Mb
File=net_`date +%Y%m%d`
for i in `ls /etc/sysconfig/network-scripts/|grep ifcfg|grep -v lo|awk -F "-" '{print $2}'`
do
mii-tool $i >/dev/null 2>&1
if [ $? -eq 0 ];
then
sar -n DEV 1 2|grep $i >/tmp/$File
Net_out=`tac /tmp/$File|sed -n 2p|awk '{print $7}'`
echo $Net_out|awk '{printf ("%.2f\n", $1*8/1000)}'
else
continue
fi
done