perl 관련하여 문의드립니다.
글쓴이: monovision / 작성시간: 수, 2009/01/21 - 10:33오전
LVS 구축과 관련하여 ldirectord 를 사용중인데 이벤트 변경이 되게 할 때마다 문자를 보내게 하기 위해서 소스를 수정할려고 하는데 도통 알 수가 없어서 문의 드립니다.
&ld_log("Quiescent $log_args (Weight set to 0)");
&ld_log("Restored $log_args (Weight set to 1)");소스에서 위처럼 함수를 호출하면 아래처럼 로그가 찍힙니다.
[Wed Jan 21 06:30:06 2009|ldirectord|27436] Quiescent real server: 220.95.xxx.xxx:80 (220.95.xxx.xxx:80) (Weight set to 0) [Wed Jan 21 06:30:06 2009|ldirectord|27436] Restored real server: 220.95.xxx.xxx:80 (220.95.xxx.xxx:80) (Weight set to 1)
ld_log 의 함수는 다음처럼 정의가 되어 있구요.
sub ld_log
{
my ($message) = (@_);
my $now = localtime();
&ld_debug(2, $message);
chomp $message;
if ($opt_d) {
print STDERR "$message\n";
} elsif ($SUPERVISED eq "yes") {
print "[$now] $message\n";
} elsif ( $LDIRLOG =~ /^\/(.*)/ ) {
unless (open(LOGFILE, ">>$LDIRLOG")
and print LOGFILE "[$now|$CFGNAME|$$] $message\n"
and close(LOGFILE)) {
print STDERR "$message\n";
return 1;
}
}
else {
# Assume LDIRLOG is a logfacility, log to syslog
syslog( "info", "$message" );
}
return(0);
}유사한 함수를 호출했을때 ip 와 port (각 2개씩) 를 뽑아오고 싶은데 도통 뽑지를 못하겠습니다. ㅡ.ㅡ;;;
저기서 ip 와 port 를 뽑아올려면 어떻게 해야하나요 ?
sub send_sms
{
my ($message) = (@_);
print STDERR "$message\n";
my $now = localtime();
&ld_debug(2, $message);
chomp $message;
print STDERR "$message\n";
system("/root/send_sms.sh $message");
return(0);
}보내는 메세지를 인자로 받는 쉘 스크립트를 만들고 ld_log 로그 함수에서 필요없다고 생각하는 부분을 제외하고 위처럼 system 함수를 이용해서 만들었는데요....
system 함수 자체가 실행되지가 않습니다. 인자가 넘어오는건 둘째 치구요.
system 함수의 사용법도 틀린건지 궁금합니다.
perl 은 다가가기에는 너무나 머네요...
Forums:


댓글 달기