这几天在学习研究shell脚本,写的一些内存监控脚本程序。在没有nagios监控软件的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统内存的使用情况。
一、安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具)
1、下载安装: ?modtime=1217206451&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
# chmod 600 ~/.msmtprc
# touch ~/.msmtp.log
3、mutt安装配置:(一般linux下有默认安装mutt)
# vim ~/.muttrc
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
# chmod a+x /scripts/free-mem.sh
# /scripts/free-mem.sh
4、查看内存监控的结果文件:
# cat /scripts/freemem.txt