rsync同步工具实战详解

rsync介绍:

是一款开源的、快速的、多功能的、全量及增量的本地货远程数据同步备份工具

Rsync的工作方式:
1.单个主机本地local之间的数据传输(类似cp命令)
2.借助rcp,ssh等通道来传输数据(类似于scp)
3.以守护进程(socket)的方式传输数据(rsync自身重要的功能)

使用本地同步备份数据方式:

直接本地同步:相当于cp (cp 源 目标 ) ( rsync 源 目标 )

#保持属性同步:
cp -a (-d设备 -p属性同步 -r目录 ) 源 目标
rsync -avz 源 目标
使用rsync删除文件:mkdir /null(创建一个空目录)
rsync -r --delete /null/ /data/

使用ssh方式

类似于scp,借用ssh通道来进行传输数据
scp -P52113 -rp /etc/hosts root@172.17.0.105:/tmp
rsync -avz -e 'ssh -p 52113' /etc/hosts root@172.17.0.105:/tmp

ps:-e 代表指定使用ssh通道

使用doment方式

一、服务端配置:
1)软件安装:yum install rsync
2)查看软件命令路径:which rsync
3)查看软件版本:rsync -version 或(rpm -qa rsync)
4)创建配置文件:vim /etc/rsyncd.conf

[root@DB2 hzftp]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
port= 873
address= 172.17.0.112
use chroot = no
max connections = 20
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[hzftp]
path = /var/ftp/hzftp
ignore errors
read only = false
list = false
hosts allow = 172.17.0.21/24
hosts deny = 0.0.0.0/32
auth users = backup
secrets file = /etc/rsync.pwd



配置文件内容详细讲解:

########################配置文件解释############################
uid = rsync #虚拟用户,需创建
gid = rsync #虚拟用户组
port= 873 #rsync默认的接口
address= 172.17.0.112 #默认自己A服务器端的ip地址
use chroot = no #表示连接成功后是否自动切换目录(yes/no)
max connections = 20 #最大连接数
pid file = /var/run/rsyncd.pid #pid文件存放的位置(rsyncd.pid存放路径)
lock file = /var/run/rsync.lock #锁文件存放伪装 (rsync.lock存放路径)
log file = /var/log/rsyncd.log #日志文件存放位置(rsyncd.log存放路径)

[hzftp] #(模块名)比较重要,rsync客户机同步的时候需要填写
path = /var/ftp/hzftp #服务器上共享目录的位置(一定要存在,如果没有需创建)
ignore errors
read only = false #是否只读
list = false #允许列表
hosts allow = 172.17.0.21/24 #允许的主机 (可以是IP也可以是IP段,加,号隔开)
hosts deny = 0.0.0.0/32 #不允许的主机
auth users = backup # 备份连接使用的账户(需要创建用户useradd bakcup
secrets file = /etc/rsync.pwd # 备份连接使用的账户密码(这里直接新建个文件即可)如下图
#########################结束###############################

5)创建虚拟用户rsync
创建用户(不能登录系统):useradd rsync -s /sbin/nologin
修改path的所有人和所属组:chown -R rsync.rsync /var/ftp/hzftp
创建rsync连接用的认证文件:echo "backup:shuyun2018" >/etc/rsync.pwd
修改rsync认证文件的权限:chmod 600 /etc/rsync.pwd
启用rsync服务:rsync --daemon
查看服务端口netstat -lntup|grep 873
查看服务:ps -ef|grep rsync
检查防火墙以及SELINUX是否关闭:getenforce--查看SELINUX状态
至此,服务端配置结束。

二、客户端配置:(操作一般都是在客户端上进行)
1)登录到客户端首先检查rsync服务是否安装:rpm -qa rsync
2)同样创建连接认证文件:echo "shuyun2018" >/etc/rsync.pwd

ps:客户端上我们只填密码即可,无需填用户名

3)修改认证文件权限:chmod 600 /etc/rsync.pwd
4)标准拉取文件格式:<两种方法拉取>

rsync -avz backup@172.17.0.112::hzftp/test1 /data1 --password-file=/etc/rsync.pwd

rsync -avz rsync://backup@172.17.0.112/hzftp/test1 /data1/ --password-file=/etc/rsync.pwd

ps:从服务器端往客户端上拉取数据

5)标准推送文件格式:<两种方法推送>

rsync -avz /data1 backup@172.17.0.112::hzftp/test1 --password-file=/etc/rsync.pwd

rsync -avz /data1 rsync://backup@172.17.0.112/hzftp/test1 --password-file=/etc/rsync.pwd

ps:从客户端往服务器端推送数据

注意:模块名<hzftp>后可以跟具体文件路径


########################################################

小结:(知识回顾)

rsync server服务端:

1.vim /etc/rsyncd.conf (用户、模块、共享目录、虚拟用户、密码文件)
2.创建共享目录 /var/ftp/hzftp
3.创建rsync用户,授权访问/var/ftp/hzftp
4.创建密码文件,复制配置文件里的路径《文件内容》==(虚拟用户名:密码)

注意操作习惯:/etc/rsync.pwd文件不要加d

5.密码文件权限修改为600
6.启动服务:rsync --daemon成功后放入/etc/rc.local文件(本地开机启动rsync)

注意操作习惯:一定要全路径添加,which rsync 找到路径位置

7.tail /var/log/rsyncd.log

> rsync client客户端:

1.密码文件和服务端没有任何关系。命令时需要
--password-file=/etc/rsync.pwd 内容:密码(不需要用户名)
2.修改/etc/rsync.pwd 600
客户端的密码权限也要降低,安全考虑
排错思路:
1.防火墙和selinux是否关闭
2./var/log/rsyncd/log
3.整个部署流程整体考虑


客户端排除打包操作:

首先我们man rsync 一下然后找到下面这两个选项:
--exclude=pattern 使用时直接跟原文件名;
--exclude-from=file 将排除的文件名以列的方式输入到一个文件里面,使用时直接使用文件名即可;

排除单个文件:
rsync -avz --exclude=a /data1 backup@172.17.0.112::hzftp/test1 --password-file=/etc/rsync.pwd
排除多个文件:
排除文件a和文件f(不连续文件以逗号区分)
rsync -avz --exclude={a,f} /data1 backup@172.17.0.112::hzftp/test1 --password-file=/etc/rsync.pwd
排除包含文件a到文件g之间所有文件(连续文件)
rsync -avz --exclude={a..g} /data1 backup@172.17.0.112::hzftp/test1 --password-file=/etc/rsync.pwd
排除文件test里所有列出的文件(test里以列区分文件)
rsync -avz --exclude-from=test /data1 backup@172.17.0.112::hzftp/test1 --password-file=/etc/rsync.pwd

服务端排除打包操作:(一般不在服务端控制)

#在服务端man rsyncd.conf 搜索exclude
直接在配置文件里面添加一行exclude=a b c (文件名以空格隔开)
杀进程的方法:kill cat /var/run/rsyncd.pid 或(pkill rsync)
启用服务:rsync --daemon

转载于:https://blog.51cto.com/13233089/2133106

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值