Blame view

php/change_ntp.php 1.68 KB
cf76164e6   Ting Chan   20190709
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
  <?php
   $open_ntp = '/etc/ntp.conf';
   $ntp_title = array('# pool: <http://www.pool.ntp.org/join.html>','#end');
   shell_exec("sudo chmod 777 ".$open_ntp);
   $nn = 0;
   $i = 0; 
   $handle = @fopen($open_ntp,"r");
   //讀檔案
   while(($data = fgetcsv($handle,1000,"
  ")) != false){
    foreach($data as $key => $value){
     $aa[$i] = $value;
     $i++;
    }
    
   }
   //計算出server之前和之後的key抓出來
   foreach($aa as $num => $num_value){
    if(in_array($num_value,'#end')){
     $have_end[] = $num;
    }
    
    //判斷Ip內是否有結尾
    $end = ($num_value != '#end') ? '0':'1';
    //判斷Ip內是否有fudge
    if(false !== ($rst =strpos($num_value,'fudge'))){
     $end_num = $num;
    }
    
    if(substr($num_value,0,6) == 'server'){
     $max_min[] = $num;
    }
   }
   
   if($end_num == ""){
    $total = count($max_min);
    $key = $total-1;
    $end_num = $max_min[$key];
   }
    
   $j=0;
   for($j=0;$j<=$max_min['0']-1;$j++){
    $update[$j][] = $aa[$j]."
  ";
   }
   
   foreach($_POST['server'] as $key => $value){
    if($value != ""){
     $update[$j][] = "server ".$value." minpoll 3 maxpoll 6 iburst prefer
  ";
     //$update[$j+1][] = "fudge ".$value." refid GPS stratum 1
  ";
     $j=$j+2;
    }
   }
   if($end == 0){
    $update[$j][] = "#end
  ";
    $j++;
    for($m=$end_num+2;$m<=count($aa);$m++){
     $update[$j][] = $aa[$m]."
  ";;
     $j++;
    }
   }else{
    for($m=$have_end[0]+1;$m<=count($aa);$m++){
     $update[$j][] = $aa[$m]."
  ";
     $j++;
    }
    
   }
   
   
   $fp = fopen($open_ntp,'w')  or die("Unable to open file!");
   foreach($update as $key => $value){
    foreach($value as $k => $v){
     fwrite($fp, $v);
    }
   }
   fclose($fp);
   
   shell_exec("sudo service ntp restart");
   echo "1";
  ?>