我常用的主機監控shell指令碼

2022-09-20 23:48:08 字數 3222 閱讀 1946

下面是我常用的幾個主機監控的指令碼,大家可以根據自己的情況在進行修改,希望能給大家一點幫助。

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...