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 #将远程主机内容拉取到当前主机(需要安装远程支持包)