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/ [email protected]:/tmp/aaa

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

(拉)# rsync avzP e ‘ssh p 22‘ [email protected]:/tmp/ /tmp

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

# rsync -avzP -e ‘ssh -p 22‘ /tmp/ [email protected]:/tmp

# rsync -avzP -e ‘ssh -p 22‘ [email protected]:/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 对应

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

时间: 2024-08-06 08:51:00

rsync服务实现推送,拉取的相关文章

终端对平台推送拉取数据选型

开会讨论了一个问题,就是我们平台从终端获取到数据,经过我们的处理后,传输给另一个平台做展示,这个是实时的(要求必须经过我们平台,所以杠精住嘴~~),在这个传输过程中,给出了一下三个方案来传输数据, tcp: websocket: API: 最后还是选取了API的方式,不太了解这几个,需要考虑的问题是,实时性高,数据量较大,今天没时间了,以后再整理~~ 原文地址:https://www.cnblogs.com/shuaidong/p/11025304.html

java SDK服务端推送 --极光推送(JPush)

网址:https://blog.csdn.net/duyusean/article/details/86581475 消息推送在APP应用中越来越普遍,来记录一下项目中用到的一种推送方式,对于Andriod它并没有自己的原生推送机制,一种简单的推送方式是采用第三方推送服务的方式,即通过嵌入SDK使用第三方提供的推送服务,主流的有百度云推送,极光推送,友盟,个推.亚马逊等等.本篇博文只介绍采用极光推送的方式.        如果你是一个新手,建议你先看完本篇博客,然后在去看官网,这样也许上手会快一

pushlet服务端推送——点对点单播(不用修改lib包)

pushlet点对点单播,在网上看 ,大家都是将包修改然后替换lib中class,其实不用不这么麻烦,java可以继承嘛,继承原来的类重写里面的方法就行,不必编译出来替换class,这样不方便修改 新建一个类,继承nl.justobjects.pushlet.core.SessionManager类,重写里面的createSession方法即可 package com.pushlet.serveToClient; import javax.servlet.http.HttpSession; im

.net平台借助第三方推送服务在推送Android消息(极光推送)

.net平台借助第三方推送服务在推送Android消息(极光推送) 最近做的.net项目(Windows Service)需要向Android手机发送推送消息,真是有点困难,没有搞过就不停的搜文档,最后看到了一个开源项目PushSharp,可以在.net平台推送IOS,Android,Windows Phone等设备消息,大喜,然后先做了IOS的,成功了,但是做Android的时候遇到了问题,一直推送不成功,程序执行了,但是推送一直出不来,后来费劲的在网上搜,没有找到,最后放弃使用这种推送And

pushlet服务端推送

---------------------在jsp页面中加入---------------------- <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <base href=

Html5 服务端推送 Server-Sent Event

服务器推送事件(Server-sent Events)是 HTML 5 规范中的一个组成部分,可以用来从服务端实时推送数据到浏览器端.相对于与之类似的 COMET 和 WebSocket 技术来说,服务器推送事件的使用更简单,对服务器端的改动也比较小.对于某些类型的应用来说,服务器推送事件是最佳的选择. WebSocket 在介绍 HTML 5 服务器推送事件之前,首先介绍一些上面提到的几种服务器端数据推送技术.第一种是 WebSocket.WebSocket 规范是 HTML 5 中的一个重要

使用AJAX技术发送异步请求,HTTP服务端推送

使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于XMLHttpRequest让我们在不重载页面的情况下和服务器进行数据交换. 加上JavaScript和DOM(Document Object Model,文档对象模型),我们就可以在接收到响应数据后局部更新页面.XML指的是数据的交互模式,可以是纯文本(Plain Text).HTML或JSON.

订阅消息 | 小程序九九八十一坑之服务消息推送

微信团队前不久公测了「订阅消息」,原有的小程序模板消息接口将于 2020 年 1 月 10 日下线,届时将无法发送模板消息.「订阅消息」将完全替代「模板消息」,这两天得空测试了一波. 1.下发权限机制 我这边留言小程序用模板消息比较多,最有利的变化就是订阅消息只需用户授权即可,取消了模板消息的 formId,避免了获取.上传.储存.下发 formId 的流程,这个对开发者来说是好事. 同时将 7 天有效期的模板消息改成了用户自主订阅后,开发者可不限时间下发一条对应的服务消息,也就是没下发消息就永

.net平台借助第三方推送服务在推送Android,IOS消息(极光推送)

最近做的.net项目(Windows Service)需要向Android手机发送推送消息,真是有点困难,没有搞过就不停的搜文档,最后看到了一个开源项目PushSharp,可以在.net平台推送IOS,Android,Windows Phone等设备消息,大喜,然后先做了IOS的,成功了,但是做Android的时候遇到了问题,一直推送不成功,程序执行了,但是推送一直出不来,后来费劲的在网上搜,没有找到,最后放弃使用这种推送Android,另寻出路,随后找到了一种C2DM云端推送功能,但是问题又出