网易首页 > 网易号 > 正文 申请入驻

利用 Shell 脚本实现邮件监控 Linux 系统的内存

0
分享至

一、安装Linux下面的一个邮件客户端Msmtp软件(类似于一个Foxmail的工具)

1、下载安装:http://downloads.sourceforge.net ... 206451&big_mirror=0

# tar jxvf msmtp-1.4.16.tar.bz2
# cd msmtp-1.4.16
# ./configure --prefix=/usr/local/msmtp
# make
# make install


2、创建msmtp配置文件和日志文件(host为邮件域名,邮件用户名test,密码123456)

# vim ~/.msmtprc

account default
host 126.com
from test@126.com
auth login
user test
password 123456
logfile ~/.msmtp.log

# chmod 600 ~/.msmtprc
# touch ~/.msmtp.log


3、mutt安装配置:(一般linux下有默认安装mutt)

# vim ~/.muttrc

set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="memory"
set from=test@126.com
set envelope_from=yes
set rfc2047_parameters=yes
set charset="utf-8"


4、邮件发送测试(-s邮件标题,-a表加附件)

# echo "邮件内容123456" | mutt -s "邮件标题测试邮件" -a /scripts/test.txt test@126.com

二、使用Free命令监控系统内存


1、使用free命令查看linux系统内存使用情况:(以M为单位)

# free -m
(执行结果如下样式)
total used free shared buffers cached
Mem: 3952 3414 538 0 168 484
-/+ buffers/cache: 2760 1191
Swap: 8191 86 8105


2、查看截取剩余内存free的数值命令:

(1) 物理内存free值:# free -m | grep Mem | awk '{print $4}'
(2) 缓冲区的free值:# free -m | grep - | awk '{print $4}'
(3) Swap分区free值:# free -m | grep Swap | awk '{print $4}'


3、编写内存监控的脚本文件:

# vim /scripts/free-mem.sh

#!/bin/bash
#使用free命令监控linux系统内存变化

#取系统当前时间(以追加的方式写入文件>>)
date >> /scripts/date-time.txt

#抓取物理内存free值(以追加的方式写入文件>>)
echo Mem-free: `free -m | grep Mem | awk '{print $4}'`M >> /scripts/mem-free.txt

#抓取缓冲区的free值(以追加的方式写入文件>>)
echo buffers/cache-free: `free -m | grep - | awk '{print $4}'`M >> /scripts/buffers-free.txt

#抓取Swap分区free值(以追加的方式写入文件>>)
echo Swap-free: `free -m | grep Swap | awk '{print $4}'`M >> /scripts/swap-free.txt

#逐行连接上面的时间和内存相关行数据(每次重新写入文件>)
paste /scripts/date-time.txt /scripts/mem-free.txt /scripts/buffers-free.txt /scripts/swap-free.txt > /scripts/freemem.txt

# chmod a+x /scripts/free-mem.sh
# /scripts/free-mem.sh


4、查看内存监控的结果文件:

# cat /scripts/freemem.txt


5、编写free结果文件邮件发送脚本:

# vim /scripts/sendmail-mem.sh

#!/bin/bash
#把生成的freemem.txt文件通过邮件发送给用户

#提取本服务器的IP地址信息
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`

#提取当前日期时间
today=`date -d "0 day" +%Y年%m月%d日`

#发送内存监控结果邮件
echo "这是$IP服务器$today的内存监控报告,请下载附件。" | mutt -s "$IP服务器$today内存监控报告" -a /scripts/freemem.txt test@126.com

# chmod a+x /scripts/sendmail-mem.sh


三、监控系统交换分区Swap的情况,当使用超过80%的时候发告警邮件

# vim /scripts/swap-warning.sh

#!/bin/bash

#提取本服务器的IP地址信息
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`

#系统分配的交换分区总量
swap_total=`free -m | grep Swap | awk '{print $2}'`

#当前剩余的交换分区free大小
swap_free=`free -m | grep Swap | awk '{print $4}'`

#当前已使用的交换分区used大小
swap_used=`free -m | grep Swap | awk '{print $3}'`

if ((swap_used != 0)); then

