function build() { $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $pid = @file_get_contents($pidfile); $unix = new unix(); if ($unix->process_exists($pid)) { writelogs("Already process exists pid {$pid}", __FUNCTION__, __FILE__, __LINE__); echo "Already process exists pid {$pid}\n"; return; } $mysqld = $unix->find_program("mysqld"); if (!is_file($mysqld)) { return; } @file_put_contents($pidfile, getmypid()); $q = new mysql(); $sql = "SELECT * FROM loop_disks ORDER BY `size` DESC"; $results = $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo "Starting......: " . date("H:i:s") . " Loop disks {$q->mysql_error}\n"; $unix->THREAD_COMMAND_SET($unix->LOCATE_PHP5_BIN() . " " . __FILE__); return; } while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { $path = trim($ligne["path"]); if (is_dir($path)) { $oldpath = $path; $path = $path . "/" . time() . ".disk"; $sql = "UPDATE loop_disks SET path='{$path}' WHERE `path`='{$oldpath}'"; $q->QUERY_SQL($sql, 'artica_backup'); } $size = $ligne["size"]; $maxfds = $ligne["maxfds"]; $label = $ligne["disk_name"]; writelogs("check {$path} ({$size})", __FUNCTION__, __FILE__, __LINE__); if (!stat_system($path)) { writelogs("buil_dd {$path} ({$size})", __FUNCTION__, __FILE__, __LINE__); if (!build_dd($path, $size)) { continue; } } $GetLoops = GetLoops(); if (!stat_system($path)) { writelogs("{$path} no such file", __FUNCTION__, __FILE__, __LINE__); continue; } if ($GetLoops[$path] == null) { writelogs("{$path} no such loop", __FUNCTION__, __FILE__, __LINE__); if (!build_loop($path)) { writelogs("`{$path}` unable to create loop", __FUNCTION__, __FILE__, __LINE__); continue; } writelogs("Re-check the loop list...", __FUNCTION__, __FILE__, __LINE__); $GetLoops = GetLoops(); if ($GetLoops[$path] == null) { writelogs("{$path} no such loop", __FUNCTION__, __FILE__, __LINE__); continue; } } writelogs("{$path} loop={$GetLoops[$path]}", __FUNCTION__, __FILE__, __LINE__); $sql = "UPDATE loop_disks SET loop_dev='{$GetLoops[$path]}' WHERE `path`='{$path}'"; $q->QUERY_SQL($sql, 'artica_backup'); if (!$q->ok) { echo "{$q->mysql_error}\n"; continue; } $dev = $GetLoops[$path]; echo "Starting......: " . date("H:i:s") . " {$path} is {$dev}\n"; if (!ifFileSystem($dev)) { if (!mke2fs($dev, $label, $maxfds)) { continue; } } $uuid = Getuuid($dev); echo "Starting......: " . date("H:i:s") . " {$dev} uuid={$uuid}\n"; if ($uuid == null) { continue; } $autofs = new autofs(); $autofs->uuid = $uuid; $autofs->by_uuid_addmedia($ligne["disk_name"], "auto"); $nohup = $unix->find_program("nohup"); shell_exec("{$nohup} /etc/init.d/artica-postfix autofs restart >/dev/null 2>&1 &"); } }
function autofs() { $sock = new sockets(); $lvs = $_POST["lvs"]; $vg = $_POST["vg"]; $array = unserialize(base64_decode($sock->getFrameWork("lvm.php?lvdisplay=" . urlencode($vg)))); $status = $array["/dev/{$vg}/{$lvs}"]; $auto = new autofs(); $auto->uuid = $status["INFOS"]["UUID"]; $auto->by_uuid_addmedia("{$vg}-{$lvs}", "auto"); }
function automount_add() { $uuid = $_GET["automount-add"]; $mount = basename($_GET["automount-folder"]); $usb = new usb($uuid); $autfs = new autofs($uuid); $autfs->by_uuid_addmedia($mount, $usb->ID_FS_TYPE); }
function ACTION_LVS_REMOVE(){ include_once('ressources/class.autofs.inc'); $sock=new sockets(); $lvs=$_POST["lvs"]; $vg=$_POST["vg"]; $array=unserialize(base64_decode($sock->getFrameWork("lvm.php?lvdisplay=".urlencode($vg)))); $status=$array["/dev/$vg/$lvs"]; if($status["INFOS"]["UUID"]<>null){ $auto=new autofs(); $auto->uuid=$status["INFOS"]["UUID"]; $auto->by_uuid_addmedia("$vg-$lvs","auto"); } $datas=base64_decode($sock->getFrameWork("lvm.php?lvremove=yes&lvs=$lvs&vg=$vg")); echo $datas; }
function build() { $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $oldpid = @file_get_contents($pidfile); $unix = new unix(); if ($unix->process_exists($oldpid)) { writelogs("Already process exists pid {$oldpid}", __FUNCTION__, __FILE__, __LINE__); echo "Already process exists pid {$oldpid}\n"; return; } @file_put_contents($pidfile, getmypid()); $q = new mysql(); $sql = "SELECT * FROM loop_disks ORDER BY `size` DESC"; $sql = "SELECT * FROM loop_disks ORDER BY `size` DESC"; $results = $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo "{$q->mysql_error}\n"; return; } while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { $path = $ligne["path"]; $size = $ligne["size"]; writelogs("check {$path} ({$size})", __FUNCTION__, __FILE__, __LINE__); if (!stat_system($path)) { writelogs("buil_dd {$path} ({$size})", __FUNCTION__, __FILE__, __LINE__); if (!build_dd($path, $size)) { continue; } } $GetLoops = GetLoops(); if (!stat_system($path)) { writelogs("{$path} no such file", __FUNCTION__, __FILE__, __LINE__); continue; } if ($GetLoops[$path] == null) { writelogs("{$path} no such loop", __FUNCTION__, __FILE__, __LINE__); if (!build_loop($path)) { writelogs("{$path} unable to create loop", __FUNCTION__, __FILE__, __LINE__); continue; } $GetLoops = GetLoops(); if ($GetLoops[$path] == null) { writelogs("{$path} no such loop", __FUNCTION__, __FILE__, __LINE__); continue; } } writelogs("{$path} loop={$GetLoops[$path]}", __FUNCTION__, __FILE__, __LINE__); $sql = "UPDATE loop_disks SET loop_dev='{$GetLoops[$path]}' WHERE `path`='{$path}'"; $q = new mysql(); $q->QUERY_SQL($sql, 'artica_backup'); if (!$q->ok) { echo "{$q->mysql_error}\n"; continue; } $dev = $GetLoops[$path]; echo "Starting......: {$path} is {$dev}\n"; if (!ifFileSystem($dev)) { if (!mke2fs($dev)) { continue; } } $uuid = Getuuid($dev); echo "Starting......: {$dev} uuid={$uuid}\n"; if ($uuid == null) { continue; } $autofs = new autofs(); $autofs->uuid = $uuid; $autofs->by_uuid_addmedia($ligne["disk_name"], "auto"); shell_exec("/etc/init.d/autofs reload"); } }