博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

h0ng123 linux,oracle.unix

---在蓝天白云下自由飞翔 爱生活,爱CU---
Google


学习shell脚本编程的好地方
   h0ng123.cublog.cn
关于作者  
姓名:h0ng
职业:计算机
年龄:24
位置:广东
个性介绍:学习网络技术,UNIX/linux 系统管理.娱乐


我的分类  




监控日志尺寸并报警的shell
#! /bin/bash
LOG_PATH=/home/logs
ALERT_SIZE=100000k
TMP_FILE=/tmp/log_detail
TOMAIL=’log@bbc.com’
IPADDR=`ifconfig | grep -E ‘Link encap’\|’inet addr’ | awk ‘{if (NR%2==0){print $0} else {printf”%s “,$0}}’ | grep -v lo | awk ‘BEGIN{ORS=” “}{print $1 ” ” $7}’`
SUBJ=’Stat log size exceed ‘$ALERT_SIZE’ at ‘$IPADDR;
find $LOG_PATH -type f -name “*.log*” -size +$ALERT_SIZE -exec du -hs {} \; > $TMP_FILE
CHK_LINE=`cat $TMP_FILE | wc -l`
if [ $CHK_LINE -gt 0 ]
then
(echo -e $SUBJ “\n”; cat $TMP_FILE) | mail -s”$SUBJ” $TOMAIL
fi
cat /dev/null > $TMP_FILE
 
 
注意的几个地方:
1,用来合并两行使用:awk ‘{if (NR%2==0){print $0} else {printf”%s “,$0}}’
2,awk ‘{printf”%s “,$0}}’ 或者awk ‘BEGIN{ORS=”"}{print $0}’` 可以让awk输出内容不换行。
3,echo -e “\n” 可以在shell里输出换行。
4,cat /dev/null > file 用来在shell里清空文件
5,命令行里email邮件的方式。

 发表于: 2008-04-28,修改于: 2008-04-28 17:04 已浏览248次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.13328

京ICP证041476号