开发者社区> 技术小牛人> 正文

rsync服务实现推送,拉取

简介:
+关注继续查看

1.简介

rsync是一款远程数据同步工具,一个Rsync server能够同时备份多个客户端数据,需要scp,ssh,daemon的支持,默认端口为873。

rsync + crond 可以实现数据定时同步,rsync + inotify可以实现数据的实时同步。

工作中的Rsync服务最好以只读方式提供要备份的数据,避免造成误操作。


2.实验环境介绍

两台CentOS6.3 x64   测试机,一台server,一台client。系统已经默认安装了rsync软件。


3.Rsync命令格式及命令参数

参数介绍:

-a    归档模式,表示以归档方式传输文件,并保持所有文件属性

-v    详细模式输出

-z     对备份的文件在传输时进行压缩处理

--delete    无差异同步


4.Rsync的三种工作模式

1)本地的拷贝和删除

# rsync avz /etc/hosts /tmp   将文件hosts拷贝到/tmp目录中。与cp命令相似,但区别在rsync可以自己比较两个文件,实现增量备份

# rsync avz delete /tmp/ /opt/      /tmp/目录为空,加上 --delete参数,相当于 rm 命令

--delete可以理解为:本地有远端有,本地没有删除远端有的


2)remote shell

rsync远程"推"和"拉"

(推)# rsync avzP e 'ssh p 22' /tmp/ root@192.168.87.138:/tmp/aaa

把本地的 /tmp/ 目录中的文件复制到192.168.87.138的 /tmp/aaa 目录下,通过22端口

(拉)# rsync avzP e 'ssh p 22' root@192.168.87.138:/tmp/ /tmp

把192.168.87.138的 /tmp/ 目录文件复制到本地的 /tmp 目录中

# rsync -avzP -e 'ssh -p 22' /tmp/ root@192.168.87.133:/tmp

# rsync -avzP -e 'ssh -p 22' root@192.168.87.133:/tmp/ /tmp

标红的斜杠,有这个就是推送指定文件夹的全部内容,没有这个就是推送整个目录


3)daemon     (配置Rsync服务端步骤)

首先确认系统中安装了rsync版本及其版本号

# rsync --version查看当前rsync版本

# rpm qa rsync

rsync的配置文件默认不存在,需要手工创建。路径为 /etc/rsyncd.conf

编辑 /etc/rsyncd.conf 文件,内容如下。复制粘贴保存退出即可。

#Rsync server

#yuci

uid = rsync

gid = rsync

use chroot = no

max connections = 2000

timeout = 600

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

ignore errors

read only = false

list = false

hosts allow = 192.168.0.0/24

hosts deny = 0.0.0.0/32

auth users = rsync_backup

secrets file = /etc/rsync.password

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

[backup]

comment = www by yuci

path = /backup


创建rsync用户及共享的目录 /backup(创建完后检查一下,养成好习惯)

如上编辑的文件,secrets file = /etc/rsync.password 为密码文件,可以实现两台机器互信。因为是密码所以需要更改权限。

rsync_backup 是上面配置文件的 auth users = rsync_backup   "123456"为连接时需要验证的密码

# rsync --daemon     启动rsync服务

# netstat lntup | grep rsync     查看rsync是否正常运行在873端口

# ps ef | grep rsync

# echo "rsync --daemon" >> /etc/rc.local      加入开机自启动

# cat /etc/rc.local

到此为止,服务器端的配置已经完成。接下来配置客户端

# echo "123456" >> /etc/rsync.password

只需要密码即可,因为在连接命令中已经有了 rsync_backup用户

# chmod 600 /etc/rsync.password

跟服务器的密码文件相同,需要修改权限

客户端只需要这简单的两步就可以了。


5.测试环境搭建是否成功

现在要将客户端的 /tmp/ 目录中的文件,推送到服务端的 /backup 目录中,将 /backup 目录清空,在 /tmp/ 目录中随便创建几个文件

没有报错推送成功,下图选中的backup是要对应 /etc/rsyncd.conf 中的模块命令

与上图的 ::backup 对应

回到服务器端检查,测试成功

本文转自   mlwzby   51CTO博客,原文链接:http://blog.51cto.com/aby028/1871433

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
07-rsync企业真实项目备份案例实战(需求收集--服务器配置---客户端配置---报警机制---数据校验---邮件告警)
2.需求描述 客户端需求: 1.客户端每天凌晨1点在服务器本地打包备份(系统配置文件、日志文件、其他目录、应用配置文件) 2.客户端备份的数据必须存放至以主机名IP地址当前时间命名的目录中,例如/backup/nfs_192.168.81.210_2020-05-26,其实更好的备份方式/backup/192.168.81.210/nfs_2020-05-26,一会采用后者,要求不只是备份文件,要求连上级目录一并拷过来
16 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
10027 0
5723
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载