fablefe 发表于 2018-8-23 10:03:37

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.199Bcast:192.168.1.255Mask: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 memmail 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
页: [1]
查看完整版本: shell实例(关于内存)