介绍:rsync是一个文件同步工具,可本地同步文件,也可以远程异地同步文件。
1.本地同步
rsync -aP /源数据路径/ /目标数据路径/
命令 限制条件 源文件 目标路径
2.远程同步
实验准备
两台机器
客户端:192.168.119.161(用来接收文件数据)
服务端:192.168.119.163(用来发送文件数据)
安装
实现远程同步,只需要在接受文件的一端安装rsync服务
《客户端》
1.首先安装rsync服务
[root@localhost ~]# yum -y install rsync
2.编辑rsync的配置文件:/etc/rsyncd.conf
[root@localhost ~]# vim /etc/rsyncd.conf
##在rsync配置文件中添加以下内容
uid = root
gid = root
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
[rsync_test] ##定义模块名称,可自定义
path = /data/rsync_test/ ##定义服务器端文件传输过来后保存文件的路径,需要手动创建
read only = no ##文件是否只读
comment = rsync_test ##文件描述
hosts allow = * ##设置允许传入的地址
hosts deny = * ##设置不允许的地址
auth users = rsync_user1 ##虚拟用户名称设置,用于接收文件的时候认证信息
secrets file = /etc/rsync.passwd ##虚拟用户和密码认证文件,需要手动创建并写入信息,文件权限为600
注:一定要将配置文件中的注释去掉,不然在后续过程中会报错
3.创建同步目录
[root@client ~]#mkdir -p /data/rsync_test/
4.编辑虚拟用户名和密码认证文件,文件名称自定义即可但要和上面配置文件中的一致(如上:/etc/rsync.passwd,权限600)
[root@localhost ~]# vi /etc/rsync.passwd #在此配置文件写的是(用户:密码)
[root@localhost ~]# cat /etc/rsync.passwd
ding:123456
[root@localhost ~]# chmod 600 /etc/rsync.passwd
[root@localhost ~]# ll /etc/rsync.passwd
-rw------- 1 root root 12 2月 4 16:21 /etc/rsync.passwd
##权限更改成功,属主属组都是root用户
5.开启rsync服务
[root@localhost ~]# systemctl start rsyncd
《服务端》
[root@localhost ~]# yum -y install rsync
1.编辑密码认证文件。自定义名称路径即可(如:/etc/rsync.password,权限600)
[root@localhost ~]# echo '123456' >> /etc/rsync.password
[root@localhost ~]# cat /etc/rsync.password
123456
[root@localhost ~]# chmod 600 /etc/rsync.password
[root@localhost ~]# systemctl start rsyncd
同步
《服务端》
1.在服务端创建同步文件
[root@localhost ~]# touch test.txt
[root@localhost ~]# ls
anaconda-ks.cfg test.txt
2.同步
[root@localhost ~]# rsync -a --password-file=/etc/rsync.password /root/ ding@192.168.119.161::rsync_test
==============================================================
命令介绍:
rsync #命令
-a #同步参数
--password-file #指定密码认证文件路径
/root/ #源数据路径
ding #客户端设置的虚拟用户名称,做认证
@192.168.119.16 #客户端机器ip地址
rsync_test #客户端配置文件的模块名称,识别信息用
===================================================================
《客户端》
已经同步
[root@localhost ~]# ll /data/rsync_test/
总用量 4
-rw------- 1 root root 1244 12月 16 16:55 anaconda-ks.cfg
-rw-r--r-- 1 root root 0 2月 4 16:28 test.txt