下面是我常用的幾個主機監控的指令碼,大家可以根據自己的情況在進行修改,希望能給大家一點幫助。
1、檢視主機網絡卡流量
以下是**片段:
#!/bin/bash
#network
#mike.xu
while : ; do
time=\』date +%m"-"%d" "%k":"%m\』
day=\』date +%m"-"%d\』
rx_before=\』ifconfig eth0|sed -n "8"p|awk \』\』|cut -c7-\』
tx_before=\』ifconfig eth0|sed -n "8"p|awk \』\』|cut -c7-\』
sleep 2
rx_after=\』ifconfig eth0|sed -n "8"p|awk \』\』|cut -c7-\』
tx_after=\』ifconfig eth0|sed -n "8"p|awk \』\』|cut -c7-\』
rx_result=$[(rx_after-rx_before)/256]
tx_result=$[(tx_after-tx_before)/256]
echo "$time now_in_speed: "$rx_result"kbps now_out_speed: "$tx_result"kbps"
sleep 2
done
2、系統狀況監控
以下是**片段:
#!/bin/sh
#systemstat.sh
#mike.xu
ip=192.168.1.227
top -n 2| grep "cpu" >>./temp/cpu.txt
free -m | grep "mem" >> ./temp/mem.txt
df -k | grep "sda1" >> ./temp/drive_sda1.txt
#df -k | grep sda2 >> ./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%就通過發email
來發警告
以下是**片段:
#!/bin/bash
#monitor **ailable disk space
space=\』df | sed -n \』/ \\ / $ / p\』 | gawk \』\』 | sed \』s/%//\』
if [ $space -ge 90 ]
then
fty89@163
fi4、 監控cpu和記憶體的使用情況
以下是**片段:
#!/bin/bash
#script to capture system statistics
outfile=/home/xu/capstats.csv
date=\』date +%m/%d/%y\』
time=\』date +%k:%m:%s\』
timeout=\』uptime\』
vmout=\』vmstat 1 2\』
users=\』echo $timeout | gawk \』\』 \』
load=\』echo $timeout | gawk \』\』 | sed "s/,//\』 \』
free=\』echo $vmout | sed -n \』/[0-9]/p\』 | sed -n \』2p\』 | gawk \』 \』 \』
idle=\』echo $vmout | sed -n \』/[0-9]/p\』 | sed -n \』2p\』 |gawk \』\』 \』
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_$/$"
delay=60
count=60
# whether the responsible directory exist
if ! test -d $
then
/bin/mkdir -p $
fi# general check
export term=linux
/usr/bin/top -b -d $ -n $ > $/top_$.log 2>&1 &
# cpu check
/usr/bin/sar -u $ $ > $/cpu_$.log 2>&1 &
#/usr/bin/mpstat -p 0 $ $ > $/cpu_0_$.log 2>&1 &
#/usr/bin/mpstat -p 1 $ $ > $/cpu_1_$.log 2>&1 &
# memory check
/usr/bin/vmstat $ $ > $/vmstat_$.log 2>&1 &
# i/o check
/usr/bin/iostat $ $ > $/iostat_$.log 2>&1 &
# network check
/usr/bin/sar -n dev $ $ > $/net_$.log 2>&1 &
#/usr/bin/sar -n edev $ $ > $/net_edev_$.log 2>&1 &
放在crontab裡每小時自動執行:
以下是**片段:
0 * * * * /home/check_xu.sh
這樣會在
/home/oslog/host_yyyymmdd/hh目錄下生成各小時cpu、記憶體、網路,io的統計資料。
如果某個時間段產生問題了,就可以去看對應的日誌資訊,看看當時的主機效能如何。
使用shell指令碼監控Linux主機
root localhost cat sysmon.sh bin bash dug df h g rep df h grep df h grep awk awk f at position 2 1 cug expr 100 mpstat tail 1 awk awk f.at position 2 ...
使用 shell 指令碼監控 Linux 主機
編寫以下指令碼命令 root localhost sh vim sysmon.sh bin bash 提取效能監控指標 磁碟占用 cpu使用 記憶體使用 dug df h grep awk awk f cug expr 100 mpstat tail 1 awk awk f.mug expr fre...
使用 shell 指令碼監控 Linux 主機
編寫以下指令碼命令 root localhost sh vim sysmon.sh bin bash 提取效能監控指標 磁碟占用 cpu使用 記憶體使用 dug df h grep awk awk f cug expr 100 mpstat tail 1 awk awk f.mug expr fre...