Alternc  latest
Alternc logiel libre pour l'hébergement
spoolsize.php
Go to the documentation of this file.
1 #!/usr/bin/php -q
2 <?php
3 
4 require_once("/usr/share/alternc/panel/class/config_nochk.php");
5 
6 global $db;
7 
8 echo "\n---------------------------\n Generating size-cache for web accounts\n\n";
9 exec("/usr/lib/alternc/quota_get_all", $list_quota_tmp);
10 $list_quota=array();
11 foreach ($list_quota_tmp as $qt) {
12  $qt = explode(" ", $qt);
13  $list_quota[$qt[0]] = array('used'=>$qt[1], 'quota'=>$qt[2]);
14 }
15 
16 if ($db->query("SELECT uid,login FROM membres;")) {
17  $db2 = new DB_system();
18  while ($db->next_record()) {
19  if (isset($list_quota[$db->f('uid')])) {
20  $qu=$list_quota[$db->f('uid')];
21  $size=$qu['used'];
22  } else {
23  // The QUOTA system being disabled, we need to use 'du' on each folder.
24  $login = $db->f('login');
25  $size=exec("/usr/bin/du -s /var/www/alternc/".substr($login,0,1)."/".$login);
26  }
27  $db2->query("REPLACE INTO size_web SET uid=?, size=?;",array(intval($db->f('uid')),intval($size)));
28  echo $db->f('login')." (".(round($size/1024, 1))." MB)\n";
29  }
30 }
31 
32 echo "\n---------------------------\n Generating size-cache for MySQL databases\n\n";
33 // We get all hosts on which sql users' DB are
34 $r=$db->query("select * from db_servers;");
35 $allsrv=array();
36 while ($db->next_record()) {
37  $allsrv[] = $db->Record;
38 }
39 $db->query("DELETE FROM size_db;");
40 $tab=array();
41 foreach($allsrv as $c) {
42  $tab=$mysql->get_dbus_size($c["name"],$c["host"],$c["login"],$c["password"],$c["client"]);
43  echo "++ Processing ".$c["name"]." ++\n";
44  foreach ($tab as $dbname=>$size) {
45  $db->query("REPLACE INTO size_db SET db=?,size=?;",array($dbname,$size));
46  echo " $dbname done (".(round(($size/1024)/1024,1))." MB) \n"; flush();
47  }
48  echo "\n";
49 }
50 
51 echo "---------------------------\n Generating size-cache for mailman\n\n";
52 if ($db->query("SELECT uid, name FROM mailman;")) {
53  $cc=array();
54  $d=array();
55  if($db->num_rows()){
56  while ($db->next_record()) {
57  $cc[]=array("uid" => $db->f("uid"), "name" => $db->f("name"));
58  }
59  foreach ($cc as $c){
60  echo $c["uid"]."/".$c["name"]; flush();
61  $size1=exec("sudo /usr/bin/du -s ".escapeshellarg("/var/lib/mailman/lists/".$c["name"]));
62  $size2=exec("sudo /usr/bin/du -s ".escapeshellarg("/var/lib/mailman/archives/private/".$c["name"]));
63  $size3=exec("sudo /usr/bin/du -s ".escapeshellarg("/var/lib/mailman/archives/private/".$c["name"].".mbox"));
64  $size=(intval($size1)+intval($size2)+intval($size3));
65  $db->query("REPLACE INTO size_mailman SET uid=?,list=?,size=?;",array($c["uid"],$c["name"],$size));
66  echo " done (".(round($size/1024, 1))." MB) \n"; flush();
67  }
68  }
69 }
70 
71 
72 ?>
$db2
Definition: 3.0.0~3.php:13
$c
Definition: bootstrap.php:47
$d
Class for MySQL management in the panel.
Definition: bootstrap.php:28
$login
$list_quota
Definition: spoolsize.php:10
$allsrv
Definition: spoolsize.php:35
$r
Definition: spoolsize.php:34
global $db
Definition: spoolsize.php:4
$tab
Definition: spoolsize.php:40