免费注册 查看新帖 |

Chinaunix

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

请各位高手帮忙看看,给点主意,多谢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-11 11:13 |只看该作者 |倒序浏览
本帖最后由 Shrek618 于 2010-05-13 19:27 编辑

刚接了个工作,公司里面有一个debian linux server 放在B大楼里, 在这上面有一个最重要的应用程序(一个c++ 编写的软件,用来做Eftpos 机器刷卡用的) 公司有一个团队(在大楼A)是24小时工作来远程监控这个软件,确定它是在工作的。 用的应该TCP HAND SHAKE (这个是雇主给我解释的不是很清楚,我会在更新)来确定那个应用程序在工作 (大楼A 的员工不能连接到服务器,就确定这个程序down掉了)。 如果程序不工作了,IT MANAGER (在C楼)会被通知 然后远程从新启动这个程序。 所以我想做个linux shell script 让服务器去自己检测这个tcp hand shake。如果服务器没有从大楼a 得到tcp响应,就运行killall 关闭那个eftpos软件,再从新启动它。 然后我用crontab 命令 每一分钟来执行一次这个脚本。。。。 (写的有点乱,请包涵)

所以,希望各位高手给我点提示,要怎去做。 谢谢了!

论坛徽章:
0
2 [报告]
发表于 2010-05-11 11:20 |只看该作者
ps -ef | grep  “进程名” | grep -cv “grep”  判断结果是不是1 以此判断这个程序是不是在跑

比较挫的一个想法

论坛徽章:
0
3 [报告]
发表于 2010-05-11 13:53 |只看该作者

  1. 试试可不可以用一个中介

  2. 大楼A的监测机器不停地监测服务器,如果没有响应,就向中介发送一个信息

  3. 服务器不停地询问中介,如果有错误信息,就重启程序

  4. 比如:用邮件来传递
  5. 监测机器监测不到服务器,就发送一个邮件
  6. 服务器定时取邮件,如果有信息,就重启程序

  7. 这只是一个思路
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-05-11 14:11 |只看该作者
回复 3# springwind426


    建议用perl吧
#  # Like tcp protocol, but with many hosts
# $p = Net:ing->new("syn";
# $p->port_number(getservbyname("http", "tcp");
# foreach $host (@host_array) {
# $p->ping($host);
# }
# while (($host,$rtt,$ip) = $p->ack) {
# print "HOST: $host [$ip] ACKed in $rtt seconds.\n";
# }

论坛徽章:
0
5 [报告]
发表于 2010-05-12 12:31 |只看该作者
springwind426 发表于 2010-05-11 13:53



   
可是这个服务器也是一个邮件和WEB服务器。。。

论坛徽章:
0
6 [报告]
发表于 2010-05-12 12:34 |只看该作者
回复 4# Perl_Er


    PERL真是一点都不懂,如果C++ 和Java能够做的到,请给个思路,我们有专业的编程人员来做。。

论坛徽章:
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
7 [报告]
发表于 2010-05-12 13:09 |只看该作者
回复 6# Shrek618


你们“专业的编程人员”没有思路?

论坛徽章:
0
8 [报告]
发表于 2010-05-12 13:14 |只看该作者

论坛徽章:
0
9 [报告]
发表于 2010-05-12 18:56 |只看该作者
回复 7# Shell_HAT


    不好意思,解释的有点错误,编程的和我们并不是一个公司的。 所以我想要是用SHELL SCRIPT能够完成就最好,如果不行的话那用JAVA和C++ 来做的话,我们就要给一个具体的思路和做法。。。

论坛徽章:
0
10 [报告]
发表于 2010-05-12 20:10 |只看该作者
man一下nc命令吧。
判断nc返回值,根据情况加一下处理即可。
伪码:

  1. func proc()
  2. {
  3.     do something ...
  4. }

  5. nc $IP $PORT -w 3 -z
  6. [ $? -eq 1 ] && proc
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP