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实例的主要内容,如果未能解决你的问题,请参考以下文章