#如果交换分区已被使用,则计算当前剩余交换分区free所占总量的百分比,用小数来表示,要在小数点前面补一个整数位0
swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc`

#设置交换分区的告警值为20%(即使用超过80%的时候告警)。
swap_warn=0.20

#当前剩余交换分区百分比与告警值进行比较(当大于告警值(即剩余20%以上)时会返回1,小于(即剩余不足20%)时会返回0 )
swap_now=`expr $swap_per > $swap_warn`

#如果当前交换分区使用超过80%(即剩余小于20%,上面的返回值等于0),立即发邮件告警
if (($swap_now == 0)); then
echo "$IP服务器swap交换分区只剩下 $swap_free M 未使用,剩余不足20%,使用率已经超过80%,请及时处理。" | mutt -s "$IP 服务器内存告警" test@126.com
fi

fi

# chmod a+x /scripts/swap-warning.sh

四、加入任务计划:内存每十分钟检测一次,有告警则立即发邮件(十分钟发一次),内存检测结果邮件每天早上8点发一次

# crontab -e

*/10 * * * * /scripts/free-mem.sh
*/10 * * * * /scripts/swap-warning.sh
0 8 * * * /scripts/sendmail-mem.sh

# service crond restart

来自:Linux云计算网络

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
卖掉油车,换了电车,如今开了2年多,终于明白网上说的都是真的

卖掉油车,换了电车,如今开了2年多,终于明白网上说的都是真的

西山来客
2024-04-11 10:07:13
人生赢家!拉塞尔白人模特妻子宣布怀上二胎,儿子1岁马上迎来女儿

人生赢家!拉塞尔白人模特妻子宣布怀上二胎,儿子1岁马上迎来女儿

818体育
2024-04-25 15:26:43
哭麻了!东北雨姐手术病因曝光,老蒯哭成泪人,知情人曝更多内情

哭麻了!东北雨姐手术病因曝光,老蒯哭成泪人,知情人曝更多内情

花花lo先森
2024-04-23 11:16:24
为什么出现国家越强大,老百姓却越累越穷呢?背后逻辑是什么?

为什么出现国家越强大,老百姓却越累越穷呢?背后逻辑是什么?

翻开历史和现实
2024-04-24 09:44:21
云南文旅又白干了!导游放狠话威胁游客购物被曝光,官方通报来了

云南文旅又白干了!导游放狠话威胁游客购物被曝光,官方通报来了

白小李的自留地
2024-04-25 16:22:37
“西安‘运政’追赶网约车致2死1伤?”官方回应→

“西安‘运政’追赶网约车致2死1伤?”官方回应→

鲁中晨报
2024-04-25 16:17:04
布林肯访华强硬表态:与俄罗斯分手!冯玉军发文令世界震惊!

布林肯访华强硬表态:与俄罗斯分手!冯玉军发文令世界震惊!

大风文字
2024-04-24 12:14:09
讣告!于2024年3月28日去世!

讣告!于2024年3月28日去世!

莫问先生
2024-04-22 20:51:44
再次受伤!广厦张明池上篮被许钟豪犯规,随后倒地不起

再次受伤!广厦张明池上篮被许钟豪犯规,随后倒地不起

懂球帝
2024-04-25 20:32:20
63岁北京知青重返陕北看初恋,发现自己竟已儿孙满堂:我对不起你

63岁北京知青重返陕北看初恋,发现自己竟已儿孙满堂:我对不起你

铿锵玫瑰r
2024-03-10 18:23:47
超3万个体户核定征收转查账征收:个体户征税,正在迎来新变化!

超3万个体户核定征收转查账征收:个体户征税,正在迎来新变化!

学税
2024-04-24 20:58:12
英国对华摊牌,拍出825亿美元,武力威胁中国外交,中方一针见血

英国对华摊牌,拍出825亿美元,武力威胁中国外交,中方一针见血

乐阳聊军事
2024-04-25 15:45:31
大部分县城真实现状:不看学历、不看能力,纪云浩这类人才过得好

大部分县城真实现状:不看学历、不看能力,纪云浩这类人才过得好

酷小子玩体彩
2024-04-25 12:38:43
首块英伟达AI超级芯片H200交付,黄仁勋给OpenAI“送货上门”

首块英伟达AI超级芯片H200交付,黄仁勋给OpenAI“送货上门”

澎湃新闻
2024-04-25 08:01:02
A股:又有大戏看了,明天(4月26日)大盘,多空大对决?

A股:又有大戏看了,明天(4月26日)大盘,多空大对决?

一树梨花红
2024-04-25 16:11:13
突发!现场晕厥抽搐、口吐白沫,网友评论区沦陷!

突发!现场晕厥抽搐、口吐白沫,网友评论区沦陷!

娱乐八卦木木子
2024-04-25 14:30:23
空调也被卡脖子?日本撤走空调压缩机产线一年,国产替代仍需努力

空调也被卡脖子?日本撤走空调压缩机产线一年,国产替代仍需努力

资本百科
2024-04-23 00:25:03
重庆燃气事件是否预示着重大改变

重庆燃气事件是否预示着重大改变

云雾居9
2024-04-25 15:26:31
实话实说!2002年世界杯,米卢最对不起的应该是以下3名球员

实话实说!2002年世界杯,米卢最对不起的应该是以下3名球员

百里无心
2024-04-25 07:15:22
反转!遭强奸的西班牙女网红回国后,揭露印度丑行:身上都是J液,被警方强行隔离

反转!遭强奸的西班牙女网红回国后,揭露印度丑行:身上都是J液,被警方强行隔离

不掉线电波
2024-04-24 17:58:59
2024-04-25 20:46:46
互联网干货博主
互联网干货博主
我是专注分享互联网干货的博主
278文章数 1339关注度
往期回顾 全部

科技要闻

北京车展,被穿红衣服的他们占领

头条要闻

拜登签署法案要求字节跳动剥离TikTok 外交部回应

头条要闻

拜登签署法案要求字节跳动剥离TikTok 外交部回应

体育要闻

当胜利变成意外,就不要再提未来……

娱乐要闻

心疼!伊能静曝儿子曾被狗仔追到洗手间

财经要闻

曙光已现?瑞银开始转而看好中国地产业

汽车要闻

全新哈弗H9亮相 大号方盒子硬派SUV入列

态度原创

教育
旅游
房产
亲子
公开课

教育要闻

80后夫妻花光90万积蓄,带孩子环游世界!网友:这才是富养天花板

旅游要闻

京都热门景点一棵樱花树突然倒下 游客被砸成重伤

房产要闻

涉及黄埔、番禺、增城!广州新一轮大规模征地启动

亲子要闻

妈妈分享自己女儿的成长瞬间,这长大后又是多少人的白月光

公开课

睡前进食会让你发胖吗?

无障碍浏览 进入关怀版