首页 > 系统服务 > 详细

shell实例(关于内存)

时间:2017-01-27 21:31:59      阅读:432      评论:0      收藏:0      [点我收藏+]

        监控内存的体验
    监控你的可用内存小于一定的值。自动给你发邮件。
    用到的知识点: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

shell实例(关于内存)

原文:http://12042068.blog.51cto.com/12032068/1894326

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!