现在的位置: 首页 > Linux > Linux管理 > 正文
rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置
2013年12月14日 Linux管理, 服务器集群技术 ⁄ 共 4925字 评论数 9 ⁄ 被围观 7,575 views+

一、概述

前面讲了很多集群的内容,集群间服务器实现数据的同步一直是一个问题,比如一个lvs集群中,如果有上百台RS服务器,当更新Web程序时,如何在这么多台服务器间进行快速的更新,这是一个问题,如果使用手动更新,或者scp等命令,明显是不可取的。因此,今天介绍这样一组工具实现这样的应用,后面也会讲到puppet等工具的使用。

1.1 什么是rsync?

rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输。rsync中一项与其他大部分类似程序或协议中所未见的重要特性是镜像对每个目标只需要一次传送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。
在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输协议或者通过远程shell如RSH或者SSH伺服文件。SSH情况下,rsync客户端运行程序必须同时在本地和远程机器上安装。

1.2 什么是sersync?

sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),这两个都是基于脚本语言编写的。相比较上面两个项目,本项目优点是:
sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。

1.3 什么是inotify?

inotify是Linux核心子系统之一,做为文件系统的附加功能,它可监控文件系统并将异动通知应用程序。本系统的出现取代了旧有Linux核心里,拥有类似功能之dnotify模块。inotify的原始开发者为John McCutchan、罗伯特·拉姆与Amy Griffis。于Linux核心2.6.13发布时(2005年六月十八日),被正式纳入Linux核心。尽管如此,它仍可通过补丁的方式与2.6.12甚至更早期的Linux核心集成。

因此,利用inotify的文件系统更改通知功能,结合rsync和sersync等工具,就能很好的实现当主服务器文件变动后能及时更新到其他服务器。

1.4 单纯使用rsync和使用serync+rsync的区别:

使用rsync+crontab做定时同步时,主服务器端开启rsync守护进程,而镜像服务器是运行rsync客户端,平时一般会利用crontab定时获取rsync服务器上的数据。
但使用rsync+sersync做实时同步时,用于推送文件的服务器运行sersync服务,用于接收文件的服务器则运行rsync守护进程,简单来说就是sersync会利用rsync命令将文件推送到rsync服务器,实际线上使用一般会把sersync作为主服务器,rsync作为镜像服务器,实现数据同步备份,web镜像等功能。

二、安装和使用rsync

2.1 rsync的安装

每个镜像服务器(需要同步的服务器)都需要安装rsync守护进程。

一般发行版都带有rsync,因此我这里直接使用yum安装。当然在很多发行版上默认已经安装了rsync。

[root@web1 ~]# yum install rsync

[root@web1 ~]# rpm -ql rsync
/etc/xinetd.d/rsync
/usr/bin/rsync
/usr/share/doc/rsync-3.0.6
/usr/share/doc/rsync-3.0.6/COPYING
/usr/share/doc/rsync-3.0.6/NEWS
/usr/share/doc/rsync-3.0.6/OLDNEWS
/usr/share/doc/rsync-3.0.6/README
/usr/share/doc/rsync-3.0.6/support
/usr/share/doc/rsync-3.0.6/support/Makefile
/usr/share/doc/rsync-3.0.6/support/atomic-rsync
/usr/share/doc/rsync-3.0.6/support/cvs2includes
/usr/share/doc/rsync-3.0.6/support/deny-rsync
/usr/share/doc/rsync-3.0.6/support/file-attr-restore
/usr/share/doc/rsync-3.0.6/support/files-to-excludes
/usr/share/doc/rsync-3.0.6/support/git-set-file-times
/usr/share/doc/rsync-3.0.6/support/logfilter
/usr/share/doc/rsync-3.0.6/support/lsh
/usr/share/doc/rsync-3.0.6/support/mnt-excl
/usr/share/doc/rsync-3.0.6/support/munge-symlinks
/usr/share/doc/rsync-3.0.6/support/rrsync
/usr/share/doc/rsync-3.0.6/support/rsyncstats
/usr/share/doc/rsync-3.0.6/support/savetransfer.c
/usr/share/doc/rsync-3.0.6/tech_report.tex
/usr/share/man/man1/rsync.1.gz
/usr/share/man/man5/rsyncd.conf.5.gz

rsync是由超级守护进程xinetd来启动的。因此需要启动xinetd服务。

2.2 配置rsync服务器

rsync服务器主要有三个配置文件:rsyncd.conf,rsyncd.secrets和rsyncd.motd,而rsync安装后并没有自动创建相关配置文件,因此我们还需手动创建:

