Пример #1
0
 function startBackup($params, &$nexturl)
 {
     set_time_limit(0);
     header("Content-type:text/html;charset=utf-8");
     $sizelimit = $params['sizelimit'];
     $filename = $params['filename'];
     $fileid = $params['fileid'];
     $tableid = $params['tableid'];
     $startid = $params['startid'];
     include_once CORE_DIR . '/lib/mysqldumper.class.php';
     $dumper = new Mysqldumper(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
     $dumper->setDroptables(true);
     $dumper->tableid = $tableid;
     $dumper->startid = $startid;
     $backdir = HOME_DIR . '/backup';
     $finished = $dumper->multiDump($filename, $fileid, $sizelimit, $backdir);
     $fileid++;
     if (!$finished) {
         $nexturl = "index.php?ctl=system/backup&act=backup&sizelimit={$sizelimit}&filename={$filename}&fileid={$fileid}&tableid=" . $dumper->tableid . "&startid=" . $dumper->startid;
     } else {
         $dir = HOME_DIR . '/backup';
         $tar = $this->system->loadModel('utility/tar');
         chdir($dir);
         for ($i = 1; $i <= $fileid; $i++) {
             $tar->addFile('multibak_' . $filename . '_' . $i . '.sql');
         }
         //Add archive xml
         $verInfo = $this->system->version();
         $backupdata['app'] = $verInfo['app'];
         $backupdata['rev'] = $verInfo['rev'];
         $backupdata['vols'] = $fileid;
         $xml = $this->system->loadModel('utility/xml');
         $xmldata = $xml->array2xml($backupdata, 'backup');
         file_put_contents('archive.xml', $xmldata);
         $tar->addFile('archive.xml');
         $tar->filename = 'multibak_' . $filename . '.tgz';
         $tar->saveTar();
         for ($i = 1; $i <= $fileid; $i++) {
             @unlink('multibak_' . $filename . '_' . $i . '.sql');
         }
         @unlink('archive.xml');
     }
     return $finished;
 }
Пример #2
0
</table>
</FORM>
<br><hr><br>

<?php 
set_time_limit(0);
include_once '../config/config.php';
include_once './mysql_db.php';
$dbHost = DB_HOST;
$dbUser = DB_USER;
$dbPass = DB_PASSWORD;
$dbName = DB_NAME;
$GLOBALS['_tbpre'] = DB_PREFIX;
define('MYSQL_CHARSET_NAME', DB_CHARSET);
if ($_REQUEST["action"] == 'backup') {
    $dumper = new Mysqldumper($dbHost, $dbUser, $dbPass, $dbName);
    $dumper->setDroptables(true);
    $dumper->nodata = array();
    if (!$_REQUEST['inited']) {
        $fileid = 0;
        $tableid = 0;
        $startid = -1;
        rptout("开始数据库备份...\n");
    } else {
        $dumper->tableid = $_REQUEST['tableid'];
        $dumper->startid = $_REQUEST['startid'];
        $fileid = $_REQUEST['fileid'];
    }
    $finished = $dumper->multiDump($filename, $fileid, $savetype, 1024);
    $fileid++;
    rptout("数据库备份文件 data_" . $fileid . ".sql 已生成\n");
Пример #3
0
 if (!is_writable(rtrim($modx->config['snapshot_path'], '/'))) {
     $modx->webAlertAndQuit(parsePlaceholder($_lang["bkmgr_alert_mkdir"], array('snapshot_path' => $modx->config['snapshot_path'])));
 }
 $sql = "SHOW TABLE STATUS FROM `{$dbase}` LIKE '" . $modx->db->escape($modx->db->config['table_prefix']) . "%'";
 $rs = $modx->db->query($sql);
 $tables = $modx->db->getColumn('Name', $rs);
 //$today = $modx->toDateFormat(time());
 //$today = str_replace(array('/',' '), '-', $today);
 //$today = str_replace(':', '', $today);
 //$today = strtolower($today);
 $today = date('Y-m-d_H-i-s');
 global $path;
 $path = "{$modx->config['snapshot_path']}{$today}.sql";
 @set_time_limit(120);
 // set timeout limit to 2 minutes
 $dumper = new Mysqldumper($database_server, $database_user, $database_password, $dbase);
 $dumper->setDBtables($tables);
 $dumper->setDroptables(true);
 $dumpfinished = $dumper->createDump('snapshot');
 $pattern = "{$modx->config['snapshot_path']}*.sql";
 $files = glob($pattern, GLOB_NOCHECK);
 $total = $files[0] !== $pattern ? count($files) : 0;
 arsort($files);
 while (10 < $total && $limit < 50) {
     $del_file = array_pop($files);
     unlink($del_file);
     $total = count($files);
     $limit++;
 }
 if ($dumpfinished) {
     $_SESSION['result_msg'] = 'snapshot_ok';
Пример #4
0
}
if ($mode == 'backup') {
    $tables = isset($_POST['chk']) ? $_POST['chk'] : '';
    if (!is_array($tables)) {
        echo '<html><body>' . '<script type="text/javascript">alert(\'Please select a valid table from the list below\');</script>' . '</body></html>';
        exit;
    }
    /*
     * Code taken from Ralph A. Dahlgren MySQLdumper Snippet - Etomite 0.6 - 2004-09-27
     * Modified by Raymond 3-Jan-2005
     * Perform MySQLdumper data dump
     */
    @set_time_limit(120);
    // set timeout limit to 2 minutes
    $dbname = str_replace('`', '', $dbase);
    $dumper = new Mysqldumper($database_server, $database_user, $database_password, $dbname);
    $dumper->setDBtables($tables);
    $dumper->setDroptables(isset($_POST['droptables']) ? true : false);
    $dumpfinished = $dumper->createDump('callBack');
    if ($dumpfinished) {
        exit;
    } else {
        $e->setError(1, 'Unable to Backup Database');
        $e->dumpError();
        exit;
    }
    // MySQLdumper class can be found below
} else {
    include_once "header.inc.php";
    // start normal header
}
Пример #5
0
<?php

include_once SITE_CLASS_GEN . "class.backup.php";
$action = PostVar('action');
switch ($action) {
    case "tableBackup":
        # Variables have replaced original hard-coded values
        $dumper = new Mysqldumper(SITE_SERVER, SITE_USERNAME, SITE_PASS, SITE_DB);
        $dumper->setDBtables($chk);
        $dumpfinished = $dumper->createDump("callBack");
        $msg = rawurlencode("Database Saved Successfully ");
        header("Location:index.php?file=ge-fullbkup&view=edit&AX=Yes&var_msg={$msg}");
        exit;
    case "filedownload":
        if (!headers_sent()) {
            ob_clean();
            ob_flush();
            header('Content-type: application/download');
            header('Content-Disposition: attachment; filename=' . PostVar('filedown'));
            readfile(BACKUP_DBPATH . PostVar('filedown'));
            exit;
        }
        break;
    case "delete_db_file":
        for ($i = 0; $i < count($_POST[chkFull]); $i++) {
            $fileName = BACKUP_DBPATH . $_POST['chkFull'][$i];
            @unlink($fileName);
        }
        $msg = rawurlencode("DB backup file has been Deleted successfully.");
        header("Location:index.php?file=ge-fullbkup&view=edit&AX=Yes&var_msg={$msg}");
        exit;
Пример #6
0
<?php

ob_clean();
include_once $CFG->dirroot . "/lib/classes/" . "application/Backup.Class.php5";
$dumper = new Mysqldumper($SERVER, $USERNAME, $PASSWORD, $DBASE);
$mode = $_POST[mode];
$chk = $_POST[chk];
$memfileNames = $_POST[memfileNames];
$currPath = $_POST[currPath];
##OPTIMIZE
if ($mode == "optimize_mem") {
    $obj->DB_table_optimize($_POST[tableOp]);
    $msg = "Table optimization has been Optmized successfully.";
    header("Location:index.php?file=t-tablebackup&var_msg=" . $msg . "");
    exit;
}
##DELETE
if ($mode == "delete_db_file") {
    for ($i = 0; $i < count($_POST[chkFull]); $i++) {
        $fileName = $site_backup_path . $_POST[chkFull][$i];
        @unlink($fileName);
    }
    $msg = rawurlencode("Database backup file has been Deleted successfully.");
    header("Location:index.php?file=t-backup&TabId=2&var_msg=" . $msg . "");
    exit;
}
##TABLE BACKUP
if ($mode == "tableBackup") {
    # Variables have replaced original hard-coded values
    $dumper->setDBtables($chk);
    if ($_POST[btnDownload] == "btnDownload") {
Пример #7
0
 function backup()
 {
     $dumper = new Mysqldumper(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
     $dumper->setDroptables(true);
     $dumper->nodata = array();
     #
     if ($_POST['type'] == 'shoponly') {
         $dumper->backuptype = 'shoponly';
     }
     #
     $fileid = 0;
     $this->backupfileprefix = date("YmdHis", time());
     msg("开始数据库备份...\n");
     do {
         $backupfilename = $this->backupfileprefix . "_" . ($fileid + 1) . ".sql";
         $bakfile = "{$this->backupdir}/{$backupfilename}";
         $finished = $dumper->multiDump($bakfile, $fileid, 1024);
         $fileid++;
         msg("数据库备份文件 {$backupfilename} 已生成\n");
     } while (!$finished);
     msg("<hr><font color=green>数据库备份完毕</font>\n");
 }