需要将一个11GB的文件传输到另外一台服务器,如何断点续传?如何限制带宽?

使用rsync,完整命令如下:

rsync -av --bwlimit=1000 --progress --inplace --rsh='ssh -p 22000' menus_images.tar.gz qi@host.site-digger.com:/home/qi/haodou_menus_images.tar.gz
说明:
  --bwlimit=1000  限制带宽为1000Kbps;
 ssh -p 22000 指定ssh的端口(非默认22);
 
2、


一:安装cygwin

       下载地址:www.cygwin.com/setup.exe;安装方法可参考www.cygwin.cn,可以选择internet安装,如果安装文件已经下载,可以在本地安装;

1.       修改环境变量:系统和用户path中增加:盘符/cygwin/bin;盘符是具体要安装的磁盘;

2.       cygwin两个套件必须安装:openssh,cygrunsrv;

3.       安装时记住要选择 Rsync from the +Net package list, 和a suitable Editor (因为这个系统不会默认安装). 要用到一些编辑器  Pico (在 +Mail之下的part of Pine living ) 和 Nano (living under +Editors).(我只安装了net全部套件)

4.       在cygwin中访问windows文件系统:cd /cygdrive/   ls命令就可以打出windows下的盘符了;

二:结合ssh使用rsync

5.       把windows文件夹同步到linux,用密钥:
rsync -vzrtopg -e "ssh -i /home/Administrator/.ssh/id_dsa.42"  --progress  --delete /cygdrive/d/myself/xbb/ root@192.168.0.23:/root/test/
-e参数指定密钥位置"ssh -i /home/Administrator/.ssh/id_dsa.42";
/cygdrive/d/myself/xbb/是windows目录
root@IP:/root/test/是linux目录
6.       如果密钥出现权限问题,而连接不到远程服务器,就将密钥权限设置为600
7.       这是用ssh结合rsync的一个实例,但没有成功,因为文件数量太大!:rsync -vzrtopg -e "ssh -i /home/id_dsa.42"  --progress  --delete /cygdrive/e/Tomcat/ 5.5/webapps/resource/stat/ root@IP:/usr/local/tomcat/webapps/resource/
8.       windows带有空格的目录要用””括起来cygwin才能识别
三:rsync也可以不用ssh独立使用;需要配置模块(不配置模块是否可行没有测试)
       服务端:
1.rsyncd.conf配置详解
该文件要放在/etc目录下
rsyncd.conf的配置实例:
      
       uid = nobody
gid = nobody
use chroot = no
list = false
ignore errors = yes
ignore nonreadable = yes
max connections = 1000000 #设置最大连接数,这个似乎优于ssh,因为我不知道ssh连接数的配置
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[test]   #这是模块名称
path = /usr/local/tomcat/webapps/resource/test
uid = nobody
read only = false  #这个参数如果设成false则可读可写,但write only参数如果设成false则为只读不能写
auth users =root  #同步使用的用户名,用root可以同步任何目录,
secrets file = /etc/rsync_server.passwd #这是服务端密码文件:存入用户名密码的文件,用echo "root:密码" >> /etc/rsync_server.passwd 写入值(注意"root:密码",引号是不能少的)
#rsync_server.passwd可以改成其它名字,就是可以自己命名;该文件应该只有root才可读写:chmod 600 /etc/rsync_server.passwd这个权限不正确的话客户端不能访问的报错:auth failed on module stat from UNKNOWN (123.119.91.216)
2.根据配置创建服务端密码文件:
       Touch/etc/rsync_server.passwd;
       echo "root:密码" >> /etc/rsync_server.passwd
       chmod 600 /etc/rs ync_server.passwd
3. 启动rsync: rsync --daemon    如果要改变端口用rsync --daemon --port=端口
验证启动是否成功:netstat -na|grep 873    端口号要用启动时指定的;
4.设置开机自动启动 echo “usr/bin/rsync –daemon –port=端口”  >> /etc/rc.local;
注意:/usr/local/tomcat/webapps/resource/test/的权限设成了777才行
Chown –R root:root test
                     Chmod –R 777 test  
            如果有防火墙的话要开放对应端口
客户端:
1.
Touch 目录/文件名
echo "passwd" >> 目录/文件名    password是服务端设置的密码
chmod 600 目录/文件名
 
配置完毕:
 
使用实例:rsync -apur   --size-only –progress –delete –port=2012   /cygdrive/e/"Tomcat 5.5"/webapps/resource/test/community/ root@192.168.0.16::
test

这是根据服务端实例的客户端使用,是蓝色部分与红色部分,或者说红色为源蓝色为目标

源在前,目标在后