监控内存的体验
监控你的可用内存小于一定的值。自动给你发邮件。
用到的知识点:1。监控内存 2.配置本地mail客户端,并且保证它正常运行
3.awk 的截取功能 4.IF的流程
1. # free -m
total used free shared buffers cached
Mem: 988 863 125 0 72 644
-/+ buffers/cache: 147 841
Swap: 1999 0 1999
这里需要的数据是 841。
2. 可以用awk(扫描行,然后过滤给动作来提取所需的值)来截取。首先找到841 所在的行,然后取出所在的列
awk ‘NR==3 {print $NF}‘
也可以是: awk ‘NR==3 {print $4}‘
这里NF是几列的意思。$NF是截取最后的列.
这里结合cut 练习下:截取IP地址
inet addr:192.168.1.199 Bcast:192.168.1.255 Mask:255.255.255.0
上面是ifconfig查看包含ip的行。先找到 addr:192.168.1.199.然后利用:作为分隔符截取。
# ifconfig eth0 | awk ‘NR==2 {print $2}‘ | cut -d: -f 2
192.168.1.199
3.利用smtp协议。结合centos6的mail客户端
修改文件 /etc/mail.rc,再末尾添加这两句:(使自己的邮箱保持登录状态)
set from=user@xx.com smtp=smtp.126.com
set smtp-auth-user=user smtp-auth-password=password smtp-auth=login
编写脚本:
cat 1-25.sh
#!/bin/bash
# test mem mail to yourself
FreeMem=`free -m | awk ‘NR==3 {print $NF}‘`
CHARS="free mem is $FreeMem‘"
if [ $FreeMem -lt 1000 ]
then
echo $CHARS|tee /tmp/message.txt
mail -s "`date +%F-%T`$CHARS" username@126.com </tmp/message.txt
fi
当然如果需要的话还可以写入计划任务(crontab)
本文出自 “赵雁生的linux之旅” 博客,请务必保留此出处http://12042068.blog.51cto.com/12032068/1894326
原文:http://12042068.blog.51cto.com/12032068/1894326