public function testRespaldarBD() { $numero_respaldos_original = count(glob(POS_PATH_TO_SERVER_ROOT . "/../static_content/db_backups/{*}", GLOB_BRACE)); $this->assertNull(InstanciasController::Respaldar_Instancias(array(IID))); $numero_respaldos_modificado = count(glob(POS_PATH_TO_SERVER_ROOT . "/../static_content/db_backups/{*}", GLOB_BRACE)); $this->assertGreaterThan($numero_respaldos_original, $numero_respaldos_modificado); }
public function testRespaldarBD() { echo " >> Intentando respaldar la base de datos\n"; if (is_null(InstanciasController::Respaldar_Instancias(json_encode(array(self::$instance_id))))) { echo "\tRespaldo exitoso\n"; } else { echo "\tSe ha producido un error al realizar el respaldo\n"; $this->assertTrue(false); } }
set_time_limit(0); $ids = json_decode($_GET["instance_ids"]); $ids = $ids->instance_ids; $prefix = time() . rand(); $files = array(); $file_id = array(); for ($i = 0; $i < sizeof($ids); $i++) { //validar que existan $r = InstanciasController::BuscarPorId($ids[$i]); if (is_null($r)) { $page->addComponent("La instancia " . $ids[$i] . " no existe"); $page->render(); exit; } } $result = InstanciasController::Respaldar_Instancias($ids); //Respaldar_Instancias recibe como params un array if (strlen($result) > 0) { die("<html><head><meta HTTP-EQUIV='REFRESH' content='3; url=instancias.bd.php'><title>Error al descargar, perimisos</title></head><body><h1><center>" . $result . "</center></h1></body></html>"); } $f = new zipfile(); for ($i = 0; $i < sizeof($ids); $i++) { //$f->add_file(file_get_contents($files[$i]), $file_id[$i] . ".sql"); $final_path = str_replace("server", "static_content/db_backups", POS_PATH_TO_SERVER_ROOT); $dbs_instance = trim(shell_exec("ls -lat -m1 " . $final_path . "| grep " . $ids[$i] . ".sql")); Logger::log("Respaldos encontrados: " . $dbs_instance); /*dbs_instance almacena una cadena con un listado donde se encuentran archivos que tengan la teminacion con el id de la instancia y .sql, ademas de que la lista viene ordenada de mas reciente a antiguo la lista seria como lo siguiente: 1353617611_pos_instance_82.sql 1353608687_pos_instance_82.sql 1353608206_pos_instance_82.sql 1353608191_pos_instance_82.sql en found se coloca un array y en cada posicion el nombre de cada respaldo
/** * * Genera un scrip .sql en el servirdor de los id de instancia que reciba este metodo * * @param instance_ids json Lista de los id de las instancias a respaldar * @return status string Respuesta enviada del servidor * @return mensaje string Mensaje de respuesta del servidor * */ public static function BdInstanciasRespaldarBd($instance_ids) { //var_dump($instance_ids); //$x = json_decode($instance_ids); $res = InstanciasController::Respaldar_Instancias($instance_ids); if (!is_null($res)) { return array("status" => "failure", "mensaje" => "{$res}"); } return array("status" => "ok", "mensaje" => "Funcion vacia"); }