Beispiel #1
0
 private static function _create_backup($folder)
 {
     $bfolder = db_select_first("simple_sys_tree", "*", "id=@id@", "lft asc", array("id" => $folder));
     $folders = db_select("simple_sys_tree", "*", "lft between @lft@ and @rgt@", "lft asc", "", array("lft" => $bfolder["lft"], "rgt" => $bfolder["rgt"]));
     if (empty($bfolder["id"]) or !is_array($folders)) {
         return "";
     }
     $folder_path = self::_get_backup_folderpath($bfolder);
     $rand_str = NOW . "-" . sha1(uniqid(rand(), true) . uniqid(rand(), true));
     $tarfile = SIMPLE_STORE . "/backup/" . $rand_str . "--" . urlencode(str_replace("/", "__", $folder_path)) . "--" . sys_date("Y-m-d---H-i-s") . ".tar";
     $cachefile = SIMPLE_CACHE . "/backup/" . $rand_str . "--" . urlencode(str_replace("/", "__", $folder_path)) . "--" . sys_date("Y-m-d---H-i-s") . "_content.xml";
     $files = array();
     file_put_contents($cachefile, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<data>\n", LOCK_EX);
     foreach ($folders as $folder) {
         $data = self::_build_backupdata($folder);
         $files = array_merge($files, $data["files"]);
         sys_file_append($cachefile, $data["output"]);
     }
     sys_file_append($cachefile, "</data>\n");
     $cmd = sys_find_bin("tar") . " -cf " . modify::realfilename($tarfile);
     $files = array_merge(array($cachefile), $files);
     foreach ($files as $file) {
         $cmd .= " " . str_replace("\\", "/", modify::realfilename($file));
     }
     if (DEBUG) {
         self::_out("TAR: " . $cmd . "\n\n");
     }
     echo sys_exec($cmd);
     if (file_exists($cachefile)) {
         unlink($cachefile);
     }
     $message = "{t}Backup{/t}: " . $folder_path . " [" . $bfolder["id"] . "]";
     sys_log_message_log("info", $message);
     self::_out($message);
     return "";
 }
Beispiel #2
0
function sys_log_message($component, $message, $message_trace, $username, $forcedb, $time = 0)
{
    if ($username == "") {
        if (isset($_SESSION["username"])) {
            $username = $_SESSION["username"];
        } else {
            $username = "******";
        }
    }
    if (USE_SYSLOG_FUNCTION) {
        syslog(LOG_WARNING, $_SERVER["SERVER_NAME"] . " (" . $_SERVER["SERVER_ADDR"] . ") " . $component . ", user: "******"\r\n" . $message . "\r\n" . $message_trace . "\r\n");
        return;
    }
    if ($forcedb and defined("SETUP_DB_HOST") and !empty(sys::$db) and (is_resource(sys::$db) or is_object(sys::$db))) {
        $id = sql_genID("simple_sys_events") * 100;
        $row = db_select_first("simple_sys_tree", "id", "ftype=@ftype@", "lft asc", array("ftype" => "sys_events"));
        if (!empty($row["id"])) {
            $error_sql = db_insert("simple_sys_events", array("created" => $time, "servername" => $_SERVER["SERVER_NAME"], "serverip" => $_SERVER["SERVER_ADDR"], "username" => $username, "id" => $id, "component" => $component, "message" => $message, "message_trace" => $message_trace));
            if ($error_sql == "") {
                db_search_update("simple_sys_events", $id, array(), array("created" => "datetime", "component" => "text", "message" => "text", "username" => "text", "serverip" => "text", "servername" => "text"));
            } else {
                echo q($message) . "<br>" . $error_sql . "<br>";
            }
        }
    } else {
        $out = serialize(array($component, str_replace(array("\n", "\r"), "", $message), str_replace(array("\n", "\r"), "", nl2br($message_trace)), $username, NOW));
        // current directory is changed in destructor
        chdir(dirname(__FILE__) . "/../../");
        if (sys_file_append(SIMPLE_CACHE . "/debug/error.txt", $out . "\r\n")) {
            return;
        }
        $message = $_SERVER["SERVER_NAME"] . " (" . $_SERVER["SERVER_ADDR"] . ") " . $component . ", user: "******"\r\n" . $message . "\r\n" . $message_trace . "\r\n";
        echo $message . $message_trace;
        echo q($message);
        @error_log($message, 3, SIMPLE_CACHE . "/debug/php_error.log");
    }
}