分类:
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