全球主机交流论坛

标题: 我来发个自用的数据库和文件的异地备份PHP代码 [打印本页]

作者: l12ab    时间: 2011-9-26 21:56
标题: 我来发个自用的数据库和文件的异地备份PHP代码
自用的,将以下代码保存为php文件,然后cron定时执行。需准备另外一个FTP机器存放备份

这个是备份MYSQL数据库的
  1. <?php
  2. //本地备份目录
  3. $localdir='/var/www/backup';

  4. //远程FTP目录
  5. $ftpdir='/mybackup/';

  6. //FTP信息
  7. $ftp_server='FTP服务器的域名或IP';
  8. $ftp_user='FTP账号';
  9. $ftp_pass='FTP密码';


  10. $stamp=date("Y-m-d",time());
  11. shell_exec("cd $localdir;mysqldump -u数据库账号 -p数据库密码 数据库名 > 163com_db_$stamp.sql;bzip2 -z -9 -f 163com_db_$stamp.sql;");


  12. //FTP上传文件
  13. $filename="163com_db_$stamp.sql.bz2";
  14. if(empty($filename)){
  15.         //ftpupload('1.txt');
  16.         exit;
  17. }elseif(!file_exists($localdir.'/'.$filename)){
  18.         //ftpupload('2.txt');
  19.         exit;
  20. }else{
  21.         //上传开始
  22.         ftpupload($filename);
  23.         exit;
  24. }

  25. function ftpupload($filename){
  26.         global $localdir, $ftpdir, $ftp_server, $ftp_user, $ftp_pass;
  27.         $source_file=$localdir.'/'.$filename;
  28.         $destination_file=$ftpdir.$filename;

  29.         $conn_id=ftp_connect($ftp_server) or die("不能连接到FTP服务器");
  30.         $login_result=ftp_login($conn_id,$ftp_user,$ftp_pass);

  31.         if(!$conn_id||!$login_result){
  32.                 echo 'FTP服务器连接错误';
  33.                 exit;
  34.         }else{
  35.         }
  36.         ftp_pasv($conn_id,false);
  37.         ftp_put($conn_id,$destination_file,$source_file,FTP_BINARY) or die("不能连接到FTP服务器");
  38.         ftp_close($conn_id);
  39.         //删除本地备份
  40.         unlink($localdir.'/'.$filename);
  41. }
  42. ?>
复制代码

[ 本帖最后由 l12ab 于 2011-9-26 22:02 编辑 ]
作者: l12ab    时间: 2011-9-26 21:58
这个是备份网站文件的
  1. <?php
  2. //本地备份目录
  3. $localdir='/var/www/backup';

  4. //远程FTP目录
  5. $ftpdir='/mybackup/';

  6. //FTP信息
  7. $ftp_server='FTP服务器的域名或IP';
  8. $ftp_user='FTP账号';
  9. $ftp_pass='FTP密码';


  10. $stamp=date("Y-m-d",time());
  11. shell_exec("cd /var/www/163.com;tar -cvf 163com_web_$stamp.tar *;mv 163com_web_$stamp.tar $localdir/163com_web_$stamp.tar;cd $localdir;bzip2 -z -9 -f 163com_web_$stamp.tar;");


  12. //FTP上传文件
  13. $filename="163com_web_$stamp.tar.bz2";
  14. if(empty($filename)){
  15.         //ftpupload('1.txt');
  16.         exit;
  17. }elseif(!file_exists($localdir.'/'.$filename)){
  18.         //ftpupload('2.txt');
  19.         exit;
  20. }else{
  21.         //上传开始
  22.         ftpupload($filename);
  23.         exit;
  24. }

  25. function ftpupload($filename){
  26.         global $localdir, $ftpdir, $ftp_server, $ftp_user, $ftp_pass;
  27.         $source_file=$localdir.'/'.$filename;
  28.         $destination_file=$ftpdir.$filename;

  29.         $conn_id=ftp_connect($ftp_server) or die("不能连接到FTP服务器");
  30.         $login_result=ftp_login($conn_id,$ftp_user,$ftp_pass);

  31.         if(!$conn_id||!$login_result){
  32.                 echo 'FTP服务器连接错误';
  33.                 exit;
  34.         }else{
  35.         }
  36.         ftp_pasv($conn_id,false);
  37.         ftp_put($conn_id,$destination_file,$source_file,FTP_BINARY) or die("不能连接到FTP服务器");
  38.         ftp_close($conn_id);
  39.         //删除本地备份
  40.         unlink($localdir.'/'.$filename);
  41. }
  42. ?>
复制代码

[ 本帖最后由 l12ab 于 2011-9-26 22:02 编辑 ]
作者: Poison    时间: 2011-9-26 21:59
很多时候 shell_exec都被禁了 咋办
作者: jasontse    时间: 2011-9-26 21:59
居然没有set_time_limit  坑爹啊
作者: cdm    时间: 2011-9-26 21:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: vip1    时间: 2011-9-26 22:00
不错,收藏
作者: l12ab    时间: 2011-9-26 22:03
原帖由 jasontse 于 2011-9-26 21:59 发表
居然没有set_time_limit  坑爹啊

是哦,我的数据库小,文件数非常少,把这个省了
作者: 有容乃大    时间: 2011-9-26 22:03
原帖由 cdm 于 2011-9-26 21:59 发表
  技术贴 ,大力支持  ,有分了给你加上

作者: qqab    时间: 2011-9-26 22:05
呵呵 技术贴 支持啦
作者: 飞天金猪    时间: 2011-9-26 22:06
拜读技术帝
作者: neverno    时间: 2011-9-26 22:51
不够完善,希望完善些,这对虚拟主机很有用的说~




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4