Several common Linux OS monitoring scripts

Source: Internet
Author: User

This article describes several common Linux monitoring scripts that can automatically monitor and alert the traffic, system status, disk space, CPU and memory usage of the host Nic. The shell scripts written based on your needs can better meet your needs and refine the comprehensiveness of host monitoring.

Recently, a friend from the Internet asked me questions about server monitoring. I asked if common server monitoring software, such as cacti and nagios, can I write shell scripts by myself? The shell scripts written based on your needs can better meet your needs and refine the comprehensiveness of host monitoring.

The following are some of my commonly used host monitoring scripts. You can modify them based on your situation and hope to help you.

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 = 'df | sed-n'/\ $/P' | gawk '{print \ $5}' | sed's // % // 'If [\ $ SPACE-ge 90] then fty89@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 \0 {DELAY }\$ {COUNT }>\\ {DIR}/cpu_0 _ \$ {DAT}. log 2> & 1 & #/usr/bin/mpstat-P 1 \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.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.