图示:
过程解释说明:
(1)所做的把本地的文件推到rsync服务端backup模块里对应目录下
(2)当客户端与服务端进行连接的的时候,客户端在到达服务端门口时候前面会有一扇门,这扇门可以做判断,它的作用就是去服务端里的/etc/rsyncd.conf
文件中查看认证用户(如果有这个用户,会技术让你说出口令)然后再去服务端/etc/rsync.password
看认证密码文件是否争取
(3)验证成功后连接时用的root(或其他)用户
会被映射成
(在文件中设定好的)rsync用户
,利用rsync用户
进行传输
文件!
部署环境
root@db01[21:58:15]:~#cat /etc/redhat-release
CentOS release 6.9 (Final)
root@db01[21:58:46]:~#uname -a
Linux db01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
了解环境后我们开始部署软件
**部署一:**确定有没有rsync软件
root@db01[00:34:18]:~#rpm -qa rsync
rsync-3.0.6-12.el6.x86_64
部署二:
如果没有rsync软件就需要安装一下
root@db01[00:34:18]:~#yum install -y rsync
部署三:
编写配置文件(特点;编写好配置文件,后续操作步骤可以按照配置文件进行,化繁为简)
#先创建配置文件
root@db01[00:34:18]:~#touch /etc/rsync.conf
编写配置文件
root@db01[00:34:18]:~#vim /etc/rsync.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
[backup]
path = /backup/
ignore errors
read only = false
list=false
hosts allow = 192.168.200.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
###rsync_config______end#
rsync常规脚本编写及作用说明
#用户
uid = rsync
#组
gid = rsync
#程序安全设置(安全相关)
use chroot = no
#客户端连接数(最大链接数,这里是最多连接200台服务器)
max connections = 200
#超时时间(如果300秒内没有传输数据,就断开链接,如果不定义的话会导致已经链接且传输完数据的服务器一直占用位置,导致后面的服务器连接不进来)
timeout = 300
#进程号文件位置(这里在启动rsync守护进程后,会把进程号写入此文件中,可以查看这个文件来找到rsync进程号进行kill)
pid file = /var/run/rsyncd.pid
#锁文件(如果两台机器同时传输数据给同一个主机(传输的文件名字一样,内容不一样,)文件到达rsync备份服务器后,在文件到达备份服务器的时候先给两个文件中的一个上锁禁止传输,直到这个文件传输完成后,再给上锁的解锁然后继续传输,防止相同文件名在并行传输的时候出现错误(不能并行处理)
lock file = /var/run/rsync.lock
#日志文件位置
log file = /var/log/rsyncd.log
#模块名
[backup]
#共享文件目录(服务器提供访问的目录以及备份数据的位置)
path = /backup/
#忽略错误程序(在传输过程中有的传输错误的文件先忽略掉等都传输完了,再回头处理之前错误的文件)
ignore errors
#可读可写(ture或false)
read only = false
#阻止远程列表(不让通过远程方式看服务端有啥)
list=false
#允许ip(白名单)
hosts allow = 192.168.200.0/24
#禁止ip(黑名单
hosts deny = 0.0.0.0/32
#虚拟用户(非虚拟用户)
auth users = rsync_backup
#存放用户和密码的文件
secrets file = /etc/rsync.password
###rsync_config______end#
解释说明模块是什么
模块名就相当于我只说个名字,就可以概括模块下面含有的内容,像猜谜语一样,谜底牙膏
俩字在包含了谜面里面的4句话!(最大的作用就是简化我们的操作
)
图示
部署四:
创建备份目录的管理用户
root@db01[00:34:18]:~#useradd -s /sbin/nologin -M rsync
#确认是否创建成功
root@db01[00:34:18]:~#id rsync
部署五:
创建安全认证文件
#向存放密码的文件里面追加输入密码
#文件不存在可以自行创建即可
root@db01[00:34:18]:~#echo "rsync_backup:geek123">/etc/rsync.password
修改文件权限
#因为涉及到密码所以要修改权限
root@db01[00:34:18]:~#chmod 600 /etc/rsync.password
部署六:
创建备份目录
root@db01[00:34:18]:~#mkdir -p /backup
因为涉及到在访问/传输的过程中需要使用rsync用户身份进行传输操作,所以要更改文件目录的属组属主信息
root@db01[00:34:18]:~#chown -R rsync.rsync /backup/
部署七:
启动rsync服务.启动rsync daemon(守护进程方式)
root@db01[00:34:18]:~#rsync --daemon
查看rsync进程是否存在
root@db01[00:34:18]:~#ps -ef|grep rsync
查看rsync端口号是否存在
root@db01[00:34:18]:~#netstat -lntup|grep rsync
端口号是:TCP协议的**873端口
**
如何关闭rsync守护进程
至此rsync服务端的部署已完毕
rsync客户端部署起来要简单的多只需要三步即可完成
部署一:
确定有没有rsync软件
root@db01[00:34:18]:~#rpm -qa rsync
rsync-3.0.6-12.el6.x86_64
部署二:
如果没有rsync软件就需要安装一下
root@db01[00:34:18]:~#yum install -y rsync
部署三:
创建安全认证文件(不创建也可以但是在传输的时候就不能使用选项–password-file=/etc/rsync.passwod来替代你输入密码了,每次连接都需要手动输入密码!)
#向存放密码的文件中追加输入密码
echo "geek123">/etc/rsync.password
#因为密码是可见的所有需要修改权限
chmod 600 /etc/rsync.password
至此rsync客户端也已经部署完毕