1. View host Nic traffic
Copy codeThe Code is as follows :#! /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 '{print $2}' | cut-c7 -'
Tx_before = 'ifconfig eth0 | sed-n "8" p | awk '{print $6}' | cut-c7 -'
Sleep 2
Rx_after = 'ifconfig eth0 | sed-n "8" p | awk '{print $2}' | cut-c7 -'
Tx_after = 'ifconfig eth0 | sed-n "8" p | awk '{print $6}' | 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. system status monitoring
Copy codeThe Code is as follows :#! /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. Monitor the disk space of the host. If the disk space exceeds 90%, send a mail to send a warning.
Copy codeThe Code is as follows :#! /Bin/bash
# Monitor available disk space
SPACE = 'df | sed-n'/\/$/P' | gawk '{print $5}' | sed's/% //'
If [$ SPACE-ge 90]
Then
Jbxue123@163.com
Fi
4. Monitor CPU and memory usage
Copy codeThe Code is as follows :#! /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 '{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. Comprehensive host monitoring
Copy codeThe Code is as follows :#! /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
# Whether the responsible directory exist
If! Test-d $ {DIR}
Then
/Bin/mkdir-p $ {DIR}
Fi
# General check
Export TERM = linux
/Usr/bin/top-B-d $ {DELAY}-n $ {COUNT} >$ {DIR}/top _ $ {DAT}. log 2> & 1 &
# Cpu check
/Usr/bin/sar-u $ {DELAY} $ {COUNT} >$ {DIR}/cpu _ $ {DAT}. log 2> & 1 &
#/Usr/bin/mpstat-P 0 $ {DELAY }$ {COUNT }>$ {DIR}/cpu_0 _ $ {DAT}. log 2> & 1 &
#/Usr/bin/mpstat-P 1 $ {DELAY }$ {COUNT }>$ {DIR}/cpu_1 _ $ {DAT}. log 2> & 1 &
# Memory check
/Usr/bin/vmstat $ {DELAY} $ {COUNT} >$ {DIR}/vmstat _ $ {DAT}. log 2> & 1 &
# I/O check
/Usr/bin/iostat $ {DELAY} $ {COUNT} >$ {DIR}/iostat _ $ {DAT}. log 2> & 1 &
# Network check
/Usr/bin/sar-n DEV $ {DELAY }$ {COUNT }>$ {DIR}/net _ $ {DAT}. log 2> & 1 &
#/Usr/bin/sar-n EDEV $ {DELAY }$ {COUNT }>$ {DIR}/net_edev _ $ {DAT}. log 2> & 1 &
In crontab, automatic execution is performed hourly:
0 *****/home/check_xu.sh
The cpu, memory, network, and IO statistics of each hour are generated in the/home/oslog/host_yyyymmdd/hh directory.
If a problem occurs in a certain period of time, you can view the corresponding log information to see how the host performance was at that time.