hosting, webhosting, web hosting, host, webhost, web host, เว็บโฮสติ้ง, เว็บโฮส, โฮสติ้ง, จดโดเมน, เวบโฮส, เวบโฮสติ้ง, เวบโฮสต์, เว็ปโฮสต์, โดเมน, โฮส, โฮสต์, domain name, domain registration, จดทะเบียนโดเมน, จดโดเมน, จดโดเมนเนม, พื้นที่เว็บไซด์, พื้นที่เว็บไซต์, เช่า hostr
web design ออกแบบเว็บไซต์ พร้อมบริการดูแลเว็บไซต์ ให้คำปรึกษาในการโปรโมทเว็บไซต์ อย่างมืออาชีพ


Webdesign Article : | 1 | 2 | 


วันนี้พบปัญหาในการคำนวณหา diskspace ใน hosting ของ directadmin ครับ มันเหมือนจะเพี้ยน ๆ ไม่รู้เป็นผลมาจากอะไร ไม่รู้ว่าเป็นเพราะการ restore ข้อมูลบ่อย หรือว่าเป็นเพราะการ upgrade directadmin 1.33 ทดลอง rewrite cache ใหม่ด้วยคำสั่ง

echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue

แล้วก็ยังไม่ได้ครับ มันก็ยังเพี้ยนอยู่เข้าใจว่ามันไปดู lastupdatequota ใน domains/domain.usage แล้วนำมาคำนวณพื้นที่สำหรับ hosting ใหม่ในแต่ละวัน

หาวิธีแก้ยังไม่ได้สักที จึงต้องเขียน script ขึ้นมาเพื่อแทรกระบบการคำนวณ hosting space เข้าไป โดยได้ตัดสินใจเขียนเป็น script php ดังนี้


#!/usr/local/bin/php -n
<?php

function get_size($path)
{
          if(!is_dir($path)) return filesize($path);
          if ($handle = opendir($path)) {
            $size = 0;
            while (false !== ($file = readdir($handle))) {
              if($file!='.' && $file!='..') {
                // function filesize has been deleted
                $size += get_size($path.'/'.$file);
              }
            }
            closedir($handle);
        }
  return $size;
}


$i=0;

$fs = fopen("/usr/local/directadmin/data/admin/show_all_users.cache","r");
 while(!feof($fs)){
  $readall .= fread($fs,1024);
 }
fclose($fs);

$oreadall = $readall;

if ($handle = opendir('/usr/local/directadmin/data/users/')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && $file != "admin") {
            $users[$i] = $file;
            $totalsize = round((((get_size("/home/".$users[$i]))/1024)/1024),4);
            $total = round($totalsize,1);

                $pos1 = strpos($oreadall,$users[$i]."=");
                $pos2 = strpos($oreadall,"&quota=",$pos1);
                $pos3 = strpos($oreadall," /",$pos2);
                $cquota = substr($oreadall,$pos2,$pos3-$pos2);
                $tmpline = substr($oreadall,$pos1,$pos3-$pos1);
                $ntmpline = str_replace($cquota,"&quota=".$total,$tmpline);
                $nreadall = str_replace($tmpline,$ntmpline,$oreadall);
                $fs = fopen("/usr/local/directadmin/data/admin/show_all_users.cache","w");
                fwrite($fs,$nreadall);
                fclose($fs);

            $fl = fopen("/usr/local/directadmin/data/users/".$users[$i]."/user.usage","r");
            $read = fread($fl,4048);
            fclose($fl);
            $arread = split("\n",$read);
                foreach($arread as $val){
                 $val = trim($val);
                 if (substr($val,0,6) == "quota="){
                   $newwrite = str_replace($val,"quota=".$total,$read);
                 }
                }
            $fl = fopen("/usr/local/directadmin/data/users/".$users[$i]."/user.usage","w");
            fwrite($fl,$newwrite);
            fclose($fl);
            $i++;
        }
    }
    closedir($handle);
}

exit;
?>

โปรแกรมจะทำการตรวจสอบพื้นที่ใน /home/user จากนั้นก็จะเอาไปเขียนลงใน user.usage และ update cache showalluser ใน hosting ให้ครับ



Webdesign Article : |
1 | 2 | 

hosting, webhosting, web hosting, host, webhost, web host, เว็บโฮสติ้ง, เว็บโฮส, โฮสติ้ง, จดโดเมน, เวบโฮส, เวบโฮสติ้ง, เวบโฮสต์, เว็ปโฮสต์, โดเมน, โฮส, โฮสต์, domain name, domain registration, จดทะเบียนโดเมน, จดโดเมน, จดโดเมนเนม, พื้นที่เว็บไซด์, พื้นที่เว็บไซต์, เช่า hostr

HOME   |   ABOUT US   |   HOSTING   |   DOWNLOAD   |   SUPPORT   |   CONTACTS
Copyright © Naxza.com,Since 2004. All Rights Reserved. Privacy policy. monitoring site uptime web