[root@web1 ~]# mkdir /etc/rsyncd  ##创建配置目录
[root@web1 ~]# touch /etc/rsyncd/rsyncd.conf  ##创建主配置文件
[root@web1 ~]# touch /etc/rsyncd/rsyncd.secrets  ##创建用户密码文件
[root@web1 ~]# chmod 600 /etc/rsyncd/rsyncd.secrets ##修改用户密码文件
[root@web1 ~]# touch /etc/rsyncd/rsyncd.motd   ##创建定义服务器信息的文件

编辑主配置文件:

[root@web1 ~]# vi /etc/rsyncd/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   ##监听端口
address = 192.168.204.129  ##监听地址
#uid = nobody
#gid = nobody  
uid = root
gid = root

use chroot = yes   ##是否限制在指定目录,为了安装,一般需要启用
read only = no

#limit access to private LANs
hosts allow=192.168.204.0/255.255.255.0   ##允许网段
hosts deny=*

max connections = 5
motd file = /etc/rsyncd/rsyncd.motd

#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
timeout = 300

##定义一个同步目录

[webhome]
path = /var/www/html
list=yes
ignore errors
auth users = apache
secrets file = /etc/rsyncd/rsyncd.secrets  ##指定上述账号密码文件
comment = web home

exclude =   data/   ##排除目录

编辑/etc/rsyncd/rsyncd.secrets文件:

[root@web1 ~]# vi /etc/rsyncd/rsyncd.secrets

apache:password123

##注意,这个账号是系统账号,但没有使用系统账号的密码,而是自定义密码

重启使rsync生效:

[root@web1 ~]# /usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf

设置为开机启动:

[root@web1 ~]# echo "/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf" >> /etc/rc.d/rc.local

2.3 使用rsync客户端实现数据同步

客户端安装同上,额外只需配置一个密码文件,具体如下:

[root@web2 ~]# mkdir /etc/rsyncd  ##创建配置目录
[root@web2 ~]# echo “passowd123”> /etc/rsyncd/rsyncd.password  ##创建密码文件,密码为服务器端rsyncd.secrets文件中的密码。

[root@web2 ~]# chmod 600 /etc/rsyncd/rsyncd.password 

同步:

[root@web2 ~]# rsync -avzP --delete  --password-file=/etc/rsyncd/rsyncd.password apache@web1::webhome /var/www/html/

