因工作量太大,所以写了一个脚本完成自动化工作。工作内容是,在crontab中内容如下:

 

 
  
  1. */1 * * * * /home/nagios/nsca/nagios_check_ping.sh 192.168.1.1 >/dev/null 2>&1 

现在改为

 

 
  
  1. */1 * * * * /home/nagios/nsca/nagios_check_ping.sh 192.168.1.1 mobile >/dev/null 2>&1 

要完成自动插入mobile的工作,crontab 的条目太多,不可能手工去插入。所以我的代码如下:

 
  
  1. #!/usr/bin/perl -w  
  2.  
  3. use strict; 
  4.  
  5. my $crontab = "crontab.txt"
  6. # 保存 crontab 到 crontab.txt 中 
  7.  
  8. my $result  = `crontab  -l > $crontab`; 
  9.  
  10.  
  11. open OUT,"> crontab2.txt" || die "Cann't open the file! $!"; 

  12. open IN,"< $crontab" || die "Cann't open the file! $!"; 
  13.  
  14.  
  15. my $flag = 1
  16. my $count  ; 
  17. while(<IN>){ 
  18.         $count++; 
  19.         my $line = $_; 
  20.         chomp $line; 
  21.         open MO,"< mobile.txt" || die "Cann't open the file! $!"; 
  22.         while(<MO>) { 
  23.                 my $ip_mobile = $_; 
  24.                 chomp $ip_mobile; 
  25.                 my @ip = split /\s+/,$ip_mobile; 
  26.                 if ( $line =~ /$ip[0]/ ){ 
  27.                         my @temp  = split /\s+/,$line; 
  28.                         print  OUT " */1 * * * * $temp[5] $ip_mobile >/dev/null 2>&1 \n"; 
  29.                         $flag = 1
  30.                         last; 
  31.                 }else { $flag = 0;} 
  32.         } 
  33.         if($flag == 0 ){ 
  34.                 print OUT "$line \n"; 
  35.         } 
  36.         $flag = 1
  37. close MO; 
  38. close IN; 
  39. close OUT;  

 

今天工作太累了,就不解释代码了。