摘要
介绍
- remote synchronize,功能强大,高效,安全,速度快的文件增量传输工具
- 使用“Rsync算法”来同步文件,该算法只传送两个文件的不同部分,因此速度相当快
- 同步文件的同时,可以保持原来文件的权限、时间 和目录结构
- 对于多个文件来说,内部流水线减少文件等待的延时
- 默认监听TCP 873端口,通过远程shell如rsh和ssh复制文件。同时要求必须在远程和本地系统上都安装sync
安装
官网:http://rsync.samba.org/
yum install -y rsync
默认:/usr/local/rsync/bin
使用
常用
-avzP
、-aqzP
备份本地文件,等价cp:rsync -avzP src dst
同步本地到远程:rsync -avzP src USER@IP:dst
同步远程到本地:rsync -avzP USER@IP:src dst配置
配置文件
- 主配置文件
/etc/rsyncd.conf
- 密码文件
/etc/``rsyncd.secrets
- 服务器信息文件
/etc/``rsyncd.motd
vim /etc/rsyncd.conf
```shell motd file = /etc/rsyncd.motd #设置服务器信息提示文件,在该文件中编写提示信息
transfer logging = yes #开启rsync数据传输日志功能
log file = /var/log/rsyncd.log #设置日志文件名,可通过log format参数设置日志格式
pid file = /var/run/rsyncd.log #设置rsync进程号保存文件名称
lock file = /var/run/rsync.lock #设置锁文件名称
port = 873 #设置服务器监听的端口号,默认是873
address = 192.168.0.230 #设置本服务器所监听网卡接口的ip地址
uid = nobody #设置进行数据传输时所使用的帐户名或ID号,默认使用nobody
gid = nobody #设置进行数据传输时所使用的组名或GID号,默认使用nobody
若为yes, rsync会首先进行chroot设置,将根映射在下面的path参数路径下,对客户端而言,系统的根就是path参数指定的路径。但这样做需要root权限,并且在同步符号连接资料时只会同步名称,不会同步内容。
use chroot = no
read only = yes #是否允许客户端上传数据,yes表示不允许
max connections =10 #设置并发连接数,0表示无限制
[common] #自定义模块名,rsync通过模块定义同步的目录,可定义多个
comment = web content #定义注释说明字串
path = /common #同步目录的真是路径通过path指定
ignore errors #忽略一些IO错误
exclude = test/ #exclude指定common目录下某个目录可以不同步数据
auth users = zzz #设置允许连接服务器的账户,此账户可以是系统中不存在的用户
secrets file = /etc/rysncd_users.db #密码验证文件名,该文件权限要求为只读,建议为600,仅在设置auth users后有效
hosts allow = 192.168.0.0/255.255.255.0 #设置哪些主机可以同步数据,多ip和网段之间使用空格分隔
hosts deny=* #除了hosts allow定义的主机外,拒绝其他所有
list = false #客户端请求显示模块列表时,本模块名称是否显示,默认为true
<a name="kxhFq"></a>
## 定时contab
vim autobackup.sh<br />chmod +755 autobackup.sh<br />crontab -e<br />30 23 * * * sh -x autobackup.sh # 每晚23:30
```shell
rsync -avzP --delete --password-file=rsyncd.secrets src USER@IP:/backup