コード例 #1
0
ファイル: exec.loopdisks.php プロジェクト: BillTheBest/1.6.x
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 &");
    }
}
コード例 #2
0
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");
}
コード例 #3
0
ファイル: usb.index.php プロジェクト: BillTheBest/1.6.x
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);
}
コード例 #4
0
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;
}
コード例 #5
0
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");
    }
}