Я попытался добавить прокси-сервер к следующему сценарию perl:
#!/usr/bin/perl
TO='list of email adresses here';
require "/usr/local/SCRIPTS/www-tools/service-name/jcode.pl";
use LWP::UserAgent;
$sendmail = '/usr/lib/sendmail -t -oi';
######################
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year = $year+1900;
$mon = $mon+1;
$MMDD = sprintf("%02d/%02d",$mon,$mday);
$HHMM = sprintf("%02d:%02d",$hour,$min);
$err = 0;
#Ph.1 WebAccess-1stServer(VIP)
@ret = &SiteAccess( 'http://IP:PORT/hostname/' ,
'http://IP:PORT/hostname/Login.do' );
if( $ret[0] != 200 || $ret[2] != 200 ){
$err = 1;
}
$body = &jcode::euc($ret[1]);
if( $body !~ m#<title>ServiceName<\/title># ){
$err = 2;
}
$title = &jcode::euc('<title>web$BO"7H(J</title>');
$body = &jcode::euc($ret[3]);
if( $body !~ m#$title# ){
$err = 3;
}
&MailSend('Web') if( $err > 0 );
$err=0;
#Ph.2 WebAccess-2ndServer(Direct)
@ret = &SiteAccess( 'http://2ndServerIP:PORT/hostname/' ,
'http://2ndServerIP:PORT/hostname/Login.do' );
if( $ret[0] != 200 || $ret[2] != 200 ){
$err = 4;
}
$body = &jcode::euc($ret[1]);
if( $body !~ m#<title>ServiceName<\/title># ){
$err = 5;
}
$title = &jcode::euc('<title>web$BO"7H(J</title>');
$body = &jcode::euc($ret[3]);
if( $body !~ m#$title# ){
$err = 6;
}
&MailSend('Web2nd') if( $err > 0);
$err=0;
#Ph.3 POP
@ret = &SiteAccess( 'http://IP:PORT/hostname/' ,
'http://IP:PORT/hostname/Login.do' );
if( $ret[0] != 200 || $ret[2] != 200 ){
$err = 7;
}
$body = &jcode::euc($ret[1]);
if( $body !~ m#<title>ServiceName</title># ){
$err = 8;
}
$title = &jcode::euc('<title>TitleJapanese<(J</title>');
$body = &jcode::euc($ret[3]);
if( $body !~ m#$title# ){
$err = 9;
}
&MailSend('POP') if( $err > 0);
$err=0;
#Ph.4 Exchange(EWS)
@ret = &SiteAccess( 'http://IP:PORT/hostname/' ,
'http://IP:PORT/hostname/Login.do' );
if( $ret[0] != 200 || $ret[2] != 200 ){
$err = 10;
}
$body = &jcode::euc($ret[1]);
if( $body !~ m#<title>ServiceName</title># ){
$err = 11;
}
$title = &jcode::euc('<title>TitleJapanese<(J</title>');
$body = &jcode::euc($ret[3]);
if( $body !~ m#$title# ){
$err = 12;
}
&MailSend('Exchange-EWS') if( $err > 0);
$err=0;
sub SiteAccess{
my $url1 = shift;
my $url2 = shift;
# $ua,$req,$res;i
my @r;
if($url1 ne ''){
$ua = LWP::UserAgent->new;
$req = HTTP::Request->new(GET => $url1);
$res = $ua->request($req);
$r[0] = $res->code;
$r[1] = $res->content;
}
if($url2 ne ''){
$ua = LWP::UserAgent->new;
$res = $ua->post( $url2,
{
"c" => "don't knwo what that is",
"u" => "users ldap",
"p" => "password"
},
"Content-Type" => "application/x-www-form-urlencoded",
"User-Agent" => "DoCoMo/2.0 N901iS(c100;TB;W24H12;ser123445654654645;icc898114564645667716666f)");
$r[2] = $res->code;
$r[3] = $res->content;
}
return @r;
}
sub MailSend{
my $title = shift;
my $body;
my $from;
my @message;
#the following lines need another file name jcode to display properly. It just means error code or auth error.
$message[1] = &jcode::jis('[Web]$B%(%i!<%3!<%I(J');
$message[4] = &jcode::jis('[Web2nd]$B%(%i!<%3!<%I(J');
$message[7] = &jcode::jis('[POP]$B%(%i!<%3!<%I(J');
$message[10] = &jcode::jis('[EWS]$B%(%i!<%3!<%I(J');
$message[2] = &jcode::jis('[Web]$B%m%0%$%s2hLL(J');
$message[5] = &jcode::jis('[Web2nd]$B%m%0%$%s2hLL(J');
$message[8] = &jcode::jis('[POP]$B%m%0%$%s2hLL(J');
$message[11] = &jcode::jis('[EWS]$B%m%0%$%s2hLL(J');
$message[3] = &jcode::jis('[Web]auth$B%(%i!<(J');
$message[6] = &jcode::jis('[Web2nd]auth$B%(%i!<(J');
$message[9] = &jcode::jis('[POP]auth$B%(%i!<(J');
$message[12] = &jcode::jis('[EWS]auth$B%(%i!<(J');
$from = 'mail@abc.com';
$title = '['.$title.']cnct1 err';
# $title = $title.'['.$MMDD.$HHMM.']';
$body =<<END_OF_BODY;
To: $TO
Subject: $title
From: $from
ConnectOneCheck Error
Date : $MMDD $HHMM
ErrorStatus: $err
ErrorMsg : $message[$err]
END_OF_BODY
open(ML,"| $sendmail") || &error("Can't execute sendmail : $sendmail\n");
print ML $body;
close(ML);
}
Итак, вот часть, где я пытался добавить использование прокси. Большинство частей закомментированы, за исключением последней функции:
! / USR / бен / Perl
TO='list of email adresses here';
require "/usr/local/SCRIPTS/www-tools/service-name/jcode.pl";
use LWP::UserAgent;
$sendmail = '/usr/lib/sendmail -t -oi';
######################
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year = $year+1900;
$mon = $mon+1;
$MMDD = sprintf("%02d/%02d",$mon,$mday);
$HHMM = sprintf("%02d:%02d",$hour,$min);
$err = 0;
Следующая часть закомментирована, потому что она не используется.
@ret = &SiteAccess( 'http://IP:PORT/hostname/' ,
'http://IP:PORT/hostname/Login.do' );
if( $ret[0] != 200 || $ret[2] != 200 ){
$err = 10;
}
$body = &jcode::euc($ret[1]);
if( $body !‾ m#<title>ConnectONE</title># ){
$err = 11;
}
$title = &jcode::euc('<title>TitleJapanese</title>');
$body = &jcode::euc($ret[3]);
if( $body !‾ m#$title# ){
$err = 12;
}
&MailSend('Exchange-EWS') if( $err > 0);
$err=0;
sub SiteAccess{
my $url1 = shift;
my $url2 = shift;
# $ua,$req,$res;i
my @r;
if($url1 ne ''){
$ua = LWP::UserAgent->new;
$ENV{HTTP_proxy} = "proxy fqdn here";
$ua->env_proxy
$req = HTTP::Request->new(GET => $url1);
$res = $ua->request($req);
$r[0] = $res->code;
$r[1] = $res->content;
}
if($url2 ne ''){
$ua = LWP::UserAgent->new;
$ENV{HTTP_proxy} = "proxy fqdn here";
$ua->env_proxy
$res = $ua->post( $url2,
{
"c" => "don't knwo what that is",
"u" => "users ldap",
"p" => "password"
},
"Content-Type" => "application/x-www-form-urlencoded",
"User-Agent" => "DoCoMo/2.0 N901iS(c100;TB;W24H12;ser123445654654645;icc898114564645667716666f)");
$r[2] = $res->code;
$r[3] = $res->content;
}
return @r;
}
sub MailSend{
my $title = shift;
my $body;
my $from;
my @message;
#the following lines need another file name jcode to display properly. It just means error code or auth error.
#$message[1] = &jcode::jis('[Web]$B%(%i!<%3!<%I(J');
#$message[4] = &jcode::jis('[Web2nd]$B%(%i!<%3!<%I(J');
#$message[7] = &jcode::jis('[POP]$B%(%i!<%3!<%I(J');
$message[10] = &jcode::jis('[EWS]$B%(%i!<%3!<%I(J');
#$message[2] = &jcode::jis('[Web]$B%m%0%$%s2hLL(J');
#$message[5] = &jcode::jis('[Web2nd]$B%m%0%$%s2hLL(J');
#$message[8] = &jcode::jis('[POP]$B%m%0%$%s2hLL(J');
$message[11] = &jcode::jis('[EWS]$B%m%0%$%s2hLL(J');
#$message[3] = &jcode::jis('[Web]auth$B%(%i!<(J');
#$message[6] = &jcode::jis('[Web2nd]auth$B%(%i!<(J');
#$message[9] = &jcode::jis('[POP]auth$B%(%i!<(J');
$message[12] = &jcode::jis('[EWS]auth$B%(%i!<(J');
$from = 'mail@abc.com';
$title = '['.$title.']cnct1 err';
# $title = $title.'['.$MMDD.$HHMM.']';
$body =<<END_OF_BODY;
To: $TO
Subject: $title
From: $from
ConnectOneCheck Error
Date : $MMDD $HHMM
ErrorStatus: $err
ErrorMsg : $message[$err]
END_OF_BODY
open(ML,"| $sendmail") || &error("Can't execute sendmail : $sendmail\n");
print ML $body;
close(ML);
}
ОК, поэтому я добавил прокси с помощью этой функции
$ua = LWP::UserAgent->new;
$ENV{HTTP_proxy} = "here is the FQDN of the proxy";
$ua->env_proxy
Но это плохо компилируется. Это дает мне эту ошибку:
Синтаксическая ошибка в /usr/local/SCRIPTS/www-tools/connectone/ConnectOneCheck.pl строке 93 рядом с $ body!
Нераспознанный персонаж \ xE2; отмечен знаком <- ЗДЕСЬ после f ($ body! <- ЗДЕСЬ около столбца 12 в /usr/local/SCRIPTS/www-tools/connectone/ConnectOneCheck.pl строка 93. </p>
Здесь кто-то, кто может запустить этот скрипт?