简介
开源的,快速的,多功能的,可实现全量和增量的本地或远程数据同步的工具
1.支持拷贝特殊文件如链接文件,设备等
2.可以排除指定文件或目录同步的功能,相当于打包命令tar的排除功能
3.可以保持源文件或目录的权限,时间,软硬链接,属组,主等所有属性均不改变
4.可实现增量同步
5.可以使用rcp,rsh,ssh等方式来配合传输文件
6.可以通过socket传输文件和数据
7.支持匿名或认证的进程模式传输,可实现方便安全的进行数据备份和镜像
安装
yum install rsync
命令
1.拷贝文件
rsync demo.txt /tmp/demo.txt
2.清空目录下的文件(null为新建的空目录)
rsync -r -delete /null/ /data/
3.对目录下所有文件进行传输
-r
4.保持文件时间信息
-t
5.保持文件属主信息
-o
6.保持文件权限
-p
7.保持文件属组信息
-g
8.显示同步过程及传输时的进度等信息
-P
9.保持设备文件信息
-D
10.保留软连接
-l
11.指定排除不需要传输的文件模式
--exclude=PATTERN
12.保留所有属性
-a
13.一般使用(保留所有属性,压缩并显示进度传输)
-avz
应用场景
1.两台服务器同步数据(rsync+cron)
1.多台服务器同步(rsync+cron)
2.实时备份数据(rsync+inotify/sersync)
服务端配置
配置文件
创建 /etc/rsyncd.conf
文件内容为:
uid = rsync
gid = rsync
use chroot = no
max connections = 200 #同时连接客户端的个数
timeout = 300 #客户端超时时间
pid file = /var/run/rsyncd.pid #服务进程文件
lock file = /var/run/rsync.lock #锁文件
log file = /var/log/rsyncd.log #log日志位置
[test] #模块
path = /test/ #传输目录
#如果配置多个共享目录的话,下面的内容是可以放到[test]上面进行配置共享的,如果是每个共享目录都需要单独的,那就配置在自己的模块下面
ignore errors #忽略错误
read only = false #非只读
list = false #不允许列表
hosts allow = 10.0.0.0/24 #允许ip
hosts deny = 0.0.0.0/32 #拒绝ip
auth users = rsync_backup #虚拟用户
secrets file = /etc/rsync.password #虚拟用户对应的密码文件
以守护进程的方式启动
rsync --daemon
创建传输目录
1.添加系统用户
useradd rsync -s /sbin/nologinifconf
2.创建传输目录
mkdir /test
3.修改目录权限
chown -R rsync.rsync /test/
4.添加虚拟用户及密码
echo "rsync_backup:test" >/etc/rsync.password
chmod 600 /etc/rsync.password
客户端配置
1.保存虚拟用户密码
echo "test" >/etc/rsync.password
chmod 600 /etc/rsync.password
注意
无论是拉数据还是推数据,都在客户端执行命令
/etc/rsync.password 密码文件控制别人不可见,不然会报错sudo
拉数据(客户端执行)
1.需要输入密码
rsync -avz rsync_backup@172.16.17.12::test /data/
2.指定密码文件
rsync -avz rsync_backup@172.16.17.12::test /data/ --password-file=/etc/rsync.password
推数据
rsync -avz /data/ rsync_backup@172.16.17.12::test --password-file=/etc/rsync.password
rsync -avz /data/ rsync://rsync_backup@172.16.17.12/test --password-file=/etc/rsync.password[]]