bash에서는 다음과 같이 적혀있다.

 Bash does not understand floating point arithmetic. It treats numbers containing a decimal point as strings.

 

그래서,floating 변수를 비교하기 위해서는 문자열 비교를 해야 하는 황당한 이유가 있다.

 

그래서 펄을 이용하면 floating 연산을 할 수 있다.

 

 

다음은 1분간 평균로드가 30이 넘어서면, restart를 자동으로 하게 하는 펄 스크립트이다.

 

if( floating 변수 > integer 변수가)  statement 가 가능하다!!

 

 #!/usr/bin/perl

my $DT                      = `date '+%Y%m%d'`;
chomp $DT;
use constant maxUptimeVal   => 30;
use constant LOG_DIR        => "/home/www/backup";
my $LOG_FILE_NAME           = "auto-start.".$DT.".log";


$loadnum = `cat /proc/loadavg | awk '{print \$1}'`;

if ($loadnum > maxUptimeVal) {
    $r=`/home/www/script/restart-service.sh`;
    debug("restart");
}

sub debug {
my $CDTTM                   = `date '+%Y%m%d%H%M%S'`;
chomp $CDTTM;
    open(LOG, ">>".LOG_DIR."/".$LOG_FILE_NAME);
    print LOG "[".$CDTTM."]".$_[0];
    print "[".$CDTTM."]".$_[0];
    close(LOG);
}

'perl' 카테고리의 다른 글

Passing Parameters to Functions  (0) 2008.06.05
Perl의 String 관련 함수  (0) 2008.03.22
bash는 float 변수 연산이 안된다.  (0) 2007.10.21
펄 해쉬 이야기 #2  (0) 2007.10.19
펄 Hash 관련 정보 #1  (0) 2007.10.19
패턴 매칭  (0) 2007.09.23
Posted by 김용환 '김용환'

댓글을 달아 주세요