一、rsync(远程同步)
rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。
二、实操rsync远程文件同步
准备一个服务端172.16.23.13以及一个客户端172.16.23.14
1、服务端搭建:先完成服务端配置,启动服务
systemctl stop firewalld
setenforce 0
--------------------配置rsync源服务器---------------------------
rpm -q rsync #一般系统已默认安装rsync
#建立/etc/rsyncd.conf 配置文件
vim /etc/rsyncd.conf #添加以下配置项
uid = root
gid = root
use chroot = yes #禁锢在源目录
address = 172.16.23.13 #监听地址
port = 873 #监听端口 tcp/udp 873,可通过cat /etc/services | grep rsync查看
log file = /var/log/rsyncd.log #日志文件位置
pid file = /var/run/rsyncd.pid #存放进程 ID 的文件位置
hosts allow = 192.168.20.0/24 #允许访问的客户机地址
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z #同步时不再压缩的文件类型
[wwwroot] #共享模块名称
path = /data #源目录的实际路径
comment = Document Root
read only = yes #是否为只读
auth users = lisi zhangsan #授权账户,多个账号以空格分隔
secrets file = /etc/rsync_users.db #存放账户信息的数据文件
#如采用匿名的方式,只要将其中的“auth users”和“secrets file”配置项去掉即可。
#为备份账户创建数据文件
vim /etc/rsync_users.db
lisi:123123
zhangsan:123123 #无须建立同名系统用户
chmod 600 /etc/rsync_users.db
#保证所有用户对源目录/var/www/html 都有读取权限
chmod +r /data
ls -ld /data
#启动 rsync 服务程序
rsync --daemon #启动 rsync 服务,以独立监听服务的方式(守护进程)运行
netstat -anpt | grep rsync
rsync拓展
1、关于rsyncd服务的端口号
udp和tcp的873端口udp负责文件传输 tcp负责建立连接
2、rsync和scp的区别
两者都可以实现远程传输文件和目录rsync:远程文件同步,可以实现跨主机增量同步文件数据,同时还能对传输的文件进行压缩,并且支持软连接硬连接文件传输
scp:只能做全量数据传输
2、测试
服务端测试目录准备
[root@localhost ~]# cd /data
[root@localhost data]# ls
[root@localhost data]# cp /etc/passwd /etc/shadow /etc/fstab /etc/yum.repos.d/ ./
cp: 略过目录"/etc/yum.repos.d/"
[root@localhost data]# ls
fstab passwd shadow
[root@localhost data]# cp -a /etc/yum.repos.d/ ./
[root@localhost data]# ls
fstab passwd shadow yum.repos.d