Five common Linux monitoring scripts are provided for you to view the disk space of the host Nic traffic, system status monitoring, and host monitoring, when the usage space exceeds 90%, you can send a mail to send a warning, monitor CPU and memory usage, and comprehensively monitor the host). If you need it, take a look!
1. View host Nic traffic
#! /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
#! /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.
#! /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
#! /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
#! /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.