mysql自动备份的实现方法

2010.07.19 请收藏本站地址:geekfei.cn

文/蒹葭苍苍整理

    让服务器每天备份一次 mysql 数据库并自动打包,同时删除 30 天前的备份文件。
1. 环境: Windows + Apache + PHP + MySQL
2. 假设 PHP 安装目录为 D:/php,MySQL 安装目录为 D:/mysql
3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 Rarreg.key 复制到 D:/php/WinRAR
4. D:/php 下建立文件 mysql_backup.php
5. D:/php 下建立文件 mysql_backup.bat,内容只有一句

  php.exe mysql_backup.php

6. 双击该 bat 文件运行,如果能备份了,下一步添加任务计划
7. 把 D:/php/mysql_backup.bat 添加到任务计划,时间自己定吧

    mysql_backup.php 文件代码如下:

<?
function copyDir($dirFrom,$dirTo)  {
 //如果遇到同名文件无法复制,则直接退出
 if(is_file($dirTo)){
  echo(“无法建立目录 $dirTo\n”);
 }
 //如果目录不存在,则建立之
 if(!file_exists($dirTo)){
  mkdir($dirTo);
 }
 $handle = opendir($dirFrom);
 //打开当前目录
 readdir($handle); //排除”.”
 readdir($handle); //排除 “..”
 //循环读取文件
 while (false !== ($file = readdir($handle))) {
  //生成源文件名
  $fileFrom = $dirFrom . DIRECTORY_SEPARATOR .$file;
  //生成目标文件名
  $fileTo = $dirTo .DIRECTORY_SEPARATOR .$file;
  if(is_dir($fileFrom)){
   //如果是子目录,则进行递归操作
   copyDir($fileFrom,$fileTo);
  }
  else {
   //如果是文件,则直接用copy函数复制
   @copy($fileFrom,$fileTo);
  }
 }
}
 
//保存目录,路径要用反斜杠.您需要手动建立它.
//$store_folder = dirname(__FILE__).’\autobackup’;
$store_folder = ‘D:\MysqlAutoBakup’;
 
//用户名和密码
//该帐号须有操作[所有]的数据库及FILE的权限
//否则有些数据库不能备份.
$db_username = “root”;
$db_password = “”;
 
$time=time();
 
$nowdir = “$store_folder\\”.date(“Ymd”,$time).””;
if(is_dir($nowdir)) @rmdir($nowdir);//die(“directory  exists.\n”);
if(file_exists(“$nowdir.rar”)) @unlink(“$nowdir.rar”);//die(“file exists.\n”);
@mkdir($nowdir);
 
$result_link=mysql_connect(“localhost”,”$db_username”,”$db_password”);
$query=mysql_list_dbs();
 
while($result=mysql_fetch_array($query)){
 echo “dumping database `$result[Database]`,wait for a minute please…\n”;
 system (dirname(__FILE__).’\..\mysql\bin\mysqldump –opt ‘.”$result[Database] -u{$db_username} “.($db_password?”-p{$db_password}”:””).” > $nowdir\\$result[Database].sql”);
}
echo “\npackage database files right now ,please wait…\n”;
 
system( dirname(__FILE__).”\\WinRAR\\WinRAR.exe a -ep1 -r -o+ -m5 -df \”$nowdir.rar\” \”$nowdir\” ” );
 
//删除 30 天前的文件
@unlink(“$store_folder\\”.date(“Ymd”,$time-86400*30).”.rar”);
 
echo “\nOK!\n”;
?>
阅 3,762

  1. 2010.07.19 - admin

    我自己已经测试成功了的。

    免费杀毒软件似乎成为一个趋势,也相信在未来,会有越来越多的安全产品商加入免费的阵列。虽然免费产品较专业的高端产品有一段的差距,但是不可否认地世界上也存在很多需要免费产品的用户。免费成为必然,免费与收费共存更是必然。更有可能的是,未来公司企业、专业用户用的还会是付费的专业高端版本,而家庭普通消费者可能有更多的选择,比如下面十个免费杀毒软件,其中有些就已经很优秀的了。

1.Fortinet 4.1.0

    杀毒软件Fortinet,中国用户称之为“飞塔”,来自美国加州Sunnyvale。Fortinet具有多层网络威胁防御体系,在监控水平和查杀能力上,并不逊于大家常用的其它免费杀毒软件。在如今杀毒软件“免费”大潮的冲击下,“飞塔”也推出了Forti Client免费版,无需任何序列号即可安装并享用全功能:防病毒、防火墙、网页过滤、广域网优化等。现提供Fortinet最新版本V 4.1.2.138多国语言版(含简体中文)下载如下——

阅读全文——共2668字