最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Perl腳本實現(xiàn)檢測主機心跳信號功能

 更新時間:2014年10月23日 08:58:41   投稿:junjie  
這篇文章主要介紹了Perl腳本實現(xiàn)檢測主機心跳信號功能,本文代碼也可作為perl串口通信的實例,需要的朋友可以參考下

使用串口通信,在備機端使用如下腳本檢測來自主機的心跳信號,一旦未接受次數(shù)超過指定記數(shù),備機認(rèn)為主機DOWN機,自動設(shè)置為主機的網(wǎng)絡(luò)參數(shù),頂替主機提供服務(wù)。

# ! perl -w 
 
 use strict;
 use Win32 :: SerialPort;

 my  $port  =  ' COM2 ' ; # serail port name registried in OS 
 my  $count  =  0 ; # count number of heartbeat-receiving failture 
 my  $max_count  =  5 ; # max fail count to be tolerated 
 my  $interface  =  ' 
 
# ---------------------------------- 
# 接口 IP 配置     
# ---------------------------------- 
pushd interface ip


# "local" 的接口 IP 配置

set address name="local" source=static addr=192.168.6.185 mask=255.255.255.0
set address name="local" gateway=192.168.6.65 gwmetric=0
set dns name="local" source=static addr=192.168.6.112 register=PRIMARY
add dns name="local" addr=192.168.6.201 index=2
set wins name="local" source=static addr=none


popd
# 接口 IP 配置結(jié)束


 ' ; # net inetrface config information 
 
 sub errlog {
   # log the failtrue occuring time 
   
   open ERR ,  ' >>err.log ' ;
   my  @time  =  localtime ();
   my  $time  =  sprintf ( " %d " ,  $time [ 5 ] +  1900 ) 
             .  ' - ' 
             .  sprintf ( " %d " ,  $time [ 4 ] +  1 )
             .  ' - ' 
             .  " $time[3] " 
             .  '  ' 
             .  sprintf ( " %.2d " ,  $time [ 2 ])
             .  ' : ' 
             .  sprintf ( " %.2d " ,  $time [ 1 ])
             .  ' : ' 
             .  sprintf ( " %.2d " ,  $time [ 0 ]);
   print ERR $time . " \n " ;
   close ERR;
}

 sub ipchange {
   # change ip addrress 
   
   open TMP ,  ' >tmp ' ;
   print TMP $interface ;
   close TMP;
  
   eval {
     system  ' netsh -f tmp ' ;
     unlink  ' tmp ' ;
  };
  
   if ($@) { return  0 ;}
   return  1 ;
}

 my  $ob  = Win32 :: SerialPort -> new( $port ) or die  " CANNOT OPEN $port " ;
 # open serial port 
 
 eval {
   # set serial port properties 
   
   $ob -> baudrate( 9600 );
   $ob -> parity( ' none ' );
   $ob -> databits( 8 );
   $ob -> stopbits( 1 );
   $ob -> handshake( ' none ' );
};
  
 if ($@) { die  ' SET FAILED ' ;}

 $ob -> write_settings or die  " CANNOT WRITE $port DRIVER " ;
 # write to port driver to make it active 
 
 while ( 1 ) {
   # loop receiving heartbeat from remote machine
  # change ip address after designated count of failture 
   
   my ( $length ,  $result ) =  $ob -> read ( 10 );
  
   if ( $result ) { 
     $count  =  0 ;
  } elsif ( $count  ==  $max_count ) {
    errlog();
     if (not ipchange()) { print  ' IP CHANGE FAILED ' ; }
     last ;
  }   else { 
     $count ++ ;
  }
  
   sleep ( 1 );
}

 undef  $ob ;

相關(guān)文章

  • python 獲取命令行參數(shù) 函數(shù)

    python 獲取命令行參數(shù) 函數(shù)

    perl下獲取命令行的參數(shù)跟數(shù)量的函數(shù)。
    2009-04-04
  • Perl實現(xiàn)刪除Windows下的圖片緩存縮略圖Thumbs.db

    Perl實現(xiàn)刪除Windows下的圖片緩存縮略圖Thumbs.db

    這篇文章主要介紹了Perl實現(xiàn)刪除Windows下的圖片緩存縮略圖Thumbs.db,本文實現(xiàn)了批量刪除Thumbs.db文件,需要的朋友可以參考下
    2014-12-12
  • Perl函數(shù)(子程序)學(xué)習(xí)筆記

    Perl函數(shù)(子程序)學(xué)習(xí)筆記

    這篇文章主要介紹了Perl函數(shù)(子程序)學(xué)習(xí)筆記,本文講解了函數(shù)定義、函數(shù)返回值、函數(shù)參數(shù)傳遞等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Perl時間處理函數(shù)用法介紹

    Perl時間處理函數(shù)用法介紹

    本文重點討論Perl時間處理函數(shù)的概念,Perl能在絕大多數(shù)操作系統(tǒng)運行,可以方便地向不同操作系統(tǒng)遷移,并且Perl借取了C、sed、awk、shellscripting以及很多其他程序語言的特性
    2017-09-09
  • perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析

    perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析

    這篇文章主要介紹了perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析,本文重點在于講解@ARGV的用法,并通過實例來說明,需要的朋友可以參考下
    2014-06-06
  • 最新評論

    炉霍县| 日照市| 都安| 芮城县| 桐柏县| 道孚县| 互助| 南城县| 科尔| 卢湾区| 都江堰市| 出国| 沧源| 谢通门县| 高雄县| 扎赉特旗| 南通市| 芜湖县| 咸丰县| 南康市| 商丘市| 固阳县| 博湖县| 鲁山县| 大兴区| 米脂县| 和硕县| 安陆市| 霍林郭勒市| 白银市| 西宁市| 田东县| 商都县| 中江县| 和田市| 江山市| 旬邑县| 罗定市| 通河县| 册亨县| 镇赉县|