前台一键备份数据库+PHP实现方式

一、实现思路

1、单击备份按钮传递参数到后台,ajax实现:

function backupDatabase(){var back = 'backupDatabase';$.ajax({url:'system_backup.php?do=backupDatabase',type:'POST',data:back,dataType:'json',beforeSend:function(){interval=window.setInterval(function(){var text = $("#backupstate2").html();if(text.length<4){$("#backupstate2").html('数据库备份中.');  }var text = $("#backupstate2").html();if (text.length < 9){$("#backupstate2").html(text + '.');                    } else {$("#backupstate2").html('数据库备份中.');             }}, 200);},success:function(data){if(data.msg=='1'){$("#backupstate2").html('数据备份完成!'); alert('备份成功.点击确定后,请立刻单击下载备份数据库!');$("#db_url").val(data.url);window.clearInterval(interval);}else{alert(data.msg); $("#backupstate2").html(''); window.clearInterval(interval);}}});
}

2、后台接受参数后进行数据库备份

header("Content-Type: text/html; charset=utf-8");
require_once('../configs/config.php');
require_once("../models/websurvey/webSurvey.class.php");
SysUser::authIsLogin("../login.php");
$user = new SysUser();
if(!empty($_GET['do'])){$do = $_GET['do'];switch($do){case "backupDatabase":$data = $_POST['back'];if('backupDatabase' == $data){// 设置SQL文件保存文件名 $cfg_dbname = 'asteriskcdrdb';$filename=date("Ymd",time())."-".$cfg_dbname.".sql"; // 获取当前页面文件路径,SQL文件就导出到指定文件夹内// $savePath = './Public/upload/DB/';$savePath = '../upload/DB/';if(!file_exists($savePath)){mkdir($savePath,0777,true);}$tmpFile = $savePath.$filename;fopen($tmpFile, "r");chmod($tmpFile,0777);/* //删除之前备份的数据$dh=opendir($savePath); if($dh){while ($file=readdir($dh)) { if($file!="." && $file!="..") { $fullpath=$savePath."/".$file; if(!is_dir($fullpath)) { unlink($fullpath); }} } closedir($dh);} //删除之前备份的数据*/// 用MySQLDump命令导出数据库$dbhost = '***.***.***.***';//主机IP地址$cfg_dbuser = 'root';//用户名$cfg_dbpwd = '******';//密码$bool_dump = exec("mysqldump -h$dbhost -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > ".$tmpFile);if(0 == $bool_dump){$bool_tar = exec("tar -zcvPf /var/spool/asterisk/monitor/system/backup/db.tar /var/spool/asterisk/monitor/upload/DB/$filename");if(0 == $bool_tar){$arr = json_encode(array('msg'=>1,'url'=>$filename));echo $arr;}else{$arr = json_encode(array('msg'=>'备份失败,请联系管理员!'));echo $arr;}}}exit;}default:break;}
}

三、效果图:

1、备份前
这里写图片描述

2、备份中
这里写图片描述

3、备份成功
这里写图片描述

4、下载备份数据库
这里写图片描述

四、注意

1、注意:不同的框架实现的方式不同,但都是大同小异。
2、注意php的exec()函数,执行成功后的返回值是0。
3、除了exec()外,还有system()、passthru()、shell_exec()、执行运算符:反引号(“)等等,根据自己的需要进行选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows+PHP+shell_exec()无法执行的原因

今天使用shell_exec()命令执行wkhtmltopdf.exe 生成pdf文件时&#xff0c;总是无法生成PDF文件&#xff0c;使用var_dump()打印返回值&#xff0c;结果是null。可是检查代码并没有什么问题啊&#xff1f;执行程序的目录是 D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe …

通过wkhtmltopdf导出支持CSS样式的pdf文件

在公司项目中发现有下载pdf文件的功能&#xff0c;但是不能识别CSS样式&#xff0c;导致下载的pdf文件格式显得很别扭&#xff0c;虽然能看但是难看。然后就是百度啊&#xff0c;google啊&#xff0c;最后找到一款能够识别CSS样式的软件—wkhtmltopdf。wkhtmltopdf可以直接把任…

【算法基础笔记】常用的排序算法的时间、空间复杂度,部分排序算法原理

冒泡排序 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。对每一对相邻元素做同样的工作&#xff0c;从开始第一对到结尾的最后一对。在这一点&#xff0c;最后的元素应该会是最大的数。针对所有的元素重复以上的步骤&#xff0c;除了最后一个。持续每次对越…

windows定时任务

在windows系统中创建定时任务&#xff0c;与在linux中创建定时任务是不同的。因为平时会用到windows的定时任务&#xff0c;所以在这里做个记录&#xff0c;同事给小伙伴们一个参考。 一、windows定时任务的工作流程 1、首先创建一个批处理脚本&#xff0c;就是扩展名为bat的…

jQuery教程05-层级选择器

jQuery选择器之层级选择器 文档中的所有的节点之间都是有这样或者那样的关系。我们可以把节点之间的关系可以用传统的家族关系来描述&#xff0c;可以把文档树当作一个家谱&#xff0c;那么节点与节点直接就会存在父子&#xff0c;兄弟&#xff0c;祖孙的关系了。 选择器中的…

jQuery教程06-基本筛选选择器

jQuery选择器之基本筛选选择器 很多时候我们不能直接通过基本选择器与层级选择器找到我们想要的元素&#xff0c;为此jQuery提供了一系列的筛选选择器用来更快捷的找到所需的DOM元素。筛选选择器很多都不是CSS的规范&#xff0c;而是jQuery自己为了开发者的便利延展出来的选择…

jQuery教程07-内容筛选选择器

jQuery选择器之内容筛选选择器 基本筛选选择器针对的都是元素DOM节点&#xff0c;如果我们要通过内容来过滤&#xff0c;jQuery也提供了一组内容筛选选择器&#xff0c;当然其规则也会体现在它所包含的子元素或者文本内容上 内容过滤器描述如下表&#xff1a; 注意事项&…

Apache服务器下载、安装、启动、关闭及卸载(win版)

今天讲一下64位win7环境下apache服务器的下载、安装及配置的过程。 1、Apache的下载 百度搜索apache&#xff0c;然后单击选择的下载网站&#xff1a; 我选择的是第一个网站&#xff0c;第二个也可以。 进入之后&#xff0c;确定下载的apache版本&#xff0c;这里选择2.4…

Navicat导入Excel表格数据

现在使用图像化工具来管理数据库是越来越方便了&#xff0c;PhpMyAdmin和Navicat都是管理数据库的好工具&#xff0c;这里我记录一下使用Navicat导入xls表格数据的方法。大家可以作为参考。 1、查看一下导入的表格&#xff0c;注意第一行是字段名&#xff08;也可以不要第一行…

MySQL5.7数据库软件下载教程

1、搜索MySQL 2、选择MySQL社区开源版本 3、单击下载社区版 4、选择所需版本-这里选择安装版 5、单击Download 6、建立Oracle账户/登录Oracle账户 注意&#xff1a;这里就不注册了&#xff0c;直接登录。 7、填写信息 8、单击下载MySQL数据库安装包 9…

后台传参与select-option标签的默认选中

从后台传递过来的参数是数据的详情页&#xff0c;在编辑页的select下拉框汇总既要显示所有的选项&#xff0c;又要默认显示选中项&#xff0c;后台传递过来的value值与option的value值相同时就默认选中&#xff08;即给option标签添加selected”selected”属性&#xff09;。 …

jQuery教程08-属性筛选选择器

jQuery选择器之属性筛选选择器 属性选择器让你可以基于属性来定位一个元素。可以只指定该元素的某个属性&#xff0c;这样所有使用该属性而不管它的值&#xff0c;这个元素都将被定位&#xff0c;也可以更加明确并定位在这些属性上使用特定值的元素&#xff0c;这就是属性选择…

有关Canvas的一点小事—图像绘制

1、 使用canvas绘制图像 什么是图像&#xff1f;在js中它就是一个<img src””>&#xff0c;<img>有两种接收图像信息的方法&#xff0c;一个是直接链接到图像地址&#xff0c;一个使用base64数据&#xff0c;不过这里讨论的是canvas要使用的Image对象。我们有两个…

jQuery教程09-子元素筛选选择器

jQuery选择器之子元素筛选选择器 子元素筛选选择器不常使用&#xff0c;其筛选规则比起其它的选择器稍微要复杂点 子元素筛选选择器描述表&#xff1a; 注意&#xff1a; :first只匹配一个单独的元素&#xff0c;但是:first-child选择器可以匹配多个&#xff1a;即为每个父…

关于ppt中嵌入echarts图表

1.首先需要PPT2013版本以上带有开发工具&#xff0c;能够添加microsoft web browser控件 2.将echarts图表的html代码中加载 <meta http-equiv"X-UA-Compatible" content"IEEmulateIE*"/>代码&#xff08;*处至少为9或以上&#xff09;&#xff0c;将…

jQuery教程10-表单元素选择器

无论是提交还是传递数据&#xff0c;表单元素在动态交互页面的作用是非常重要的。jQuery中专门加入了表单选择器&#xff0c;从而能够极其方便地获取到某个类型的表单元素。 表单选择器的具体方法描述&#xff1a; 注意&#xff1a; 除了input筛选选择器&#xff0c;几乎每…

在windows系统和linux系统中查询IP地址命令的不同

在linux和windows系统上查询IP地址的命令是不一样的。 在linux中的命令行模式下&#xff0c;输入ifconfig即可查询到IP。而在windows系统下要查询IP地址需要先打开dos命令行&#xff0c;然后输入ipconfig。回车即可。 注意&#xff0c;两个命令时不一样的&am…

JavaScript实现复选框的全选/全不选和批量选择

实现数据的批量选择以及全选/全部选功能的效果如下所示&#xff1a; 代码如下&#xff1a; <a class"btn btn-default" id"search_like" style"margin-right: 5px;">搜索</a> <a class"btn btn-success" id"s…

Python魔术世界 1 如何使用Visual Studio在WIN10中一键安装Python3入门编程环境并测试Django...

本文通过VS安装Python和Django的环境&#xff0c;创建了一个Web程序&#xff0c;前后5分钟的操作&#xff0c;让你快速入门Python的编程世界&#xff0c;各种Python和Django的概念会在实战中给你娓娓道来。 Django其实就是使用Python写的网站生成器半成品网站。其提供了一些非常…

win10 无法连接路由器共享设备 报错0X80004005

用路由器挂了个硬盘&#xff0c;win10无法用文件夹访问&#xff0c;试了各种方法都没用&#xff0c;后来才发现是windows的‘SMB 1.0/CIFS 文件共享支持’未开启&#xff0c;启用后重启电脑就可以了。 具体步骤&#xff1a; 控制面板 - 程序和功能 - 启用或关闭Windows功能 打勾…