/*************** Act on the action request *************************/ switch ($action) { case 'backup_log': require DIR_FS_MODULES . 'install/functions/install.php'; if (ini_get('max_execution_time') < 20000) { set_time_limit(20000); } $dest_dir = DIR_FS_MY_FILES . 'backups/'; $company_dir = DIR_FS_MY_FILES . $_SESSION['company'] . '/'; $compressed_dbname = 'log-' . $_SESSION['company'] . '-' . date('Ymd'); $db_filename = $compressed_dbname . '.sql'; $db_save_full_path = $dest_dir . $db_filename; if (!is_dir($dest_dir)) { mkdir($dest_dir); } if (!($result = dump_db_table($db, TABLE_AUDIT_LOG, $db_save_full_path, 'both'))) { break; } // compress the company directory unset($output); $backup_mime = 'application/zip'; if (!class_exists('ZipArchive')) { $messageStack->add(GEN_BACKUP_NO_ZIP_CLASS, 'error'); $error = true; break; } $zip = new ZipArchive(); $backup_filename = $compressed_dbname . '.zip'; $res = $zip->open($dest_dir . $backup_filename, ZipArchive::CREATE); if ($res !== true) { $messageStack->add(GEN_BACKUP_FILE_ERROR . $dest_dir, 'error');
// set execution time limit to a large number to allow extra time if (ini_get('max_execution_time') < 20000) { set_time_limit(20000); } // dump db $dest_dir = DIR_FS_MY_FILES . 'backups/'; $company_dir = DIR_FS_MY_FILES . $_SESSION['company'] . '/'; $compressed_dbname = 'db-' . $_SESSION['company'] . '-' . date('Ymd'); $compressed_dirname = 'bu-' . $_SESSION['company'] . '-' . date('Ymd'); $db_filename = $compressed_dbname . '.sql'; $db_temp_full_path = $company_dir . $db_filename; $db_save_full_path = $dest_dir . $db_filename; if (!is_dir($dest_dir)) { mkdir($dest_dir); } if (!($result = dump_db_table($db, 'all', $db_save_full_path, 'both'))) { break; } // compress the company directory unset($output); switch ($conv_type) { case 'bz2': $backup_mime = 'application/x-tar'; if ($dl_type == 'db') { $backup_filename = $db_filename . '.bz2'; exec("cd {$dest_dir}; nice -n 19 bzip2 -k {$db_filename} 2>&1", $output, $res); } else { // compress all $backup_filename = $compressed_dirname . '.tar.bz2'; exec("cp {$db_save_full_path} {$db_temp_full_path}", $output, $res); exec("cd {$dest_dir}; nice -n 19 tar -jcf {$compressed_dirname}.tar.bz2 {$company_dir} 2>&1", $output, $res);
echo '</tr></td></table>'; } } else { echo "<center><br>"; if ($act == "dump") { if ($_POST['dump_table'] != "") { if (!isset($_POST['dump'])) { echo "<form action=\"\" method=\"post\"><input type=\"hidden\" name=\"act_mysql\" value=\"dump\">Dump file name(leave blank for default!):<br><input type=\"hidden\" name=\"dir\" value=\"" . $dir . "\"><input type=\"hidden\" name=\"dump_table\" value=\""; if ($strip_all) { echo htmlspecialchars(stripslashes($_POST['dump_table'])); } else { echo htmlspecialchars($_POST['dump_table']); } echo "\"><input type=\"hidden\" name=\"action\" value=\"connect\"><input type=\"text\" name=\"dump_file\"><br><br><input type=\"submit\" value=\"Dump\" name=\"dump\"></form>"; } else { dump_db_table($_COOKIE['host'], $_COOKIE['username'], $_COOKIE['password'], $_COOKIE['db'], $_POST['dump_table'], $_POST['dump_file'] . ".sql"); } } else { if (!isset($_POST['dump'])) { echo "<form action=\"\" method=\"post\"><input type=\"hidden\" name=\"act_mysql\" value=\"dump\">Dump file name(leave blank for default!):<br><input type=\"hidden\" name=\"dir\" value=\"" . $dir . "\"><input type=\"text\" name=\"dump_file\"><input type=\"hidden\" name=\"action\" value=\"connect\"><br><br><input type=\"submit\" value=\"Dump\" name=\"dump\"></form>"; } else { dump_db($_COOKIE['host'], $_COOKIE['username'], $_COOKIE['password'], $_COOKIE['db'], $_POST['dump_file'] . ".sql"); } } } else { if (!isset($_POST['doquery'])) { echo "<form action=\"\" method=\"POST\"><input type=\"hidden\" name=\"dir\" value=\"" . $dir . "\"><input type=\"hidden\" name=\"action\" value=\"connect\"><input type=\"hidden\" name=\"act_mysql\" value=\"makequery\">SQL code:<br><br><textarea rows=\"10\" cols=\"77\" name=\"eval\"></textarea><br><br><input type=\"submit\" value=\"Execute query\" name=\"doquery\"></form>"; } else { if (mysql_connect($_COOKIE['host'], $_COOKIE['username'], $_COOKIE['password'])) { if (mysql_select_db($_COOKIE['db'])) { if ($strip_all) {
function copy_db_table($source_db, $table_list, $temp_file, $copy_type = 'data', $params = '') { if (is_array($table_list)) { foreach ($table_list as $table) { if (!dump_db_table($source_db, $table, $temp_file, $copy_type, $params)) { return false; } if (!load_db_table($temp_file)) { return false; } } } return true; }