利用Shell脚本来监控Linux系统的内存

这几天在学习研究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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/561ea7b9a4d50997f492bcf6cd97ab03.html