文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>php 本地 备份远程mysql和mdb 多任务只执行一次

php 本地 备份远程mysql和mdb 多任务只执行一次

时间:2010-08-23  来源:Task

适用于:下载到本地、小型数据库、限制了外连的远程mysql、需要下载的任务多、asp的mdb备份。

如果数据较大,修改php.ini的设置最大执行时间。

 

dc.php  在本地运行的程序,databak.asp  和databak.php 上面到服务器上的文件。

 

 

dc.php

 

 

<?php 
    $id=$_GET['id'];
    $id=empty($id)?"1":$id;
    $dbrow=array();
    $dbrow[1]=array('sql','abc','http://www.abc.com/data/databak.php');
    $dbrow[2]=array('sql','abcdef','http://www.abcdef.com/data/databak.php');
    $dbrow[3]=array('mdb','195458','http://www.195458.com/m/databak.asp');
    $dbrow[4]=array('mdb','sdw1','http://www.sdw1.com/databak.asp');
    

    $maxid=count($dbrow);

header("Content-Type:text/html;charset=utf-8");

$filename="databak/".date("Ymd");
if($id==1){//第一次运行  建立目录和删除5天前的备份
    function makedir($dirpath){
        if(!$dirpath) return 0;
        $dirpath=str_replace("\\","/",$dirpath);    $mdir="";
        foreach(explode("/",$dirpath) as $val){
            $mdir.=$val."/";
            if($val==".."||$val==".")continue;
            if(!is_dir($mdir)&&!file_exists($mdir)){
               if(!@mkdir($mdir,0755)){
                exit("创建目录 [".$mdir."]失败.");
               }
            }
        }
        return true;
    }

    function delDirAndFile($dirName){//删除目录及文件
        if($handle=opendir($dirName)){
           while(false!==($item = readdir($handle))){
           if($item !="."&&$item!=".."){
           if(is_dir( "$dirName/$item")){
               delDirAndFile( "$dirName/$item");
           }else{   unlink("$dirName/$item");   }
           }
           }
           closedir( $handle );
           rmdir( $dirName );
        }
    }

    $url=getcwd()."/databak/";
    $handle = opendir($url);
    while(false!==($file = readdir($handle))){//遍历删除5天前的目录
        if($file!="."&&$file!=".."&&is_dir($url."/".$file)){
            if(date("Ymd")-$file>5){delDirAndFile($url."/".$file);};
        }
    }
    if(is_dir($filename)){
        delDirAndFile(getcwd()."/".$filename);//是否已存在则删除
    }
    makedir($filename);//建立目录
}

$href="";
    if($maxid>=$id){
        $c=file_get_contents($dbrow[$id][2]);
        /*
        打开远程备份文件。http://a.com/data/databak.php  
        sql 直接返回压缩过的sql语句,mdb返回备份文件的链接地址 http://a.com/data/databak/20100821.rar
        */
        if($dbrow[$id][0]=='sql'){    $c=gzinflate($c);    }//解压sql语句
        
        if(!empty($c)){
            if($dbrow[$id][0]=='sql'){
                /*直接保存sql语句到文件,进入下一个任务*/
                file_put_contents($filename.'/'.$dbrow[$id][1].'.'.$dbrow[$id][0].'',$c);
                $href="window.location.href='?id=".($id+1)."';";
                
            }elseif($dbrow[$id][0]=='mdb'){
                
                $mdb=file_get_contents($c);//下载mdb
                if(!empty($mdb)){
                    sleep(3);//延迟3秒操作...
                    file_put_contents($filename.'/'.$dbrow[$id][1].'.'.$dbrow[$id][0].'',$mdb);//保存mdb,进入下一步
                    $href="window.location.href='?id=".($id+1)."';";
                }else{
                    $href="setTimeout(function(){window.location.reload();},3000);";//下载mdb失败3秒后刷新页面,重新下载
                }
            }
        }else{
            $href="setTimeout(function(){window.location.reload();},3000);";//任务执行失败,重新刷新页面执行任务
        }
    }else{
        $href="alert('备份完成!确定后关闭窗口');window.opener=null;window.open('','_self','');window.close();";
    }
    exit("<script type='text/javascript'>{$href}</script>");
?>

 

 

 

/Files/Task/databak.rar

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载