分享

PHP 备份脚本 | hackerzhou's blog

 小小243 2014-05-20

先感谢国家,后感谢某位我至今未曾谋面的同学。

昨天半改半写了php打包备份文件&备份数据库的小东东,代码不多,高手看了估计会笑话,用了一个开源的Zip类库pclzip,感觉挺方便的,不过压缩zip容易脚本超时,解决的方法就是把备份任务拆分,用header函数转向到子任务,像一个单向链表一样就可以了。

Mysql打包压缩代码(备份出来的文件可以用phpMyAdmin/mysqldump/MySQLAdministrator导入):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
$host="##mysql服务器地址##";
$user="##登录账号##";
$password="##登录密码##";
$dbname="##数据库名##";
$filename="##备份文件路径##";
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql.="CREATE DATABASE IF NOT EXISTS `".$dbname."`;\r\n";
$mysql.="USE `".$dbname."`;\r\n\r\n";
$q0=mysql_query("set names utf8");
$q1=mysql_query("show tables");
while($t=mysql_fetch_array($q1)){
  $table=$t[0];
  $mysql.="DROP TABLE IF EXISTS `".$table."`;\r\n";
  $q2=mysql_query("show create table `$table`");
  $sql=mysql_fetch_array($q2);
  $mysql.=$sql['Create Table'].";\r\n\r\n";
  $q3=mysql_query("select * from `$table`");
  while($data=mysql_fetch_assoc($q3)){
    $keys=array_keys($data);
    $keys=array_map('addslashes',$keys);
    $keys=join('`,`',$keys);
    $keys="`".$keys."`";
    $vals=array_values($data);
    $vals=array_map('addslashes',$vals);
    $vals=join("','",$vals);
    $vals="'".$vals."'";
    $mysql.="insert into `$table`($keys) values($vals);\r\n";
  }
  $mysql.="\r\n";
}
$fp = fopen($filename,'wb');
fputs($fp,$mysql);
fclose($fp);
include_once('lib/pclzip.lib.php');
$archive = new PclZip($filename.'.zip');
$v_list = $archive->create($filename);
if ($v_list == 0) {
   die("Error : ".$archive->errorInfo(true));
}
if(file_exists($filename)){
   unlink($filename);
}
echo "Mysql's backup successfully to ".$filename.".zip";
?>

Zip打包备份代码,几乎就是全抄demo,太方便了:

1
2
3
4
5
6
7
8
9
10
11
12
<?PHP
include_once('lib/pclzip.lib.php');
$src="##源路径##";
$dest="##目标zip路径##";
$archive = new PclZip($dest);
$v_list = $archive->create($src);
if ($v_list == 0) {
   die("Error : ".$archive->errorInfo(true));
}else{
     print("Success");
}
?>

源代码已经Upload到Google Code http://hackerzhou./files/PHPBackupScript.rar

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多