1. 程式人生 > >《shell腳本系統監控-------郵件告警》

《shell腳本系統監控-------郵件告警》

郵件告警 shell 系統監控

我與眾多同學一樣,在沒有學習shell編程之前是對shell編程是一頭霧水的,然而它能做什麽我也不知道,就是覺得能夠使用一個與別人不一樣的方式去管理系統。現在我慢慢的懂shell的重要性,為小型的機房裏面做一個小小的shell監控足夠,當然大型的機房不能使用shell來監控系統,因為大型機房監控的機器有很多,而它們的狀態是以報表和圖形界面的形式來匯報問題的。


接下來我寫一篇關於怎麽用shell來進行系統監控並在進行發送郵件。


創建一個文件:

vim monitor.sh

#/bin/bash             ----默認執行方式

#以下為變量:

HOST=`hostname`        ---輸出當前系統的機器名
SYS=`uname -a`         ---輸出當前系統信息
DATE=`date "+%F %H:%M:%S"`       ---輸出當前系統時間
WEB=/var/www/html/$HOST.html        ---創建當前系統的網站的網頁(以該腳本命名)
CPU=`cat /proc/cpuinfo |grep processor | wc -l`    ---輸出當前系統的CPU信息(作為判斷信息)
ID=`vmstat | awk ‘NR==3{print $15 }‘`        ----輸出當前系統CPU的IP號碼
WA=`vmstat | awk ‘NR==3{print $16 }‘`        ---輸出系統的I/O的等待百分比
LOAD=`w | awk ‘NR==1{print $8}‘ |awk -F "," ‘{print $1}‘`       ---輸出系統的負載值
DISK=`df -h |awk ‘NR==3{print $4}‘ |awk -F "%" ‘{print $1}‘`    ---輸出硬盤的已經使用值
FREE=`free -m | awk ‘NR==2{print $4}‘`        ----輸出內存空閑值
CACHE=`free -m | awk ‘NR==2{print $7}‘`       ----輸出內存緩存值
TCP=`netstat -atunlp`            ----輸出當前系統的網絡鏈接狀態
IF=`iftop -i eth0 -P -Nn -L 100 -s 1 -t >>$WEB`        ---輸出系統的eth0接口的狀態



#以下是執行上面所做的變量的輸出
#在這裏對cpu的線程數,CPU的LOAD,系統磁盤的狀態,內存剩余。這四個做一個郵件的告警

echo "design for leoheng"

echo "######---主機名---##########"
echo hostname=`echo $HOST`


echo "######---系統參數---########"
echo system=`echo $SYS`
    
    
echo "######---CPU線程數---#######"
echo processor=`echo $CPU`
if [ $CPU -eq 4 ];then
`echo "wa=$WA and id=$ID cpu processor is ok" | mail -s "$HOST CPU" [email protected]
/* */` else `echo "wa=$WA and id=$ID cpu processor have problem" | mail -s "$HOST CPU" [email protected]` fi echo "######---CPU的ID---#########" echo cpu~id=`echo $ID` echo "######---CPU的WA---#########" echo cpu~wa=`echo $WA` echo "######---CPU的LOAD---#######" echo cpu-load=`echo $LOAD` if [ $LOAD > 0.05 ];then `echo "CPU-LOAD is beyond the rate" | mail -s "CPU-LOAD" [email protected]
/* */` else `echo "CPU-LOAD is ok" | mail -s "CPU-LOAD" [email protected]` fi echo "######---系統磁盤的狀態---##" echo disk-status=`echo $DISK` if [ $DISK > 80 ];then `echo "SYSTEM-DISK is beyond the 80%" | mail -s "SYSTEM-DISK" [email protected]` else `echo "SYSTEM-DISK is ok" | mail -s "SYSTEM-DISK" [email protected]
/* */` fi echo "######---內存剩余---########" echo memory=`echo ($FREE+$CACHE) KB` memory=$(($FREE+$CACHE)) echo $memory if [ $memory < 1000 ];then `echo "SYSTEM-memory less than 1000M " | mail -s "SYSTEM-memory" [email protected]` else `echo "SYSTEM-memory is ok" | mail -s "SYSTEM-memory" [email protected]` fi echo "######---TCP相關連接狀態----#" echo tcp-status=`echo $TCP` echo "######---eth0的流量---######" echo $IF echo "END"
####----退出shell之後---#####
#部分同學的郵件無法發出,可能由於一下兩個原因
1.沒有安裝mailx軟件包
yum install -y mailx  sendmail


2.系統設置沒有做以下操作,將inet_interfaces選項改為all,如下
vim /etc/postfix/main.cf

inet_interfaces = all


本文出自 “leoheng” 博客,請務必保留此出處http://leoheng.blog.51cto.com/12202141/1955773

《shell腳本系統監控-------郵件告警》

相關推薦

shell系統監控-------郵件告警

郵件告警 shell 系統監控 我與眾多同學一樣,在沒有學習shell編程之前是對shell編程是一頭霧水的,然而它能做什麽我也不知道,就是覺得能夠使用一個與別人不一樣的方式去管理系統。現在我慢慢的懂shell的重要性,為小型的機房裏面做一個小小的shell監控足夠,當然大型的機房不能使

Linux學習總結(六十二)shell5-監控系統開發

shell 腳本 監控系統 需求:使用shell定制各種個性化告警工具,但需要統一化管理、規範化管理。思路:指定一個腳本包,包含主程序、子程序、配置文件、郵件引擎、輸出日誌等。主程序:作為整個腳本的入口,是整個系統的命脈。配置文件:是一個控制中心,用它來開關各個子程序,指定各個相關聯的日誌文件。子

