Example #1
0
function do_mount_samba($info)
{
    global $var;
    if (!($info[fstype] == "nfs" && (strtoupper($var['NAME']) == strtoupper($info['ip']) || $var['IPADDR'] == $info['ip']))) {
        $dev = $info['device'];
        $dir = $info['mountpoint'];
        $fs = $info['fstype'];
        if (!is_mounted($dev) || !is_mounted($dir, true)) {
            @mkdir($dir, 0777, TRUE);
            if ($fs == "nfs") {
                $params = get_mount_params($fs, '$dev');
                $cmd = "/sbin/mount -t {$fs} -o " . $params . " '{$dev}' '{$dir}'";
                $o = shell_exec($cmd . " 2>&1");
            } else {
                $params = sprintf(get_mount_params($fs, '$dev'), $info['user'] ? $info['user'] : "******", $info['pass']);
                $cmd = "/sbin/mount -t {$fs} -o " . $params . " '{$dev}' '{$dir}'";
                $o = shell_exec($cmd . " 2>&1");
                $params = sprintf(get_mount_params($fs, '$dev'), $info['user'] ? $info['user'] : "******", '*******');
            }
            unassigned_log("Mount SMB/NFS command: mount -t {$fs} -o " . $params . " '{$dev}' '{$dir}'");
            foreach (range(0, 5) as $t) {
                if (is_mounted($dev)) {
                    @chmod($dir, 0777);
                    @chown($dir, 99);
                    @chgrp($dir, 100);
                    unassigned_log("Successfully mounted '{$dev}' on '{$dir}'.");
                    return TRUE;
                } else {
                    sleep(0.5);
                }
            }
            unassigned_log("Mount of '{$dev}' failed. Error message: {$o}");
            return FALSE;
        } else {
            unassigned_log("Share '{$dev}' already mounted...");
            return FALSE;
        }
    } else {
        unassigned_log("Error: Cannot mount remote NFS '{$info[device]}' from this server onto this server.");
        return FALSE;
    }
}
function do_mount($dev, $dir, $fs) {
  if (! is_mounted($dev) || ! is_mounted($dir)) {
    @mkdir($dir,0777,TRUE);
    $cmd = "mount -t auto -o ".get_mount_params($fs)." '${dev}' '${dir}'";
    debug("Mounting drive with command: $cmd");
    $o = shell_exec($cmd." 2>&1");
    foreach (range(0,5) as $t) {
      if (is_mounted($dev)) {
        debug("Successfully mounted '${dev}' on '${dir}'"); return TRUE;
      } else { sleep(0.5);}
    }
    debug("Mount of ${dev} failed. Error message: $o"); return FALSE;
  } else {
    debug("Drive '$dev' already mounted");
  }
}