当前位置:技术首页 >> 操作系统 >> Linux/Unix >> 构建安全rsync
构建安全rsync
2008-10-23 01:31:48  作者:  来源:互联网  浏览次数:7  文字大小:【】【】【
  •    随着安全要求的提高,我们逐渐采用sftp或scp来取代ftp。然而,可能由于网络状况等原因,使得scp/sftp可能发生中断。为此,不得不很痛苦的重新拷贝文件,不仅麻烦,还严重浪费带宽和时间。在这里,我们采用rsync over ssh的方式,既安全又方便,因为rsync支持断点续传。

    随着安全要求的提高,我们逐渐采用sftp或scp来取代ftp。然而,可能由于网络状况等原因,使得scp/sftp可能发生中断。为此,不得不很痛苦的重新拷贝文件,不仅麻烦,还严重浪费带宽和时间。在这里,我们采用rsync over ssh的方式,既安全又方便,因为rsync支持断点续传。

配置rsyncd.conf

    rsyncd.conf只需做非常简单的判断,即可直接使用,贴一下我自己的例子:
    #/etc/rsyncd.conf
    #常规设定
    uid = nobody
    gid = nobody
    use chroot = no
    max connections = 5
    #设定日志
    syslog facility = local5
    pid file = /var/run/rsyncd.pid
    #多种方式设定许可hosts列表
    hosts allow=192.168.0.1,192.168.0.2,192.168.1.0/255.255.255.0
    #设定rsyncd目录
    [backup]
    path = /home/yejr/
    #如果同时还允许上传文件,把 read only 设成 false 即可
    read only=false

    由于采用的是rsync over ssh,因此无需启动rsyncd实例,而是通过ssh来rsync,非常简单。
    注意到上面的 read only=false,可能很多人认为rsync只能用于下载,不能上传,其实不然,这么设置一下之后,就可以利用rsync上传文件了。
看下面的例子。

使用

下载文件

    rsync -P -av --timeout=10 --rsh="ssh -l yejr" 192.168.0.84::backup/yejr/
    /home/yejr/
    把服务器上的目录 /home/yejr/ 上的所有文件下载到本地目录 /home/yejr/ 下。
    在这里,需要注意目录名后面是否带上了目录分解符 /,如果有,那么只处理目录下的文件,如果不带,则把目录名本身也下载了。

上传文件

    rsync -P -av --timeout=10 --rsh="ssh -l yejr" /home/yejr/
    192.168.0.84::backup/yejr/
    把/home/yejr/目录下的文件上传到服务器 /home/yejr/ 下,即:/home/yejr/*。

上传目录结构

    rsync -P -av --timeout=10 --include '*/' --exclude '*' --rsh="ssh -l yejr"
    /home/yejr/ 192.168.0.84::backup/yejr/

or

    rsync -P -av --timeout=10 --include '*/' --exclude '*' --rsh="ssh -l yejr"
    192.168.0.84::backup/yejr/ /home/yejr/
    有些时候,我们需要先同步一下目录结构而无需上传/下载文件,就采用这种方式。
    上面的例子中,我已经采用ssh key的方式建立了信任关系,因此无需每次输入密码。

0

顶一下

0

踩一下
友情链接 | 诚聘英才 | 关于我们 | 版权声明 | 联系我们 | 广告服务

  •     京ICP备08010289号    Powered by D.V.B