perl检测服务是否正常
程序调用远端服务,为了确保可用性最好在使用前进行健康检测,将异常的服务排除。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#!/usr/bin/perl
#
use
strict
;
use
IO
::
Socket
;
my
@
servers
;
$
servers
[
0
]
=
[
'180.153.100.93'
,
2222
]
;
$
servers
[
1
]
=
[
'180.153.100.93'
,
22
]
;
$
servers
[
2
]
=
[
'180.153.100.93'
,
80
]
;
my
$
i
=
0
;
my
$
interval
=
3
;
my
$
count
=
int
(
60
/
$
interval
)
;
while
(
$
i
<
$
count
)
{
foreach
(
@
servers
)
{
if
(
fetch_server_status
(
@
$
_
)
)
{
print
$
$
_
[
0
]
.
':'
.
$
$
_
[
1
]
.
"ok\n"
;
}
else
{
print
$
$
_
[
0
]
.
':'
.
$
$
_
[
1
]
.
"bad\n"
;
}
}
$
i
++
;
sleep
$
interval
;
}
sub
fetch_server_status
(
)
{
my
(
$
ip
,
$
port
)
=
@
_
;
my
$
socket
=
IO
::
Socket
::
INET
->
new
(
PeerAddr
=
>
$
ip
,
PeerPort
=
>
$
port
,
Timeout
=
>
1
,
)
;
if
(
!
$
socket
)
{
return
0
;
}
else
{
return
1
;
}
$
socket
->
close
;
}
|
收 藏
成长的对话版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!