如何自动备份你的网站数据

转载自品略图书馆  http://www.pinlue.com/article/2020/03/2605/4410055031338.html

 

前端时间主机提供商服务器发生了问题,让人郁闷的事是将数据恢复到了一星期以前,导致好些博客数据丢失。

痛定思痛,想出了一个自动备份网站数据的方法。

1. 在服务器上实现数据转成SQL

为了实现服务器上的数据转成SQL脚本,需要在服务器上放一个PHP文件,这个PHP文件的目的是连接到数据库,然后将数据读取出来,最后再转成SQL。例如,我们放一个tosql.php文件在服务器htdocs目录,内容如下:

<?phperror_reporting(E_ALL & ~E_NOTICE);include_once "application/configs/dbconfig.php";include_once "application/includes/db.class.php";header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");header("Last-Modified: " . gmdate( "D, d M Y H:i:s") . " GMT");header("Cache-Control: no-store, no-cache, must-revalidate");header("Cache-Control: post-check=0, pre-check=0", false);header("Pragma: no-cache");header("Content-type: text/plain; charset=utf-8");$db = new db();$db->connect($config["db"]["host"], $config["db"]["user"], $config["db"]["pass"]);$db->select_db($config["db"]["name"]);$db->query("set names utf8");$sqldump = "";// 我的表名都以tbs_开头$sql = "SHOW TABLE STATUS WHERE name like "tbs_%"";$query = $db->query($sql);while($table = $db->fetch_array($query)) { $sqldump .= sql_dumptable($table["Name"]);}echo $sqldump; function sql_dumptable($table) { global $db; $tabledump = "DROP TABLE IF EXISTS $table;\n"; $createtable = $db->query("SHOW CREATE TABLE $table"); $create = $db->fetch_array($createtable); $tabledump .= $create[1].";\n\n"; $rows = $db->query("SELECT * FROM $table"); $numfields = $db->num_fields($rows); $numrows = $db->num_rows($rows); while ($row = $db->fetch_array($rows)) { $comma = ""; $tabledump .= "INSERT INTO $table VALUES("; for($i = 0; $i < $numfields; $i++){ $tabledump .= $comma.""".mysql_escape_string($row[$i])."""; $comma = ","; } $tabledump .= ");\n"; } $tabledump .= "\n"; return $tabledump;}

 

2. 在本地新增一个PHP文件,目的是从服务器上获取SQL基本,然后写入到本地文件。这个PHP文件取名为nextdata.php,内容如下:

<?php$filename = dirname(__FILE__) . "/data/tbs_" . date("YmdHis", mktime() +3600 * 8) . ".sql";$sqldump = file_get_contents("http://www.nextphp.com/tosql.php");

file_put_contents($filename, $sqldump);

3. 实现定时备份

本地使用的是Windows操作系统,可以使用计划任务定时的执行备份任务,这样需要一个批处理文件。批处理文件名称为nextdata.bat,内如如下:

D:\wamp\bin\php\php5.3.5\php nextdata.php

经过上述三个步骤后,我们的计划任务就会定时的执行服务器上的tosql.php文件,然后将其内容写入到本地,从而实现了数据库的备份任务。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值