rsync是类unix系统下的数据镜像备份工具。
它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
rsync的安装,centos默认已经自带就安装了程序。无需安装。
准备:
检查是否已经安装
rpm -qa rsync
1、安装
yum install rsync
2、命令输入
rsync
出现以下表示安装成功:
rsync version 3.0.6 protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes
rsync使用服务端-客户端同步文式
双机备份配置:
服务端:
网上有很多教程使用xinet.d来启动rsync服务端。
这里使用rsync自带的来启动服务端
如:rsync --daemon --config=/home/leyewen/etc/rsync/rsyncd.conf
1、配置rsyncd.conf如下:
# 全局参数
# 运行rsync守护进程的用户
uid = root
# 运行rsync守护进程的组
gid = root
# 不使用chroot
use chroot = no
# 最大连接数为4
max connections = 2
# 是否检查口令文件的权限
strict modes = yes
# 默认端口873 这里最好改成1024以上端口 并且
port = 873
#pid文件的存放位置
pid file = /usr/local/rsync/rsyncd.pid
#锁文件的存放位置
lock file = /usr/local/rsync/rsync.lock
log file = /usr/local/rsync/log/rsyncd.log
motd file = /usr/local/rsync/rsyncd.motd
# 模块参数
# 这里是认证的模块名,在client端需要指定
[backup]
# 需要做镜像的目录 不可缺少
path = /home/rsync/data
# 这个模块的注释信息
comment = My Backup
# 可以忽略一些无关的IO错误
ignore errors
# 只读
read only = no
# 不允许列文件
list = no
# 认证的用户名 如果没有这行则表明是匿名 此用户与系统无关--->这里的auth users =与rsync.pass中的用户名一致
auth users = sensor
# 密码和用户名对比表,密码文件自己生成
secrets file = /usr/local/rsync/rsync.pass
# 允许主机
# hosts allow = 192.168.1.1,10.10.10.10
# 禁止主机
# hosts deny = 0.0.0.0/0
#transfer logging = yes
2、配置rsync密码(在上边的配置文件中已经写好路径) /usr/local/rsync/rsync.pass (名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
账号:密码
vi /usr/local/rsync/rsync.pass
例子:
sensor:passwd
权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
chmod 600 /usr/local/rsync/rsync.pass
3、启动rsync服务端
rsync --daemon --config=/usr/local/rsync/rsyncd.conf
客户端:
rsync -avz --progress --delete --port=873 --password-file=/home/leyewen/etc/rsync/rsync-client.pass --exclude=.svn/ --exclude=WEB-INF/ /home/leyewen/svn/* [email protected]::back
这里同步本地的svn下所有文件到服务端配置的备份目录
--exclude=.svn/ --exclude=WEB-INF/ 过滤svn和WEB-INF目录
配置说明
rsync -avz /home/rsync/data/* [email protected]::backup
rsync -avz 同步目录|文件 用户名@IP::模块名
-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
另外:
定制欢迎信息文件rsyncd.motd
如:
[[email protected] rsync]# cat rsyncd.motd
+++++++++++++++++++++++++++
+ wellcome rsyncd +
+++++++++++++++++++++++++++
注意:
--password-file=/home/leyewen/etc/rsync/rsync-client.pass
通过--password-file指定密码文件,
1,注意修改.pass 文件为chmod 600
2,rsync 服务端格式为usrname:pwd 但客户端格式为pwd ,所以这里容易出错!!