shell監控HTTP服務的狀態(測試返回碼)

腳本 shell http #定義函數check_http: #使用curl命令檢查http服務器的狀態 #-m設置curl不管訪問成功或失敗,最大消耗的時間為5秒,5秒連接服務為相應則視為無法連接#-s設置靜默連接,不顯示連接時的連接速度、時間消耗等信息 #-o將curl下載的頁面內容導出到/d

shell***檢測與郵件報警

error change else bash 檢測 err shell then sum #!/bin/bashwebdir=/var/www/htmlcd $webdirmd5sum -c --quiet /opt/sumfile.db &>/opt/sum

linux服務器系統負載監控-shell

inf 二次 計算 chm -c lai %d target 當前時間 一、監控服務器系統負載情況: 1、用uptime命令查看當前負載情況(1分鐘,5分鐘,15分鐘平均負載情況) # uptime 15:43:59 up 186 days, 20:04, 1 use

20.20 告警系統;20.21 告警系統配置文件;20.22 告警系統監控項目

告警系統主腳本1. 要求:我們的機器角色多種多樣,但是所有機器上都要部署同樣的監控系統,也就說所有機器不管什麽角色,整個程序框架都是一致的,不同的地方在於根據不同的角色,定制不同的配置文件。2. 程序架構: bin下是:主程序conf下是:配置文件shares下是:各個監控腳本mail下是:郵件引擎log下是

shell中的函數,shell中的數組,shell項目-告警系統

mail.sh 郵件引擎 multi 倒數 $2 echo 什麽 服務 mon shell腳本中的函數 函數就是把一段代碼整理到了一個小單元中,並給這個小單元起一個名字,當用到這段代碼時直接調用這個小單元的名字即可。 格式: function f_name() {comm

使用shell監控少量服務器並發送微信告警信息

rpi mst ice ckeditor class 系統信息 tps pid 日誌 01. 概括1.0 腳本更新地址Git更新地址:shell_monitor_script.sh文章原文地址:使用shell腳本監控少量服務器並發送微信告警信息1.1 前提:平臺系統:lin

關於nagios系統下使用shell自定義監控插件的編寫以及沒有實時監控圖的問題

計數 發現 critical 一定的 sda shell cpu www align 關於nagios系統下shell自定義監控插件的編寫、腳本規範以及沒有實時監控圖的問題的解決辦法 在自已編寫監控插件之前我們首先需要對nagios監控原理有一定的了解 Nagi

開放系統監控shell

cal crontab free server password tex pos term letter 開發系統監控腳本 1、需求描述?編寫名為sysmon.sh的Shell監控腳本監控內容包括CPU使用率、內存使用率、根分區的磁盤占用率百分比只需精確到個

使用shell監控網站運行狀態

shell 監控 網站 tomcat nginx 前言:好久沒有寫博客了,上來把之前寫的博客幾乎全都清理掉了,想寫的時候寫上一些,蠻不錯。shell監控網站/tomcat狀態,依靠返回狀態碼來進行判斷,返回200,302認為狀態是正常的,否則認為tomcat/nginx/LB/Haprox

shell-監控網絡情況

腳本 shell 監控網絡並 #!/bin/bash # ------------------------------------------------------------------------------- # FileName: networkchecking # Revisio

(轉)開發監控Linux 內存 Shell

amp 分析 分鐘 target line net ocl 發送郵件 使用情況 原文:http://blog.csdn.net/timchen525/article/details/76474017 題場景: 開發Shell 腳本判斷系統剩余內存的大小,如果低於100MB,

利用shell監控linux中CPU利用率。

roc eight 等待 user 文件中 cpuinfo 參數 大小 printf 1、利用vmstat工具監控CPU信息。 vmstat 是 Linux系統監控工具,使用vmstat命令可以得到關於進程、內存、內存分頁、堵塞IO、traps及CPU活動的信息。 r:運

shell之短信監控(磁盤、cpu等等)

shellbin下vim sms_monitor.sh#!/bin/bashcd `dirname $0`timestamp=`date +"%F %H:%M:%S"`disk_flag=falseinode_flag=falseping_flag=falsecpu_flag=falseiowait_flag

Linux系統防CC攻擊自動拉黑IP增強版Shell

png lac 分鐘 自動 style -h sys linux 間隔 一、Shell代碼 #!/bin/bash #Author:ZhangGe #Desc:Auto Deny Black_IP Script. #Date:2014-11-05 #取得參數$1為並發閾值

Linux系統巡檢shell

腳本#!/bin/bash #主機信息每日巡檢 IPADDR=$(ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}') #環境變量PATH沒設好,在cron裏執行時有很多命令會找不到 expo

(轉)IBM AIX系統硬件信息查看命令(shell

容量 sed proc back 采集 模式 lex std lsp IBM AIX系統硬件信息查看命令(shell腳本) 原文:http://blog.itpub.net/22085031/viewspace-1054015/ 查看IBM AIX系統的主機型號、序列號、C

Shell——監控web服務

楓雨1.監控端口#!/bin/bash############################################################### File Name: web.sh# Version: V7.4# Author: feng yu# Organization: http://

centos7.2,shell監控CPU並sendmail自動報警

cpu報警 sendmail報警 shell centos 7.2 操作系統:centos 7.2 sendmail 自動報警#完成時間:2018.04.16 #!/bin/bash #CPU 1,5,15############################################