rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync 它的特性如下: 可以镜像保存整个目录树和文件系统。 可以很容易做到保持原来文件的权限、时间、软硬链接等等。 无须特殊权限即可安装。 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。 支持匿名传输,以方便进行网站镜象。
1.服务端安装rsync
yum -y install rsync
2.服务器配置
- 添加配置并修改配置文件
# vi /etc/xinetd.d/rsync把原来的 disable = yes 改成 disable = no
配置/etc/rsyncd.conf(需要手动生成)
# vi /etc/rsyncd.conf
log file = /var/log/rsyncd.log //日志文件
pid file =/var/run/rsyncd.pid //pid文件路径
lock file = /var/run/rsyncd.lock //指定lock文件
secrets file = /etc/rsyncd.pas //指定用户密码对文件
motd file = /etc/rsyncd.motd //指定欢迎消息文件(此文件没有,可以自行添加)
read only = no //是否只读(若从客户端同步到服务器必须设置为NO)
hosts allow = 192.168.0.0/16,192.168.10.0/24 //允许的IP段
list = yes //是否允许列表
uid = nobody //rsync以什么用户身份启动
gid = nobody //rsync以什么用户组身份启动
use chroot = no //不使用chroot
max connections = 30 //最大连接数
[www] //模块
path = /var/www //模块目录
comment = www bak //描述信息,可以任意填写
auth users = root //认证的用户,服务器必须存在这个系统用户
#ignore errors # 可以忽略一些无关的IO错误
#exclude = cache/111/ cache/222/ #忽略的目录
(保存退出)
- 修改密码配置
# vi /etc/rsyncd.pas
输入(用户密码对文件,用“:”隔开):
root:u22e.com
修改权限
# chmod 600 /etc/rsyncd.pas //权限必须为600,否则会出错
- 配置欢迎消息
# vi /etc/rsyncd.motd
输入
welcome to rsync u22e.com
启动rsync服务端(独立启动)
# /usr/bin/rsync –daemon
3.客户端配置
客户端默认好像已经装了rsync,没有的话装下:
# yum -y install rsync
设定密码
# vi /etc/rsyncd.pas
u22e.com
修改权限
# cd /etc
# chown root.root rsyncd.pas
# chmod 600 rsyncd.pas
client连接SERVER
- 从SERVER端取文件
# rsync -vzrtopg --progress --delete root@192.168.10.122::www /home/rsync/ --password-file=/etc/rsyncd.pas
这个命令行中-vzrtopg里的v是verbose,
z是压缩传输,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数。
u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。
–progress是指显示出详细的进度情况,
–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
后 面的rsync_user@192.168.0.2::rsync_module_name1中,之后的rsync_module_name1是模块名, 也就是在/etc/rsyncd.conf中自定义的名称,rsync_user是指定模块中指定的可以同步的用户名。
最后的/www是备份到本地的目录名。
在这里面,还可以用-e ssh的参数建立起加密的连接。
可以用–password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
- 向SERVER端上传文件
# rsync -vzrtopg --progress --password-file=/etc/rsyncd.pas /home/rsync/ root@192.168.10.122::www
rsync 常见错误及解决方法请访问如下网址