设计了一个跨站文件备份脚本
这里就不详细说明了,各位可以自己拿去试一下。
[网站端:abc.com/.backup.api/aaa123.php]
<?php //文件及所在目录权限777
$key='aaa123'; //通讯密钥
$dir='/var/www/zblog/zb_users/data'; //哪个目录
$fmt=date('Ymd'); //日期格式
$set=@unserialize(file_exists('.backup.'.$key.'.run')?file_get_contents('.backup.'.$key.'.run'):null)?:null;
if($set['date']>=$fmt){echo serialize($set);die;}
$tar=new PharData('.backup.'.$key.'.tar');
$tar->buildFromDirectory($dir);
$set['date']=$fmt;
file_put_contents('.backup.'.$key.'.run',serialize($set),LOCK_EX);
echo serialize($set);die;
?>
[备份端:xyz.com/.backup.job/abc.data.php]
<?php //文件及所在目录权限777
$key='aaa123'; //通讯密钥
$web='https://abc.com/.backup.api'; //目标网址
$lag=60; //下载超时
$num=30; //保留份数
function cgrab($url,$wait,$save){$c=curl_init($url);curl_setopt($c,CURLOPT_TIMEOUT,$wait);curl_setopt($c,CURLOPT_RETURNTRANSFER,empty($save)?1:0);curl_setopt($c,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($c,CURLOPT_SSL_VERIFYHOST,0);curl_setopt($c,CURLOPT_HEADER,0);curl_setopt($c,CURLOPT_NOBODY,0);if(empty($save)){$s=curl_exec($c);curl_close($c);return $s;}else{$f=fopen($save,'w');curl_setopt($c,CURLOPT_FILE,$f);$s=curl_exec($c);curl_close($c);fclose($f);return $s;}}
if(!file_exists($key)){mkdir($key,0777,true);}
$set=@unserialize(cgrab($web.'/.backup.'.$key.'.php',10,false)?:null)?:null;
if(empty($set['date'])){die('disconnected');}
if(file_exists($key.'/'.$set['date'].'.tar')){die('completed');}
if(!cgrab($web.'/.backup.'.$key.'.tar',$lag,$key.'/'.$set['date'].'.tar')){unlink($key.'/'.$set['date'].'.tar');}
if(!empty($num)){$del=glob($key.'/*');rsort($del);foreach(array_splice($del,$num) as $row){unlink($row);}}
die('success');
?>
C
500px Pixiv M.R.Z Gerley 脑浆物语 霖博客 Jet 设计笔记 Yefz 灰常记忆 乐亦人生 拔剑舞 云破天开 秋日 蠢妖 Yoooo X小窝 月宅酱 屌丝论坛 归·程