shell实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell实例相关的知识,希望对你有一定的参考价值。

        监控内存的体验
    监控你的可用内存小于一定的值。自动给你发邮件。
    用到的知识点: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 [email protected] 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" [email protected] </tmp/message.txt
    fi
当然如果需要的话还可以写入计划任务(crontab)

本文出自 “赵雁生的linux之旅” 博客,请务必保留此出处http://12042068.blog.51cto.com/12032068/1894315

以上是关于shell实例的主要内容,如果未能解决你的问题,请参考以下文章

shell实例

shell编程实例2

shell实例

shell及编程实例

shell脚本实例

shell编程实例1