shell编程邮件报警系统的问题

回复 收藏
本帖最后由 胡鹏飞 于 2015-6-28 09:27 编辑

铭哥:
       这是关于shell编程的邮件报警系统的问题。
       你在主文件 main.sh定义了全局变量 log,然而你在502.sh 脚本中使用全局变量log:c_502=`grep :$d:  $log  |grep ' 502 '|wc -l`  时感觉你是想让grep过滤的是logfile=/data/log/www.xxx.com/access.log文件,而不是你在主配置文件定义的export log=`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`  。
       说的有点乱,总之就是对于你定义的log全局变量export log=`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`我没看懂。



2015-06-18shell编程3【告警系统】














111.png 2222.png 3333.png
2015-06-27 21:00 举报
已邀请:
0

模范棒棒糖

赞同来自:

你说的log变量就是access.log文件啊。mon.conf里面定义的logfile也是这个文件。
0

胡鹏飞

赞同来自:

模范棒棒糖 发表于 2015-6-28 11:20
你说的log变量就是access.log文件啊。mon.conf里面定义的logfile也是这个文件。

access.log文件只是局部变量只能在mon.conf中使用,而$log中log变量使用的是在main.sh所定义的=`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`   ,但是根据我理解在502.sh中$log所想使用的是过虑access.log这个文件的内容,但是实际代码上我感觉不像。   所以我就是不能理解=`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`  这段代码到底是啥意识。
0

模范棒棒糖

赞同来自:

`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`这一段的意思就是$log变量的内容啊。
就是access.log文件;这个就是声明全局变量$log;
0

胡鹏飞

赞同来自:

模范棒棒糖 发表于 2015-6-29 15:58
`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`这一段的意思就是$log变量的内容啊 ...

谢谢!弄懂了,执行一下=`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'` 发现是过滤mon.conf文件内log日志的绝对路径,若不过滤则后面引用的是logfile=/data/log/xxx.xxx.com/access.log,一过滤后显示的是/data/log/xxx.xxx.com/access.log,这样就是后面所能用的,谢谢勇哥啊!
0

模范棒棒糖

赞同来自:

{:4_107:}哈哈 我也差不多懂了。

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: