我是perl脚本的新手, 我必须在下面的perl脚本中添加一个telnet套接字。
如果从主机发送邮件失败,则会打开票证。从数据库收集服务器信息。 但我想在这里添加一个telnet套接字。如果发送邮件失败,我想尝试使用telnet telnet到服务器。如果它连接,请不要打开票证,如果失败,请将其打开。
这可能吗?
这是脚本:
foreach my $id(keys %server)
{
$sth->execute($id) ;
my $status = ($sth->fetchrow_array)[0] ;
$sth->finish() ;
if (!defined($status)) # Insert it!
{
$sth2->execute($id) or die "$runTime - $DBI::err\n" ;
$status = 1 ; # first time up
}
my $currtime = $time{'yyyy-mm-dd hh:mm:ss'} ;
print "$server{$id}->{server}, $server{$id}->{port}, $server{$id}->{sender}, $server{$id}->{recipient}\n";
my $currstat = mySendMail($server{$id}->{server}, $server{$id}->{port}, $server{$id}->{sender}, $server{$id}->{recipient}) ;
if(defined($currstat)) #Open Ticket
{
$currstat =~ s/[\r\n]+$// ;
$currstat =~ s/[\r\n]+/;/g ;
$currstat = substr($currstat, 0 , 1000) ;
#cawto "AHDNEW $server{$id}->{asset} mail_check down $currstat", "n=jerry", "c=red" ;
cawto "AHDNEW $server{$id}->{asset} mail_check down $currstat", "n=serverticket", "c=red" ;
cawto "AHDNEW $server{$id}->{asset} mail_check down $currstat", "n=sdyydb1", "c=red" ;
$sth3->execute(2, $currtime, $currstat, $id) or die "$runTime - $DBI::err\n" ;
print STDERR "$runTime : $server{$id}->{asset} $currstat- \n" ;
if ($server{$id}->{asset} =~ /^msite/)
{
#cawto "msitefe service recycle $server{$id}->{asset}", "c=red" ;
print `start C:tool \\service.exe\\\\$server{$id}->{asset} -u msite\\script`;
sleep 60;
print `start C:tool \\service.exe\\\\$server{$id}->{asset} -u msite\\script`;
}
}
else
{
print STDERR "$runTime : $server{$id}->{asset} success- \n" ;
if ($status > 1) #Ticket close
{
cawto "AHDNEW $server{$id}->{asset} mail_check up", "n=serverticket", "c=red" ;
cawto "AHDNEW $server{$id}->{asset} mail_check up", "n=sdyydb1", "c=red" ;
}
$sth3->execute(1, $currtime, '', $id) or die "$runTime - $DBI::err\n" ;
}
}