帅比的运维学习日常:
环境:系统版本:centos7
一、rsync的注意点:
1、使用rsync同步,必须源数据主机与目标数据主机,同时安装rsync服务
2、由于rsync也是借助ssh通道进行同步的,因此也必须安装openssh-clients(也就是scp命令的安装包)
3、rsync并不会修改文件,而如果文件出现修改现象,会直接替换掉目标主机中的同名文件
而
二、rsync的deamon的配置
1、配置文件(/etc/rsyncd.conf)【该文件centos6中需要自己创建】
uid = rsync                                                       #指定rsync的使用用户
 gid = rsync
 use chroot = no                                               #rsync的安全机制
 max connections = 30                                     #rsync的最大连接数
 timeout = 600                                                  #时间超时
 pid file = /var/run/rsyncd.pid                            #指定rsync的放pid的文件,Linux规定每个程序都要有自己放pid的文件
 lock file = /var/run/rsync.lock                           #文件锁,类似于程序和数据库中的锁,当一个文件正在被写入时,拒绝其他链接的写入
 log file = /var/log/rsync.log                              #rsync的日志文件
 fake super = yes                                             #这貌似是赋予rsync的提权限,我也不太清楚,老版本不需要写,新版本使用-a参数不写会爆粗[master]                                                           #定义模块,可以定义多个模块
 path = /warehouse/rsync/                                #只当rsync的同步数据存放路径
 ignore errors                                                    #忽略一些同步时的io错误
 read only = false                                              #是否只读
 list = false                                                         #当客户端发起查看请求的时候是否允许
 hosts allow = 192.168.200.0/24                       #指定允许链接的主机,hosts deny ,是不允许链接
 auth users = master_user                                #rsync创建的虚拟用户
 secrets file = /etc/rsync.password                   #rsync的虚拟用户密码文件

2、创建一个程序用户,也就是配置文件中指定的

3、创建一个创建一个rsync同步数据存放目录,就是配置文件中的path,此目录要保证rsync的用户要对此文件有读写权限

4、创建虚拟用户的密码文件,也就是secrets file指定的,此文件强制要求权限600,否则会报错,【注意rysnc的配置文件与虚拟用户的密码文件不需要改变属主】

      虚拟用户密码文件的配置格式:

        虚拟用户名:虚拟用户密码 

5、rsync --daemon  启动rysnc的守护进程

        (但注意:此程序没有stop终止命令,终止需要kill,但kill之后,一定要注意将rsync的pid文件手动删掉,否则再启动就会报错)

        (如果嫌麻烦也可以配置成服务,/etc/systemd/system/)

6、rsync测试

  ①交互式进行rsync同步

rsync -avz 源目录路径 rsync虚拟用户@目标主机IP::虚拟用户的模块名 --delete

  ②非交互式

rsync -avz 源目录路径 rsync虚拟用户@目标主机IP::虚拟用户的模块名 --delete --password-file=客户端密码文件路径

        如果使用该方式,则还需要在客户端也需要创建一个rsync的密码文件,此密码文件不需要写虚拟用户名,直接写密码即可,此密码文件的权限也必须是600