RHEL7构建Rsync数据同步服务器
Rsync(remote sync)是UNIX及类UNIX平台下一款神奇的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份,Rsync可以根据数据的变化进行差异备份,从而减少数据流量,提高工作效率。你可以使用它进行本地数据或远程数据的复制,Rsync可以使用SSH安全隧道进行加密数据传输。Rsync服务器端定义源数据,Rsync客户端仅在源数据发生改变后才会从服务器上实际复制数据至本地,如果源数据在服务器端被删除,则客户端数据也会被删除,以确保主机之间的数据是同步的。Rsync使用TCP 873端口。
使用CentOS 7系统安装部署Rsync非常方便,安装光盘以及YUM源中都提供了rsync软件包,使用YUM方式安装即可。下面的案例演示了如何共享/common目录,为此,我们需要创建/common目录,并复制一些测试文件存放在该目录下。本例需要手动创建配置文件/etc/rsync.conf,该文件具体的语法格式在后面有详细的描述。
[root@centos7 ~]# yum -y install rsync
[root@centos7 ~]# mkdir /common; cp /etc/init.d/* /common/
[root@centos7 ~]# vim /etc/rsync.conf
#/etc/rsyncd.conf #设置服务器信息提示文件名称,在该文件中编写提示信息 motd file = /etc/rsyncd.motd #开启Rsync数据传输日志功能 transfer logging = yes #设置日志文件名称,可以通过log format参数设置日志格式 log file =/var/log/rsyncd.log #设置Rsync进程号保存文件名称 pid file =/var/run/rsyncd.pid #设置锁文件名称 lock file =/var/run/rsync.lock #设置服务器监听的端口号,默认为873 port = 873 #设置服务器所监听网卡接口的IP地址,这里服务器IP地址为192.168.0.254 address = 192.168.0.254 #设置进行数据传输时所使用的账户名称或ID号,默认使用nobody uid = nobody #设置进行数据传输时所使用的组名称或GID号,默认使用nobody gid = nobody #设置user chroot为yes后,rsync会首先进行chroot设置,将根映射到path参数路径下,对客户 #端而言,系统的根就是path参数所指定的路径。但这样做需要root权限,并且在同步符号 #连接资料时仅会同步名称,而内容将不会同步。 use chroot = no #是否允许客户端上传数据,这里设置为只读。 read only = yes #设置并发连接数,0代表无限制。超出并发数后,如果依然有客户端连接请求,则将会收 #到稍后重试的提示消息 max connections = 10 #模块,Rsync通过模块定义同步的目录,模块以[name]的形式定义,这与Samba定义共 #享目录是一样的效果。在Rsync中也可以定义多个模块 [common] #comment定义注释说明字串 comment = Web content #同步目录的真实路径通过path指定 path = /common #忽略一些IO错误 ignore errors #exclude可以指定例外的目录,即将common目录下的某个目录设置为不同步数据 #exclude = test/ #设置允许连接服务器的账户,账户可以是系统中不存在的用户 auth users = tom,jerry #设置密码验证文件名称,注意该文件的权限要求为只读,建议权限为600,仅在设置auth users #参数后有效 secrets file = /etc/rsyncd.secrets #设置允许哪些主机可以同步数据,可以是单个IP,也可以是网段,多个IP与网段之间使用空 #格分隔 hosts allow=192.168.0.0/255.255.255.0 #设置拒绝所有(除hosts allow定义的主机外) hosts deny=* #客户端请求显示模块列表时,本模块名称是否显示,默认为true list= false
接下来,通过echo的方式创建密码文件/etc/rsyncd.secrets,在该文件中输入两个账户:tom账户的密码是pass,jerry账户的密码是111。需要注意的是,密码文件不可以对所有的人开放可读权限,为了安全,建议设置权限为600。创建服务器提示信息文件并向该文件中导入欢迎词。由于Rsync默认不是开机启动服务,为了实现开机启动Rsync服务,我们可以通过echo将rsync --daemon追加至开机启动文件/etc/rc.local。最后通过设置防火墙开启873端口的入站数据请求。
[root@centos7 ~]# echo "tom:pass" > /etc/rsyncd.secrets
[root@centos7 ~]# echo "jerry:111" >> /etc/rsyncd.secrets
[root@centos7 ~]# chmod 600 /etc/rsyncd.secrets
[root@centos7 ~]# echo “welcome to access” >/etc/rsyncd.motd
[root@centos7 ~]# rsync --daemon
[root@centos7 ~]# echo “/usr/bin/rsync --daemon” >> /etc/rc.local
[root@centos7 ~]# firewall-cmd --permanent --add-port=873/tcp
#添加防火墙规则,允许873端口的数据访问
客户端同步数据
现在让我们开始同步数据吧,在客户端主机中同样是使用rsync命令进行初始化数据传输,使用同样的程序,但客户端主机不需要--daemon选项。
[root@centos7 ~]# yum -y install rsync
[root@centos7 ~]# rsync-vzrtopg --progress tom@192.168.0.254::common /test

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Js判断H5上下滑动方向及滑动到顶部和底部判断
昨天一位做移动端H5开发的同事说,H5滑动方向要实时判断向下还是向上,但判断是否滑动到底部时判断有问题一直没解决,于是就去问度娘,搜了很多资料,大部分有重复,于是根据大家的资料借鉴学习,在大家的基础上写了一个小例子。功能主要时可以实时的判断上下滑动的方向,是否滑动到底部或顶部来做某些事件触发。例子中有使用到其他博客上的内容,如原作者看到请勿怪,如果例子中有错误的请大家指正。如果使用pc端浏览器查看请把浏览器设置为手机浏览器模式。 <!DOCTYPEHTML> <html> <head> <metacharset="utf-8"> <title>手机端触屏手指滑动方向</title> <metacontent="width=device-width,initial-scale=1.0,minimum-scale=1.0,user-scalable=no,maximum-scale=1.0"id="viewport"name="viewport"> <scripttype="text/javascri...
- 下一篇
微信公众号开发80端口映射解决方案
说明 最近公司要搞微信公众号开发,需要解决80端口映射的问题,看了网上好多老司机的方法,最终选择ngrok比较符合公司的情况。微信公众平台开发,可参考:https://mp.weixin.qq.com/wiki 。微信公众号接口只支持80接口。 测试环境: windows10_x64企业版+ngrok2.2.4 (windows64位) 安装步骤 一.下载ngrok,网址:https://ngrok.com/download ,然后选择自己所需的版本,我选择windows版本。 二.进入https://dashboard.ngrok.com/user/signup,填写信息进行注册,登录后会看到有一个授权码 三.解压文件并启动程序。我解压目录是D:\software\ngrok,以管理员权限打开CMD,输入如下: 进入程序解压目录 d: cd software\ngrok 输入你的授权ID ngrok authtoken 7pZ47jffjadfEXwBcrz_4htpp1tZuaYinLWoWGhkJ 启用端口映射(注:http后面跟的是本地要映射的端口) ngrok...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Hadoop3单机部署,实现最简伪集群