Rsync数据同步服务

时间:2021-02-24 19:12:39

Rsync数据同步服务

Rsync软件适用与unix/linux/windows等多种操作系统平台

Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具,可以实现删除文件或目录的功能 
它的功能可以排除以后在复制,可以保持原文件目录的权限,时间,软硬链接,属主,属组等属性均不改变也就是cp -p的功能

增量同步就是只同步变化的数据,可以通过ssh远程数据传输,也可以通过socker进程数据传输,支持匿名或加密数据传输

Rsync三大类:1,本地间类似cp命令的数据同步 2.网络间两台不同IP服务期间数据传输 3.以socker进程监听的方式启动rsync server端

rsync -avzP -e 'ssh -p 22' 如下 --delet:删除参数,只能删除目录里的文件 --bwlimit=100:限速参数,等于多少就是限速多少

a代表递归复制,v代表显示传输信息,z代表高效的传输效率,-e代表指定端口传输,不写代表默认22端口,-P保持文件所有属性不变

rsync -avz 源目录 root@目标IP:放到什么目录下 --> 不同IP服务间数据传输,需要安装远程支持包(openssh-clients也就是scp命令和rsync命令)

 

Rsync缺点

要有众多小文件的话只能一个一个比对在推送,所以一般都是把整个目录打包以后在推送

 

远程复制命令

ssh IP地址:远程登陆系统用户,不写root@代表默认,普通用户必须写用户

scp -P:远程复制命令,不写-P默认端口22,不写代表指定多少端口 rsync:远程同步复制命令

/etc/ssh/sshd_config:sshd远程端口配置文件,端口号在13行 rsync监听873端口

 

Rsync服务搭建

Rsync服务端先检查有没有rsync软件包,手动创建vim /etc/rsyncd.conf文件默认不存在,vim编写

 

用户

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

 

可读可写(true或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搭建过程

useradd -M -s /sbin/nologin rsync #创建rsync用户

mkdir /backup #创建共享目录

rsync --daemon #启动服务

chown rsync /backup #/backup文件夹更改属主rsync

echo "rsync_backup:123456" >/etc/rsync.password #创建rsync虚拟账户名和密码

chmod 600 /etc/rsync.password #将账户密码文件的权限设置为600(必须否则失败)

echo "rsync --daemon" >> /etc/rc.local #加入开机启动(可加可不加)

pkill rsync #关闭rsync服务

rsync --daemon #启动rsync服务

 

Rsync客户端先检查有没有rsync软件包

echo "123456" > /etc/rsync.password #手动创建密码文件

chmod 600 /etc/rsync.password #将密码文件的权限设置为600(必须否则失败)

 

Rsync同步测试

rsync -avz /backup/ rsync_backup@192.168.200.xxx::backup --password-file=/etc/rsync.password

命令说明: 
-avz:保持稳健各项属性不变 
-a归档模式,表示以递归方式传递文件 
-z传输时进行压缩以提高传输效率 
-v显示进度信息 
--delet实时同步 
-P完全同步 
,保持所有属性不变 
/backup/:要推送的内容所在目录 
rsync_backup:服务器端rsync服务的同步的用户名(非Linux用户) 
192.168.200.xxx:rsync服务器IP地址 
backup:rsync服务器配置文件里的模块名 
--password-file=/etc/rsync.password:免密码的操作,指定密码文件位置,如果不写,则会要求用户交互式输入密码。(如果想挂定时任务,必须得非交互式)

 

Rsync指定端口推送

rsync -avzP -e 'ssh -p 22'/etc/ root@192.168.197.129:/tmp/ #将当前主机内容推送到远程主机(需要安装远程支持包)

rsync -avzP -e 'ssh -p 22' root@chensiqi2:/opt /tmp #将远程主机内容拉取到当前主机(需要安装远程支持包)