Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376341
  • 博文数量: 166
  • 博客积分: 1972
  • 博客等级: 上尉
  • 技术积分: 1845
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-19 21:16
文章分类

全部博文(166)

文章存档

2013年(7)

2010年(159)

分类:

2010-11-11 20:13:37

为了备份网站数据,服务器主机在电信线路,备份主机在移动线路。

单个连接的网速基本上就200kbps,可是rsync的客户端没办法同时启动多个连接进行同步,带宽利用不么10%。

参考了:

用PHP改一改,在LINUX下测试OK,基于WINDOWS应该也可以。

启动多个连接进行同步,效率大大提高。

适合暴力解决互联互通问题呵

 

<?php
$dir = '/var/www/';             //要备份的本地文件夹
$remote_prefix = "your.ip::dest //rsync主机的IP和目标
$local_prefix = "
sub_folder";   //对应的子文件夹
$max_connect = 10;                   //最大的连接


$files = scandir($dir, 2);
array_pop($files);
array_pop($files);
//print_r($files);
while (true)
{
    $i = shell_exec("
ps agx|grep 'rsync -v $local_prefix'|wc -l");
    echo "
count: ".$i."\n";
    if ($i <= $max_connect)
    {
        $file_name = array_shift($files);
        if(empty($file_name)) exit();
        $file_name = $local_prefix.$file_name;
        $cmd = "
rsync -v $file_name $remote_prefix/$file_name -v -rlt --progress";
        $file_name = str_replace('/', '_', $file_name);
        $cmd .= ' >> '.$file_name.'.log &';
        system("
$cmd");
        echo "
count:$i exec: ".$cmd."\n

阅读(3514) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~