侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Rsync实现文件定时同步技巧

技术  /  管理员 发布于 7年前   136

使用背景:

       2005年5月,商务网处于上线阶段。但,由于总总原因一直迟迟不能上线。系统基本功能都已经实现了,但是作为一个商务网整体来说,文件同步这块还没有完成。正好自己这段时间不是很忙。对这块也有些兴趣,所以决定摸摸看。

       万事开头难,从没接触过什么同步之类的,怎么开始呢?幸好以前做邮件系统的时候,认识了Eyou的小熊,请教了他,于是推荐了Rsync这个好工具给我。在此,特别感谢小熊的帮助。
       Rsync的优点是部署方便,使用方便,效率高,并且它是开源的。目前在某些Linux服务器版中已经将其捆绑进来,可见其功能已经得到了较高的认可。

       关于Rsync的介绍,大家可以去google里面搜索,相信能找到更多,在此,我就不再浪费大家时间了(鲁迅先生说过:浪费别人时间等于谋财害命,浪费自己的时间等于慢性自杀。知道后果的严重性了吧,呵呵)。还是来看看我的实现步骤吧。

操作系统:

       文件服务器端: 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 Cnap|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

   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/

查看本地目录/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说明文档。


  • 上一条:
    IIS6.0 IIS7.5应用程序池自动停止的解决方法
    下一条:
    阿里云盾网站安全防御(WAF)的使用方法(图文)
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    • 2025-07
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客