免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2092 | 回复: 9
打印 上一主题 下一主题

[系统管理] 匹配字符串判断的时候提示字符串过长 [复制链接]

论坛徽章:
14
处女座
日期:2013-11-26 09:21:15操作系统版块每日发帖之星
日期:2016-03-25 06:20:00操作系统版块每日发帖之星
日期:2016-03-22 06:20:00操作系统版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2015-11-13 06:20:00操作系统版块每日发帖之星
日期:2015-11-01 06:20:002015亚冠之卡尔希纳萨夫
日期:2015-09-29 13:31:42IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00双鱼座
日期:2014-07-17 15:08:51卯兔
日期:2014-04-08 09:54:34
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-25 17:18 |只看该作者 |倒序浏览
因为LVS不稳定,隔三差五就会莫名其妙的不能访问,端口正常,服务正常,只有日志里面出现一些警告,每次都有“:8080 timed out”,所以想了个办法,监控这个日志文件,当匹配到这段字符串的时候就重启一下keepalived,办法虽然不好,可是只要能解决问题也只能这样了,下面是我写的脚本,请高手帮忙看下,字符串过长这个问题怎么解决呢
  1. #!/bin/bash
  2. for i in `seq 0 4`
  3. do
  4.         echo -n `env LANG=en_US.UTF-8 date -d "-${i} minute" +"%b %d %H:%M:%S"`
  5. done
  6. warn=`grep $i /var/log/messages|grep ":8080 timed out"`
  7. if
  8. [ $warn = ":8080 timed out" ]
  9. then
  10. /etc/init.d/pulse restart&&mail -s lvswarn 手机号@139.com
  11. else
  12. exit 0
  13. fi
复制代码

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
2 [报告]
发表于 2013-04-25 20:13 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2013-04-25 22:06 |只看该作者
[ $warn = ":8080 timed out" ]
改为
[[ $warn = ":8080 timed out" ]]
试试

论坛徽章:
14
处女座
日期:2013-11-26 09:21:15操作系统版块每日发帖之星
日期:2016-03-25 06:20:00操作系统版块每日发帖之星
日期:2016-03-22 06:20:00操作系统版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2015-11-13 06:20:00操作系统版块每日发帖之星
日期:2015-11-01 06:20:002015亚冠之卡尔希纳萨夫
日期:2015-09-29 13:31:42IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00双鱼座
日期:2014-07-17 15:08:51卯兔
日期:2014-04-08 09:54:34
4 [报告]
发表于 2013-04-26 12:17 |只看该作者
zooyo 发表于 2013-04-25 20:13
出错信息是什么?
  1. Apr 25 09:25:17 qxt1 pulse[17000]: gratuitous lvs arps finished
  2. Apr 25 09:25:18 qxt1 nanny[17008]: READ to 其中一台realserver的IP:8080 timed out
  3. Apr 25 09:25:30 qxt1 nanny[17008]: READ to 其中一台realserver的IP:8080 timed out
  4. Apr 25 09:25:42 qxt1 nanny[17008]: READ to 其中一台realserver的IP:8080 timed out
  5. Apr 25 09:25:54 qxt1 nanny[17008]: READ to 其中一台realserver的IP:8080 timed out
  6. Apr 25 09:26:06 qxt1 nanny[17008]: READ to 其中一台realserver的IP:8080 timed out
  7. Apr 25 09:26:18 qxt1 nanny[17008]: READ to 其中一台realserver的IP:8080 timed out
  8. Apr 25 09:26:30 qxt1 nanny[17008]: READ to 其中一台realserver的IP:8080 timed out
  9. Apr 25 09:26:30 qxt1 Keepalived_healthcheckers[16976]: TCP connection to [其中一台realserver的IP]:8080 failed !!!
  10. Apr 25 09:26:30 qxt1 Keepalived_healthcheckers[16976]: Removing service [其中一台realserver的IP]:8080 from VS [10.161.234.99]:8080
  11. Apr 25 09:26:30 qxt1 Keepalived_healthcheckers[16976]: IPVS: No such destination
  12. Apr 25 09:26:42 qxt1 Keepalived_healthcheckers[16976]: TCP connection to [其中一台realserver的IP]:8080 success.
  13. Apr 25 09:26:42 qxt1 Keepalived_healthcheckers[16976]: Adding service [其中一台realserver的IP]:8080 to VS [10.161.234.99]:8080
  14. Apr 25 09:26:53 qxt1 nanny[17008]: [ active ] making 其中一台realserver的IP:8080 available
  15. Apr 25 09:26:53 qxt1 nanny[17008]: /sbin/ipvsadm command failed!
  16. Apr 25 09:26:53 qxt1 lvsd[16998]: nanny died! shutting down lvs
  17. Apr 25 09:26:53 qxt1 lvsd[16998]: shutting down virtual service LVS_8080
  18. Apr 25 09:26:53 qxt1 nanny[17009]: Terminating due to signal 15
  19. Apr 25 09:26:53 qxt1 pulse[16995]: Child process 16998 exited with status 0
