安装与使用Rsync-传输备份数据

By | 2013年6月15日

Rsync官网:http://rsync.samba.org/

Linux系统版下载:http://rsync.samba.org/download.html

Windows版下载:https://www.itefix.no/i2/cwrsync

安装rsync

Linux下的安装很简单,可以直接yum安装,也可以编译安装,编译代码还是三步曲(configure,make,make install),没有任何难度。

Windows版,cwrsync,有免费与收费版,收费版中包含了GUI界面,免费版就像linux一样的命令行操作,不过,同样够用了。

这里,Linux中的rsync作为服务端,那Windows下的cwrsync就下载安装客户端即可:

image

配置服务端的rsync

修改/etc/rsyncd.conf文件:

#全局配置
#motd file = /etc/rsyncd.motd
pid file = /var/run/rsyncd.pid
port = 888
address = 0.0.0.0
#socket options = 
uid = root
gid = root
log file = /var/log/rsyncd.log

#########################
[c1mysqlbkdata]
#comment = backup
path = /backup
use chroot = true
#max connections = 10
read only = false
write only = false
list = true

#filter = 
#exclude = 
#include = 
#exclude from = 
#include from = 

#incoming chmod = 
#outgoing chmod = 

#auth users = rsyncuser
#secrets file = /etc/rsync.auth

strict modes = true
hosts allow = 192.168.1.9
hosts deny = 0.0.0.0/0

#igore errors = 
ignore nonreadable = true

#transfer logging = /var/log/rsync.tra.log
#log format = 

timeout = 600
#refuse options = 
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

#pre-xfer exec = 
#post-xfer exec =

参数的具体含义可以使用man rsyncd.conf命令查看,都很清楚。

可以参考这些文章:

http://hi.baidu.com/cxh1984/item/03bf5816a32febf8dceecabc

http://blog.sina.com.cn/s/blog_5eda2dda01015fcs.html

作为服务端,启动很简单,只需要rsync –daemon &即可。

这是一个简单的init脚本:

#! /bin/bash

start() {
        /usr/bin/rsync --daemon &
}

stop() {
        kill `cat /var/run/rsyncd.pid`
}       

restart() {
        stop
        start
}       

           

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 2
esac

exit $?

客户端运行

如果在linux下作为客户端,安装没有变化,新建一个空的/etc/rsyncd.conf即可,然后在需要时运行rsync命令。

比如,在mysq备份完成后,将备份结果传输到另外台电脑上(也就是rsync服务端),那么只需要运行:

#把本地目录( /backup/mysql_data/)下的所有文件,传输到lpas1这台服务器中
/usr/bin/rsync -a --port=888 /backup/mysql_data/*  rsyncuser@lpas1::mysqlbkdata

需要注意的时,每次传输时都是把本地目录中新增或修改的传输过去,也就是第一次传输是所有文件,第二次开始就是增量传输,自动把新增的传过去。

Windows下的客户端,可以使用计划任务定时执行rsync命令(可以建立一个bat文件),命令语法和linux下的语法,基本无差异:

@ECHO OFF
d:\cwrsync\bin\rsync.exe -a --progress --port=888 rsyncuser@ip地址::mysqlbkdata  /cygdrive/d/sychdata/