receiving incremental file list
./
index.html
          22 100%   21.48kB/s    0:00:00 (xfer#1, to-check=1/3)
newpage.html
          26 100%    0.63kB/s    0:00:00 (xfer#2, to-check=0/3)

sent 100 bytes  received 264 bytes  728.00 bytes/sec
total size is 48  speedup is 0.13

说明:

--delete:本地与服务器完全一样,如果本地存在不一样的,则删除,慎用

--password-file:指定密码文件,如果不指定,则需手动输入

-a :参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z :传输时压缩;
-P :传输进度;
-v :传输时的进度等信息

apache@web1::webhome  用双冒号引用主配置文件中的定义资源,也可以使用单引号跟绝对路径

以后同步时,只会同步新增内容。

最后将上述命令加入计划任务定时同步即可。

可能存在的问题:

  1. 防火墙端口开发问题:iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT
  2. 权限问题,需要写权限

目前有 9 条留言 其中:访客:9 条, 博主:0 条

  1. カルティエ 指輪 メンズ : 2017年05月24日20:05:02  -49楼 @回复 回复

    ディオール時計偽物
    弊社主要取扱商品 :ブランドバッグコピー品、ブランド財布コピー品。
    ルイヴィトン コピー品、シ,ャネル コピー品、グッチ コピー品,
    エルメスコピー品、バレンシアガコピー品があります。
    おしゃれな大人の女性にすごく人気があります。
    これを持っているだけで人目を引くこと間違いなし!!
    美しいフォルムは気品と風格が世界のセレブを魅了して止みません。
    是非この機会にご入札ください.

  2. ルイ.ヴィトンバッグコピー品 : 2017年07月14日11:58:10  -48楼 @回复 回复

    財布、腕時計、バッグ ブランドコピー
    当店の主要な経営のブランド:ヴィトン ディオール
    シャネル グッチ コーチ ロレックスなど.
    当社の目標はコピーブランド品質第一、信用第一ブランドコピーブランド、ユーザー第一の原則を守り、
    心地よい親切で最高のインターネットサービスご提供することです。
    品質を重視、納期も厳守、信用第一は当社の方針です。
    弊社長年の豊富な経験と実績があり。
    輸入手続も一切は弊社におまかせてください。
    質が一番、最も合理的な価格の商品をお届けいたします。

  3. セリーヌスーパーコピー : 2017年07月26日17:30:09  -47楼 @回复 回复

    ブランドコピー
    弊店はブランドコピー時計N品、
    ロレックスコピー時計、パネライレプリカ時計、
    シャネルレプリカ時計、ブライトリングレプリカ時計、
    ウブロレプリカ時計、IWC コピー時計、
    二年以内に人的破壊でない故障は無料で修理をします。
    正規品と同等品質のコピー品を低価でお客様に提供します。
    安心して購入して下さい。
    自身が使用するだけでなく、入学、卒業、誕生日、結婚のお祝い等のギフトにもご利用ください。

  4. ブランドコピーブランド : 2017年07月28日09:17:23  -46楼 @回复 回复

    ブランド バッグ 財布 コピー 専門店
    弊社は平成20年創業致しました、ブランドバッグ.財布コピーの取り扱いの専門会社です。
    世界有名なブランドバッグ.財布を日本のお客様に届ける為に5年前にこのネット通販サイトを始めました。
    全てのブランドバッグ.財布は激安の価格で提供します、
    外見と本物と区別できないほど出来が良くて、質は保証できます、
    弊社のブランドバッグ.財布は同類商品の中で最高という自信があります。
    発送前に何度もチェックし、癖のある商品と不良品は発送しません。我社創業以来の方針は品質第一、
    信用第一、ユーザー第一を最高原則として貫きます、安心、安全のサービスを提供致します。
    ホームページ上でのご注文は24時間受け付けております

  5. N級品販売 : 2017年07月30日18:04:44  -45楼 @回复 回复

    弊店では信用第一主義を徹底しており社員全員下記の方針のもとに頑張っています。
    1.不適合品を入荷しない。
    厳しく受け入れ検査を行い、お客様に満足いただける品質のいい物だけを入荷する。
    2.不適合品を出荷しない。
    出荷前に細部まで二重確認を行い、お客様からご注文頂いた商品を納期通り出荷する。
    3.お客様からのクレームゼロ
    お客様第一主義を徹底し、お客様からのお問い合わせ、苦情等に対して積極的かつ丁寧に対応いたします。

  6. ブランドコピーバッグ : 2017年08月03日16:32:37  -44楼 @回复 回复

    クロムハーツ財布
    人気の売れ筋商品を多数取り揃えております。全て激安特価でご提供.お願いします.
    迅速、確実にお客様の手元にお届け致します。
    実物写真、付属品を完備しております。
    低価格を提供すると共に、品質を絶対保証しております。
    商品の交換と返品ができます。
    ブランドコピー財布の誠実と信用の店
    24時間以内に出荷し、3~4日に到着して、

  7. 偽ブランド 通販 : 2017年09月28日07:20:21  -43楼 @回复 回复

    激安なヴィトンコピー通販店
    品質が秀逸で値段が激安なヴィトンコピー通販店
    海外安心と信頼のルイ・ヴィトンコピー
    業内最高レベルのスーパーコピーブランド
    正規品と同等品質の超人気などの商品や情報が満載!
    品質が秀逸&H44値段が激安!
    今、いろいろルイ・ヴィトン コピー2017春夏新品が続々登場します。
    爆安SALEも開催.。

  8. ロレックススーパーコピーN級品 : 2017年10月23日10:10:57  -42楼 @回复 回复

    とても迅速丁寧で
    素晴らしいと思います。
    お振り込みしたら
    すぐお返事が来て
    その日の内に
    発送して下さいました!
    商品は、まだですが
    とても素敵なショップさんなので
    先にショップレビューだけさせて頂きました。
    また何か購入したいと思います。

  9. スーパーコピールイヴィトン財布 : 2017年11月09日09:39:47  -41楼 @回复 回复

    丁寧な梱包で満足しました。
    カードも添えてあり、商品や顧客にたいしても丁寧なショップだと
    おもいます。
    また購入したくなるショップです。
    クリスチャンディオールトートバッグ♪送料無料 新品SAランク クリスチャンディオール トートバッグ パナレア スモール ショッピングバッグ M1010PPCD PVC カナージュキルティング レザー カーキ 新品 ショルダーバッグ 革 141104019 (旭) Chiristian Dior C.Dior PANAREA
    仕事用にぴったり
    A3書類が入り、なお、軽いバッグを探していました。
    仕事用ですので、お値段も手ごろ。
    色も、グレイに近い色で気に入りました。

给我留言

留言无头像?


×