Linux编译安装Rsync

Rsync是一款专业的数据同步工具,轻松实现本地或者远程数据同步、增量备份,目前是中小型企业中使用率最高的数据备份工具。在企业中为实现数据的实时同步,一般会借助inotify-tools对文件或者目录状态进行监控,两者相结合提高同步工作效率。

实验环境

操作系统:RHEL6.10

Rsync:3.1.3

inotify-tools:3.20.1

安装教程

第一步 安装依赖包

  1. [root@wanghualang ~]# yum -y install gcc automake libtool  

第二步 下载、解压源码包

  1. [root@wanghualang ~]# cd /usr/local/src/  
  2. [root@wanghualang src]# wget --no-check-certificate https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz  
  3. [root@wanghualang src]# wget --no-check-certificate https://github.com/rvoicilas/inotify-tools/archive/3.20.1.tar.gz  
  4. [root@wanghualang src]# tar xzf rsync-3.1.3.tar.gz  
  5. [root@wanghualang src]# tar xzf 3.20.1.tar.gz  

第三步 编译安装Rsync、inotify-tools

  1. [root@wanghualang ~]# cd /usr/local/src/rsync-3.1.3  
  2. [root@wanghualang rsync-3.1.3]# ./configure --prefix=/usr/local/rsync --disable-ipv6  
  3. [root@wanghualang rsync-3.1.3]# make   
  4. [root@wanghualang rsync-3.1.3]# make install  

  1. [root@wanghualang ~]# cd /usr/local/src/inotify-tools-3.20.1  
  2. [root@wanghualang inotify-tools-3.20.1]# sh autogen.sh  
  3. [root@wanghualang inotify-tools-3.20.1]# ./configure --prefix=/usr/local/inotify-tools  
  4. [root@wanghualang inotify-tools-3.20.1]# make  
  5. [root@wanghualang inotify-tools-3.20.1]# make install  

第四步 配置环境变量

  1. [root@wanghualang ~]# echo "export PATH="$PATH:/usr/local/inotify-tools/bin:/usr/local/rsync/bin">> /etc/profile  
  2. [root@wanghualang ~]# source /etc/profile  

第五步 测试手动同步,并保持数据一致

  1. [root@wanghualang ~]# mkdir /{test1,test2}  
  2. [root@wanghualang ~]# touch /test1/1  
  3. [root@wanghualang ~]# rsync -av /test1/ /test2/ --delete  

第六步 测试实时同步,并保持数据一致

  1. [root@wanghualang ~]# vim auto_rsync.sh  
  2.   
  3. #!/bin/bash  
  4. #源目录  
  5. SOURCE_DIRECTORY="/test1/"  
  6. #备份目录  
  7. BACKUP_DIRECTORY="/test2/"  
  8. #源目录中的文件发生创建、修改、移动、删除操作时将自动触发同步备份目录,且备份目录与源目录数据保持一致  
  9. inotifywait -mrq -e create,modify,move,delete $SOURCE_DIRECTORY | while read file  
  10. do  
  11. rsync -a $SOURCE_DIRECTORY $BACKUP_DIRECTORY --delete  
  12. done  

  1. [root@wanghualang ~]# sh auto_rsync.sh &    
  2. [root@wanghualang ~]# touch /test1/a    
  3. [root@wanghualang ~]# ls /test2/  
  4. [root@wanghualang ~]# echo "1" > /test1/a    
  5. [root@wanghualang ~]# cat /test2/a  
  6. [root@wanghualang ~]# mv /test1/a /test1/b    
  7. [root@wanghualang ~]# ls /test2/  
  8. [root@wanghualang ~]# rm -f /test1/*    
  9. [root@wanghualang ~]# ls /test2/  
匿名

发表评论

匿名网友 填写信息