windows PHP写的自动备份网站和MYSQL数据

  1. /*********************************************** 
  2. web_backup.php 
  3. ************************************************ 
  4. 说明 
  5. @author 杨军平 
  6. @date    2007年10月 
  7. 针对目前我中心需要承担网站维护工作, 
  8. 但是手工备份及其繁琐效率不高,因此 
  9. 在前人的基础上进行了扩展,实现自动备份 
  10. ************************************************** 
  11. 用法 
  12. 我的php及mysql安装目录为D:\phpstudy\php5 
  13. D:\phpstudy\php5\mysql 
  14. 在D:\phpstudy\php5 
  15. 新建目录winrar,拷贝C:\program files\winrar 
  16. 中winrar.exe 和Rarreg.key到新建的winrar目录中 
  17.  
  18. 在D:\phpstudy\php5 中新建webback.bat文件内容如下 
  19. ************************************************** 
  20. @echo off 
  21. php.exe web_backup.php 
  22. if exist webback_temp.bat call webback_temp.bat 
  23. ftp -i -s:ftp.src 
  24. *************************************************** 
  25. 在windows中新建计划任务定时调用webback.bat 
  26. ***************************************************/  
  27. //ftp配置文件  
  28. $host='111.222.111.222';  
  29. $username="jszx";  
  30. $password="jszxpass";  
  31. $dest="112";  
  32. //数据库配置  
  33. $db_username = "root";   
  34. $db_password = "weoffice";   
  35. //保存目录,路径要用反斜杠.您需要手动建立它.   
  36. $store_folder = 'E:\mysql_back_day_by_day';   
  37. //网站目录  
  38. //$olddir='d:\cache';  
  39.   
  40. $time=time();   
  41. $mysqldir"$store_folder\\"."mysql".date("Ymd",$time)."";  
  42. //$webdir = "$store_folder\\"."web".date("Ymd",$time)."";  
  43. //if(file_exists("$webdir.rar")) die("File exists.\r\n");  
  44. if(file_exists("$mysqldir")) die("File exists.\r\n"); 
  45. //创建mysql备份目录 
  46. @mkdir($mysqldir); 
  47. //生成fpt.src文件 配置ftp 自动上传 
  48. $ftpcommand=''; 
  49. $ftpcommand.="open $host \r\n"; 
  50. $ftpcommand.="$username \r\n"; 
  51. $ftpcommand.="$password \r\n"; 
  52. $ftpcommand.="cd $dest \r\n"; 
  53. //$ftpcommand.="mput $webdir.rar \r\n"; 
  54. $ftpcommand.="mput $mysqldir.rar \r\n"; 
  55. $ftpcommand.="quit \r\n";  
  56. $ftpcommand.="del ftp.src"; 
  57. $fp = fopen('ftp.src','w');  
  58. fwrite($fp,$ftpcommand);  
  59. fclose($fp); 
  60. //创建备份mysql命令 
  61. mysql_connect("localhost","$db_username","$db_password");  
  62. $query=mysql_list_dbs();  
  63. $command = '';  
  64. while($result=mysql_fetch_array($query)){  
  65.   $command .= dirname(__FILE__).'\..\mysql\bin\mysqldump --opt '."$result[Database] -u{$db_username".($db_password?"-p{$db_password}":"")." > $mysqldir\\$result[Database].sql \r\n";  
  66.   $command .= "echo dumping database `$result[Database]`... \r\n";  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.   $command .= "echo Winrar loading...\r\n";  
  73.  
  74.  //压缩mysql备份 
  75. $command .= dirname(__FILE__)."\\WinRAR\\WinRAR.exe a -ep1 -r -o+ -m5 -df \"$mysqldir.rar\" \"$mysqldir\" \r\n";   
  76. //压缩web目录  
  77. //$command .= dirname(__FILE__)."\\WinRAR\\WinRAR a -r  \"$webdir\" \"$olddir\" \r\n";   
  78.   
  79. $command .= "echo OK!\r\n";   
  80.   
  81. $command .= "del webback_temp.bat\r\n";   
  82.   
  83. $fp = fopen('webback_temp.bat','w');   
  84. fwrite($fp,$command);   
  85. fclose($fp);   
  86.   
  87.   
  88. //删除 5 天前的文件,当然也可以考虑保留更多天的备份   
  89. @unlink("$store_folder\\"."mysql".date("Ymd",$time-86400*5).".rar");  
  90. @unlink("$store_folder\\"."web".date("Ymd",$time-86400*5).".rar");   
  91.   
  92. ?> 

你可能感兴趣的:(php应用)