Rsync 实现文件定时同步

操作系统:

文件服务器端: Red Hat Linux Advanced Server release 2.1AS/i686 (Pensacola)

客户端:Red Hat Linux release 7.2 (Enigma)

其中,服务器端的Linux已经捆绑了 Rsync。我在AIX下也实现了客户端.

[注意事项]

1、    要确定系统本身是否已经绑定(安装)了Rsync,可以到/usr/bin ,/usr/local/bin/ 或者 /usr/sbin/ 等目录下查找 Rsync是否存在,或者使用 whereis  rsync,也行。

2、    已绑定了Rsync的系统,在 /etc/xinetd.d/rsync 中,默认是关闭的。可以将其打开,然后 重起服务 service xinted restart

3、    如果系统本身已安装了,那就不需要再安装,如果需要升级Rsync版本,只需按照正常的安装步骤安装即可。

4、    rsync默认绑定的是873端口,如果rsync已经作为后台进程启动了,那么通过netstat –nap|grep 873  应该可以查看到有rsync 进程。

1、安装rsync

第一步:从 http://rsync.samba.org/  下载rsync包(本文配置使用Rsync 2.6.5 released)

第二步:将rsync包上传到作为服务器的机器上(例如:128.128.6.168)

第三步:转到root身份登录,解压rsync-2.6.5pre2.tar.gz包,到指定目录(例如: /home/zuohao/rsync/),并且将rsync目录分配给某个用户(例如:zuohao)。

第四步:进入rsync 目录。 键入:./configure。

Rsync将检测系统信息,并且生成相关文件。

第五步:键入make,编译 C文件。(注意:运行该命令前先确定是否安装C编译器,例如gcc,cc等。)

第六步:键入 make install 安转rsync。(注意:运行该命令前先确定是否安装C编译器,例如gcc,cc等。)

第七步:如果以上编译都没有问题,rsync安装完成。

2、配置rsync服务端

服务端的主要配置文件是 /etc/rsyncd.conf(该文件可能不存在,可以自己新建一个。)  ,通过该文件可以配置全局访问的参数,需要备份的模块参数。以下面的配置为例:


uid = root

gid = root

use chroot = no

max connections = 4

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

hosts allow = 128.128.6.38

[inburst]

path = /usr/shr

comment = BACKUP CLIENT IS REDHAT ADVANCE SERVER 3.0

read only = yes

list = no

auth users = root

secrets file = /etc/inburst.pass

[file0]

path = /home/zuohao/www

comment = my rsync site

exclude = configfile

参数说明:参数包括两部分,全局参数和模块参数。

全局参数一般定义在文件的最前面,本例中的全局参数如下:


参数名


说明


uid


/etc/rsyncd.conf 所属用户ID,一般为root


Gid


/etc/rsyncd.conf 所属权限组


use chroot


在传输文件的之前,是否转到用户根目录。


Max connections


最大连接数


Pid file


服务进程pid保存文件


Lock file


锁文件路径


Log file


日至文件路径


Hosts allow


允许访问的ip地址,如果有多个ip,请用空格分割。

本例模块参数说明:


参数名


说明


[module name]


要备份的模块名,该名称客户端进行同步时需要调用


Path


要备份的目录


Comment


该模块的说明信息


Exclude


指定不需要同步的目录名,注意,该目录的路径是相对path的。不需要些绝对路径,如果有多个目录不需要同步,请用空格分割开.

rsyncd.conf 可以有更多的配置,例如密码的验证,模块的设置等。

[注意事项]

 rsyncd.conf 以及密码文件的权限必须是600,即只有root可读\写

更多rsyncd.conf属性请参考. http://rsync.samba.org/ftp/rsync/rsyncd conf.html

3、配置rsync 客户端

第一步:安装rsync:在客户端上要实现同步,同样需要安转rsync服务,(安装方法参考上面)。

第二步:测试是否安装成功。

在命令行输入:


rsync -vzrtopg --progress --delete [email protected]::file0 /home/zuohao/backup/

本地同步命令:(相当于cp命令,本台服务器不同目录间文件一致)

rsync -av --exclude="front/front_Runtime" --exclude="front/Html" --exclude="Public_front/ucc_client.html"  --exclude="front/Conf/pro.php" /disk1/www/html/frontweb/* /disk1/www/html/frontweb_news

/disk1/www/html/frontweb/下所有文件同步到文件夹 /disk1/www/html/frontweb_news

查看本地目录/home/zuohao/backup/ 是否与服务器中的需要备份目录文件已经同步。

参数说明


参数名


说明


Rsync


同步服务


-vzrtopg


v详细提示 
  a以archive模式操作,复制目录、符号连接 
  z压缩
  u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时


--progress


显示进程


--delete


删除文件保持同步


Zuohao


服务器允许访问的用户名


128.128.6.38


服务器IP


::file0


服务器中定义的备份模块名(注意:在模块名前面有两个冒号“::” 表示远程文件同步,只有一个冒号,表示本地文件同步)


/home/zuohao/backup/


本地备份文件目录

更多参数说明,参考rsync网站说明文档:

http://rsync.samba.org/ftp/rsync/preview/rsync.html

第三步:编制定时运行shell,运行以上命令,实现文件的定时同步。

通过编辑crontab ,增加相应的脚本,实现文件的定时同步.本例脚本如下:

*/30 * * * * zuohao /usr/local/bin/rsync.sh

在每个30分钟的时候运行一次.

4安装完成

完成以上配置后, rsync的服务器端和客户端的配置就已经完成,简单的文件定时同步基本能够实现了.在 rsync 的官方网站上 http://rsync.samba.org/ 有更多的例子和文档可以参考.希望大家能通过本例,对rsync有大至的了解后,能够去看那些文档,这样能够更全面的使用rsync.

