1. rsync简介
rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
2. rsync特性
rsync支持很多特性:
可以镜像保存整个目录树和文件系统
可以很容易做到保持原来文件的权限、时间、软硬链接等等
无须特殊权限即可安装
快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接
支持匿名传输,以方便进行网站镜像
3. rsync的ssh认证协议
rsync命令来同步系统文件之前要先登录remote主机认证,认证过程中用到的协议有2种:
ssh协议
rsync协议
rsync server端不用启动rsync的daemon进程,只要获取remote host的用户名和密码就可以直接rsync同步文件
rsync server端因为不用启动daemon进程,所以也不用配置文件/etc/rsyncd.conf
ssh认证协议跟scp的原理是一样的,如果在同步过程中不想输入密码就用ssh-keygen -t rsa打通通道
目标服务器操作
//关闭防火墙和selinux
[root@client ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@client ~]# setenforce 0
[root@client ~]# getenforce
Permissive
[root@client ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
//安装rsync
[root@client ~]# dnf install -y rsync rsync-daemon
//设置rsyncd.conf配置文件
[root@client ~]# cat >> /etc/rsyncd.conf <<EOF
> log file = /var/log/rsyncd.log //日志文件位置,启动rsync后自动产生这个文件,无需提前创建
> pidfile = /var/run/rsyncd.pid //pid文件的存放位置
> lock file = /var/run/rsync.lock //支持max connections参数的锁文件
> secrets file = /etc/rsync.pass //用户认证配置文件,里面保存用户名称和密码,必须手动创建这个文件
>
> [etc_from_client] //自定义同步名称
> path = /tmp/ //rsync服务端数据存放路径,客户端的数据将同步至此目录
> comment = sync etc from client
> uid = root //设置rsync运行权限为root
> gid = root //设置rsync运行权限为root
> port = 873 //默认端口
> ignore errors //表示出现错误忽略错误
> use chroot = no /