`

rsync同步服务器数据

 
阅读更多

 

简介

rsync是类unix系统下的数据镜像备份工具。本文以Nexue数据备份的实践应用为案例,介绍整个应用过程。作为入门材料,rsync的高级配置和应用不在本文范畴。

官方网站:http://rsync.samba.org/

功能及特点:(从百度抄的)

 

  • 可以镜像保存整个目录树和文件系统。
  • 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
  • 无须特殊权限即可安装。
  • 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
  • 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
  • 支持匿名传输,以方便进行网站镜象。

使用场景:

1、服务器数据备份

2、集群服务器中数据同步(增量是两点啊)

 

安装配置

rsync是应用模式是标准的C/S模式,原始数据所在的服务器A作为服务器,其他备份和同步的服务器B为客户端。所以分为服务器端配置和客户端配置。方案规划如下:

方案规划

服务器角色 服务器名称 服务器IP 用户 备份同步目录
服务端 服务器A 192.168.30.202 root /data/sonatype-work
客户端 服务器B 192.168.30.208 root /data/sonatype-work

 

rsync安装

rsync的安装,服务器端和客户端完全相同。

# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz

# tar -xzvf rsync-3.0.9.tar.gz

# cd cd rsync-3.0.9

# ./configure --prefix=/usr

……

# make

……

# make install

……

说明:编译安装需要gcc支持,如果没有安装,请先安装。我使用的是centOS6.3,所以就直接:yum install gcc.就OK了。

 

OK,安装完成。

 

服务端配置(服务器A)

服务器端的需求是通过rsync提供对/data/sonatype-work目录的同步备份服务,同时要求服务器启动自动启动服务。rsync通配置主要通过3个配置文件配置完成。如下:

[root@localhost etc]# ll rsyncd.*

-rw-r--r-- 1 root root 918 Mar  6 22:44 rsyncd.conf

-rw-r--r-- 1 root root 191 Mar  6 22:06 rsyncd.motd

-rw------- 1 root root  14 Mar  6 22:04 rsyncd.secrets

 

  • rsyncd.conf:主配置文件,配置rsync服务的公共参数(IP,端口,进程文件,IP限制,日志,连接超时等)和需要同步的模块(需要同步的目录及常规参数)
  • rsyncd.secrets:客户端请求同步时的账户安全认证文件。类似samba的模式(user:passwsord[明文哈]),这个文件的需要特别注意权限设置为宿主可访问才行(chmod 600 rsyncd.secrets)。
  • rsyncd.motd:该文件就是客户端请求上来的时候,立即回复的欢迎信息,就和FTP登录时显示差不多意思。

下面我们分配配置和说明这些配置文件。

rsyncd.conf

别拷贝,直接到下面下载附件的好。

# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help

##################################### 以下是公共参数配置 #############################################
# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
# 服务的端口
port = 873
# 服务的IP
address = 192.168.30.202  
# 运行的宿主账户,这里为简单就root了
uid = root   
gid = root  
# 这个参数复杂,有空去查查。打开(yes)后有个功能是让符号链接可以同步过去(不通过符号链接对应的实际文件)
use chroot = yes
# 客户端只读
read only = yes
#limit access to private LANs
hosts allow=192.168.30.0/255.255.255.0
hosts deny=*
# 最大连接数
max connections = 5 
# 欢迎信息对应的文件
motd file = /etc/rsyncd.motd
# 客户端链接的超时时间
timeout = 300

# 以下是日志相关配置,可选使用独立日志文件和系统日志,这里选择的是系统日志(/var/log/message)
# This will give you a separate log file
# log file = /var/log/rsync.log
# This will log every file transferred - up to 85,000+ per user, per sync
# transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3

##################################### 同步模块配置 #############################################
[nexus]
# 需要同步的路径
path = /data/sonatype-work
# 客户端可以使用list命令列表显示
list=yes
# 忽略错误
ignore errors
# 认证用户
auth users = root
# 认证使用的账户密码文件
secrets file = /etc/rsyncd.secrets
# 备注信息
comment = This is nexus data
# 如果有忽略的子目录,可以通过exclude定义
# exclude = easylife/  samba/

 

 rsyncd.secrets

 

 

# 用户名:密码明文了
root:1qaz@WSX

 

 

rsyncd.motd

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++
        Welcome to Nexus rsync services
           2012--2013 create by zhangpu
++++++++++++++++++++++++++++++++++++++++++++++++++++

 

 

防火墙

如果你开启了操作系统的防火墙,请使用iptables配置873端口可用。我反反正是直接关闭了,简单点。

 

 启动服务

 手动方式

#/usr/bin/rsync --daemon  --config=/etc/rsyncd.conf  #--config用于指定rsyncd.conf的位置,如果在/etc下可以不写

xinetd方式

如果没有安装xinet,请先安装,对应本系统(CentOS),我直接 yum install xinet 就OK了

在rsync默认安装完成后,安装程序会自动在建立/etc/xinetd.d/rsync文件,但是默认情况是disable = yes(也就是不可用的),需要修改为disable=no 即可

然后,我们通过xinet启动rsync:

# service xinetd start/restart

测试下,可以查看进程,端口监听等,我还是喜欢最笨最原始的方式:telnet,哈哈

 

# telnet 192.168.30.202 873

Trying 192.168.30.202...

Connected to 192.168.30.202 (192.168.30.202).

Escape character is '^]'.

@RSYNCD: 30.0

+++++++++++++++++++++++++++++++++++++++++++++++++++++

        Welcome to Nexus rsync services

           2012--2013 create by zhangpu

++++++++++++++++++++++++++++++++++++++++++++++++++++

 

 

都看到欢迎界面了,肯定服务起来了。

 

客户端配置(服务器B)

客户端是备份服务器,负责使用rsync命令从服务器备份或同步数据到本地指定目录。这里使用crontab+rsync实现定时自动增量同步的功能。

我决定在/data/rsync下建立一个脚本来实现启动rsync同步的功能,然后再使用crontab来实现定时调度。

 

[root@localhost rsync]# ll /data/rsync

total 8

-rwxr-xr-x 1 root root 177 Mar  6 15:27 rsync_client_nexus.sh

-rwx------ 1 root root   9 Mar  6 15:17 rsyncd.secrets

 

 

rsync_client_nexus.sh

 

#!/bin/sh
# backup 192.168.30.202 nexus data with rysnc
# 参数说明:
# -avzP表示归档,压缩并显示进度;
# --delete表示如果服务端删除的文件,客户端也需要删除;
# --password-file: 指定用户密码文件,不用用户交互输入。
# root@192.168.30.202::nexus 表示:使用root用户访问192.168.30.202的nexus模块,‘::’表示从服务器端拷贝数据
# /data/sonatype-work : 本地保存同步文件的目录。
/usr/bin/rsync -avzP --delete --password-file=/data/rsync/rsyncd.secrets root@192.168.30.202::nexus /data/sonatype-work

 rsyncd.secrets

该文件保存rsync命令中使用的用户名的密码明文,这里就是上面的root用户的密码。同时注意这里和服务器端一样,该文件的权限为宿主可以读写(chmod 600 rsyncd.secrets)

# root(rsync的,非操作系统)用户的密码
1qaz@WSX

 

crontab配置

这是配置每天凌晨1点1分进行同步处理。

# crontab -e

1 1 * * * /data/rsync/rsync_client_nexus.sh   1> /dev/null

 

测试

 

测试就比较简单了,在服务器A的/data/sonatype-work下建立一个testfile,随便输入些东西,然后在服务器B中手动运行同步脚本rsync_client_nexus.sh,完成后在服务器B中相同目录检查是否有该文件。通过这种方式,你可以再修改文件,删除文件等测试。

 

 

分享到:
评论

相关推荐

    Rsync同步局域网主机WIN7数据到公网linux服务器.docx

    Rsync同步局域网主机WIN7数据到公网linux服务器.docx

    linux rsync 客户端与服务端配置说明

    目录 1. 什么是rsync; 2、rsync 服务器的理由和用途; 3、架设rsync服务器过程;...6.3 让rsync 客户端自动与服务器同步数据; 7 问题处理; 8 未尽事宜; 9 关于本文; 10 更新日志; 11 参考文档;

    rsync配置方法(doc)

    6.3 让rsync 客户端自动与服务器同步数据; 7 问题处理; 8 未尽事宜; 9 关于本文; 10 更新日志; 11 参考文档; 12 相关文档; +++++++++++++++++++++++++++++++++++ 正文 +++++++++++++++++++++++++++++++++++

    CentOS平台实现搭建rsync远程同步服务器的方法

    本文实例讲述了CentOS平台实现搭建rsync远程同步服务器的方法。分享给大家供大家参考,具体如下: rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 rsync ...

    rsync服务器架设(数据同步文件增量备份).doc

    文章目录HYPERLINK"http://www.centos.bz/2011/06/rsync-server-setup/"\l"什么是rsync"\o"什么是rsync"什么是rsyncHYPERLINK"http://www.centos.bz/2011/06/rsync-server-setup/"\l"rsync的安装"\o"rsync的安装...

    rsync+inotify数据实时同步.pdf

    rsync+inotify实现在Linux系统下的数据在不同的服务器之间实时同步,screen命令实现后台自动运行。

    用Rsync实现windows下同步linux服务器的数据 - OS_Performance - 博客园.mhtml

    用Rsync实现windows下同步linux服务器的数据 - OS_Performance - 博客园

    Linux 同步技术 rsync+sersync

    本文档主要是讲解rsync 的源码安装部署过程以及如何利用rsync实现服务器之间的数据同步,同时利用sersync实现实时同步,当然也可以利用计划任务来打到相同的效果。

    rsync ssh 数据同步分析

    1.rsync和ssh差异远程同步命令 代码如下: 命令格式: #rsync [option] 源路径 目标路径 其中: [option]: a:使用archive模式,等于-rlptgoD,即保持原有的文件权限 z:表示传输时压缩数据 v:显示到屏幕中 e:使用远程...

    ansible实现一键部署rsync服务,并将同步结果钉钉消息发送

    2) 调用钉钉机器人接口,采取markdown形式,此形式可以定义一个固定的标题,比如:rsync同步情况汇总,这样在钉钉机器人安全设置里,只需要将标题设为关键字即可,具体发送内容千奇百怪也没关系。另外两种方式各有...

    linux rsync同步命令(值得收藏)

    如果你是一位运维工程师,你很可能会面对几十台、几百台甚至上千台服务器,除了批量操作外,环境同步、数据同步也是必不可少的技能。 说到“同步”,不得不提的利器就是rsync,今天就来说说我从这个工具中看到的同步...

    inotify+rsync实现实时同步的方法

    要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 发现目录中数据产生变化,就利用rsync服务推送到备份服务器上 1.2 实现实时同步的方法 inotify+rsync 方式实现数据同步 sersync 方式实现实时数据...

    Rsync 服务器文件同步的搭建以及使用

    rsync 是类unix系统下的数据镜像备份工具, 它可以镜像保存整个目录树和文件系统。并且很容易做到保持原文件的权限,时间,软硬链接等等

    centos7下rsync+crontab定期同步备份

    最近需求想定期备份内部重要的服务器数据到存储里面,接下来通过本文给大家分享centos7下rsync+crontab定期同步备份,感兴趣的朋友跟随小编一起看看吧

    rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted

    今天在同步数据的时候提示rsync: failed to set times on “xxxx”: Operation not permitted,一般来说要不是服务器时间不对或者权限没有设置好

    rsync:一个简单的ssh,crontab rsync服务器客户端Docker映像,可以轻松地在Docker卷中同步数据

    一个简单的ssh,crontab rsync服务器/客户端Docker映像,可以轻松地rsync Docker卷中的数据 示例Docker-compose version: "3.2" services: rsync: image: rsync:dev restart: on-failure environment: - ...

    inotify-tools+rsync实时同步文件的配置方法

    服务器B:论坛从服务器,需要把X2的图片附件和MySQL数据实时从A主服务器实时同步到B服务器.MySQL同步设置会在下一编中说到.以下是用于实时同步两台服务器的图片。 因为一般的RSYNC需要CRON来定期运行SH脚本来实现同步...

    文件定时备份,服务器文件同步备份

    在需要传同步文件出来的windows服务器上安装同步Rsync Server软件后,会在服务器上建一个管理员级别的SvcwRsync用户,安装完成后,会有一个提示信息,告诉我们该用户的密码,如果觉得密码简单,为了安全我们可以修改...

    在Windows中配置Rsync同步文件的方法

    Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限、时间、软硬链接。第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分。传输数据过程中可以实行压缩及...

Global site tag (gtag.js) - Google Analytics