[注意事项]

1、  一般情况下 Linux 服务器版都已经安装了rsync。

2、  安装rsync之前务必确定系统是否已安装了C编译器。否则安装无法继续。

3、  rsync的安装必须是root用户。

4、  rsyncd.conf文件的权限必须只有root能读、写,即 chmod 600 rsyncd.conf

5、  如果使用密码文件,密码文件的权限属性也只能是600

6、  一个rsyncd.conf 文件可以配置多个备份模块,每个模块可以定义允许访问的ip(hosts allow)地址以及不能访问的ip(hosts deny)具体参考rsync网站的rsyncd.conf说明文档。

时间: 2024-10-18 15:00:49

Rsync 实现文件定时同步的相关文章

使用cwRsync实现windows下文件定时同步【转】

1.参考文献: 使用cwRsync实现windows下文件定时同步(备份) 文件同步工具CwRsync的使用方法及常用命令详解 2.背景: 当前的SCADA架构中,有1台Server,5台FE,还有1台Client.其架构如下图所示: 虽然叫法不同,但是他们的安装文件和配置文件是完全一样的.并且大多数情况下,也建议这些服务器上面的配置文件保持一致,这样只需要维护一个版本的config即可,不需要个性化定义每台服务器上面的config文件.由此也带来了一个新的问题,每当我在一台机器上面修改了配置文

使用cwRsync实现windows下文件定时同步

1.参考文献: 使用cwRsync实现windows下文件定时同步(备份) 文件同步工具CwRsync的使用方法及常用命令详解 2.背景: 当前的SCADA架构中,有1台Server,5台FE,还有1台Client.其架构如下图所示: 虽然叫法不同,但是他们的安装文件和配置文件是完全一样的.并且大多数情况下,也建议这些服务器上面的配置文件保持一致,这样只需要维护一个版本的config即可,不需要个性化定义每台服务器上面的config文件.由此也带来了一个新的问题,每当我在一台机器上面修改了配置文

sersync2+rsync目录文件实时同步备份

说明: 192.168.1.2(sersync+rsync)---------------FTP 192.168.1.3(rsync)--------------------------backup 实验目的: 实时自动同步:192.168.1.2 ------->192.168.1.3到目录:/data/ftpdata ; 764  viconfxml.xml 765  ./GNU-Linux-x86/sersync2 -d -r confxml.xml 767  ./GNU-Linux-x8

rsync+inotify-tools文件实时同步

rsync+inotify-tools文件实时同步案例 全量备份 Linux下Rsync+sersync实现数据实时同步完成. 增量备份 纯粹的使用rsync做单向同步时,rsync的守护进程是运行在文件推送的服务器上,而接收的服务器是运行rsync客户端.使用sersync做文件实时同步刚好相反,用于接收文件的服务器运行rsync守护进程.

cwRsync实现windows下文件定时同步(sql server 2008R2 备份文件定时同步)

cwRsync分为客户端和服务端,服务端为文件被同不端,会起一个端口默认为873;客户端为要把文件主动同步到本机的一端,不会启动端口,当进行文件同步的时候,会主动连接服务端的873端口.拓扑图大概如下: 安装程序展示: ,安装程序已经通过csdn资源方式上传了,下面是连接. cwRsyncServer_4.0.5_Installer.zip cwRsync_Client_4.0.5_Installer.zip 安装: 安装服务器端: 下早Server端,上传到服务器上,解压后安装步骤如下: 这里

rsync+inotify文件实时同步

//安装inotify //在代码发布服务器上安装inotify,执行如下命令 tar xzvf inotify-tools-3.14.tar.gz cd inotify-tools-3.14 ./configure make make install cd .. //在所有服务器上安装rsync,命令如下: tar zxvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure make make install #------以上命令在每台服务器上都需要

Rsync + Crontab实现定时文件同步(首次全量+后续增量)

一.简介 在配置HA的时候,需要配置多个节点的配置,节点间的配置很多时候都是类似重复的,也许可以通过scp等手段实现,但是每次的更改都需要手动scp也显得麻烦,这边我们可以通过rsync的方式来实现文件的同步. 使用rsync+crontab做定时同步时,主服务器端开启rsync守护进程,而镜像服务器是运行rsync客户端,平时一般会利用crontab定时获取rsync服务器上的数据. 二.配置 ①rsync的服务端(文件发送出去端) 以守护进程的形式后台运行 1.rsync的安装和文件包组成

Centos RSync+Shell实现数据定时同步

我们前面介绍了几篇关于Centos相关服务安装及配置,今天我们主要介绍如何实现本地与远程计算机的数据目录同步,在我之前bolg中有一篇通过shell实现本地与远程计算机的数据同步的文章,通过shell同步实现指定目录的复制及覆盖操作不是那么的方便,因为复制目录及覆盖目录只会增量,不会减量,比如:原来的本地有一个目录下的abc.txt被同步到了远程计算机的指定目录后,当本地目录下的abc.txt文件删除后,远程计算机同步目录下的abc.txt依然存在,所以这样导致数据信息不准确,今天了我们为了解决

用lsyncd和rsyncd实现无ssh支持的文件实时同步

文件存储与同步的基本讨论 网站发展到一定阶段,有时需要将各服务器上传的文件进行集中,这里讨论如果集中的问题,至于如果分散负载均衡.CDN加速.多主机.多域名等blablabla,概不讨论. 集中共享的方案(环境以CentOS 6.5为例)通常的作法是文件同步.共享硬盘空间.硬件堆叠和分布式文件存储四种. 文件同步是用工具定时或自动将分散的文件同步到一个集中的存储区域,如cron配合ftp.ssh.rsync等实现定时同步: 共享空间的做法是用文件存储协议实现挂载和管理,如mount.samba.