复制代码
这是出错信息,网上看到一篇文章,就是针对真个问题的,http://iffiffj.iteye.com/blog/1030307,但是执行

cd /usr/src/redhat/SPECS  
rpmbuild -bp piranha.spec
到这步就卡住了,SPECS目录里面没有piranha.spec,无从下手了,才初次下策,写脚本监控日志,好蠢的方法啊

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
5 [报告]
发表于 2013-04-26 12:39 |只看该作者
@royzsgrep匹配成功和失败的反回值是否不同(grep匹配成功和失败的返回值好像相同的)
如果返回值不同,判断返回值好了,不用比较两字符串。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2013-04-26 13:33 |只看该作者
本帖最后由 Shell_HAT 于 2013-04-26 13:33 编辑

回复 5# cao627


这个情况你怎么看?
[root@ ~]# grep "^root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@ ~]# echo $?
0
[root@ ~]# grep "^rootroot" /etc/passwd
[root@ ~]# echo $?
1

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
7 [报告]
发表于 2013-04-26 13:45 |只看该作者
@Shell_HAT我只是记不大清了,好像有一个命令匹配成功和失败返回值是相同的,没有机器所以不敢断定。
既然grep匹配成功和匹配失败返回值不同正好能满足楼主要求。

论坛徽章:
14
处女座
日期:2013-11-26 09:21:15操作系统版块每日发帖之星
日期:2016-03-25 06:20:00操作系统版块每日发帖之星
日期:2016-03-22 06:20:00操作系统版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2015-11-13 06:20:00操作系统版块每日发帖之星
日期:2015-11-01 06:20:002015亚冠之卡尔希纳萨夫
日期:2015-09-29 13:31:42IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00双鱼座
日期:2014-07-17 15:08:51卯兔
日期:2014-04-08 09:54:34
8 [报告]
发表于 2013-04-28 10:32 |只看该作者
回复 6# Shell_HAT


    /etc/passwd 没有rootroot这个字符串啊,我的是有那个字符串的,但是中间有空格,我已经有“”了啊,难道不行吗,这个有没有什么办法实现匹配呢

论坛徽章:
14
处女座
日期:2013-11-26 09:21:15操作系统版块每日发帖之星
日期:2016-03-25 06:20:00操作系统版块每日发帖之星
日期:2016-03-22 06:20:00操作系统版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2015-11-13 06:20:00操作系统版块每日发帖之星
日期:2015-11-01 06:20:002015亚冠之卡尔希纳萨夫
日期:2015-09-29 13:31:42IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00双鱼座
日期:2014-07-17 15:08:51卯兔
日期:2014-04-08 09:54:34
9 [报告]
发表于 2013-04-28 10:38 |只看该作者
cao627 发表于 2013-04-26 12:39
@royzsgrep匹配成功和失败的反回值是否不同(grep匹配成功和失败的返回值好像相同的)
如果返回值不同,判 ...


grep很强大,我再研究研究这个grep的用法,谢谢

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
10 [报告]
发表于 2013-04-28 13:10 |只看该作者
回复 8# royzs


    6楼的代码是为了解答5楼的疑惑
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP