zoukankan      html  css  js  c++  java
  • 【Linux】Rsync的剖析与使用

    Rsync的工具剖析与使用

    0.Rsync的介绍

    rsync是Linux系统下的文件同步和数据传输工具,它基于“delta-transfer”算法闻名遐迩,保证客户端和远程服务器端之间的文件同步,rsync可以支持断点续传;rsync只传输源文件和目标文件之间不一致的部分;rsync支持执行完整备份和增量备份。

    1.Rsync的特性

    • 镜像整个目录树和文件系统
    • 增量同步,减少同步时间,提高备份效率。
    • 保持原有文件的权限,时间,links等属性。
    • 加密传输,保证数据安全性。
    • 支持匿名传输

    2.Rsync的部署安装

    rysnc的主页为:https://rsync.samba.org/download.html。下载的版本为:rsync-3.1.3版本。

    [root@db ~]# tar zxvf rsync-3.1.3.tar.gz 
    [root@db ~]# cd rsync-3.1.3
    [root@db rsync-3.1.3]# ./configure
    [root@db rsync-3.1.3]# make
    [root@db rsync-3.1.3]# make install
    

    3.搭建远程备份系统。

    3.1 环境配置

    客户端:
    Platform          : Linux 86_64
    Server Name       : db01.zsd.com, IP: 172.17.4.201
    
    服务器端:
    Platform          : Linux 86_64
    Server Name       : db02.zsd.com, IP: 172.17.4.202
    

    场景效果:【172.17.4.201】的Oracle RMAN备份文件传输至【172.17.4.202】中。

    3.2 服务器Rsync的配置

    在【172.17.4.202】做服务器的相关配置。

    • 安装rysnc

      [root@db ~]# tar zxvf rsync-3.1.3.tar.gz 
      [root@db ~]# cd rsync-3.1.3
      [root@db rsync-3.1.3]# ./configure
      [root@db rsync-3.1.3]# make
      [root@db rsync-3.1.3]# make install
      
    • 服务器端配置/etc/rsyncd.conf

      [root@db backup]# mkdir -p /backup/oracle_full_201/
      [root@db backup]# mkdir -p /backup/zsd_test_201/
      
      [root@db etc]# vi /etc/rsyncd.conf
      #__________________________________
      #created by zsd 2019-03-28
      ##rsyncd.conf start##
      uid = root
      gid = root
      use chroot = no
      max connections = 200
      timeout = 600
      pid file = /var/run/rsyncd.pid
      lock file = /var/run/rsync.lock
      log file = /var/log/rsyncd.log
      #__________________________________
      
      ###############backupfile01################
      [oracle_full_201]
      path = /backup/oracle_full_201/
      ignore errors
      read only = false
      list = false
      hosts allow = 172.17.4.201
      hosts deny = 0.0.0.0/32
      auth users = rsync_backup
      secrets file = /etc/rsync.password
      
      ###############backuptest01################
      [zsd_test_201]
      path = /backup/zsd_test_201/
      ignore errors
      read only = false
      list = false
      hosts allow = 172.17.4.201
      hosts deny = 0.0.0.0/32
      auth users = rsync_backup
      secrets file = /etc/rsync.password
      
    • 配置密码文件

      [root@db etc]# vi /etc/rsync.password
      rsync_backup:zsd7101
      [root@db etc]# chmod 600 /etc/rsync.password
      
    • 服务器端启动rsync守护进程

      [root@db etc]# /usr/local/bin/rsync --daemon
      

    3.3 客户端rsync的配置。

    • 额外技能(Oracle RMAN的全备)--可选项

      [oracle@db logs]$ rman target /
      
      RMAN> 
      run
      {
      allocate channel c1 device type disk format '/u01/app/backup/rman/%U-%T.full';
      allocate channel c2 device type disk format '/u01/app/backup/rman/%U-%T.full';
      allocate channel c3 device type disk format '/u01/app/backup/rman/%U-%T.full';
      backup database plus archivelog delete all input;
      
      release channel c1;
      release channel c2;
      release channel c3;
      }
      

      这里不做过多的细节描述,目的:对Oracle数据库做一个全备。最终远程备份【/u01/app/backup/rman/】目录数据。

    • 设置密码文件

      [root@db ~]# vi /etc/rsync.password
      zsd7101
      

      其中如果需要oracle用户,传输备份的话。需要设置如下权限:

      [root@db rman]# chown -R oracle:oinstall /etc/rsync.password
      [oracle@db ~]$ chmod 600 /etc/rsync.password
      
    • 客户端[172.17.4.201]传输备份

      [oracle@db ~]$ rsync -vzrtopg --progress /u01/app/backup/rman/ rsync_backup@172.17.4.202::oracle_full_201  --password-file=/etc/rsync.password
      
      • 其中【-vzrtopg】,-v--verbose,即详细模式输出;-z--compress即在传输时对备份的文件进行压缩;-r表示--recursive,也就是对子目录以递归模式处理,然后传输到远端;-t表示--times,保留文件时间信息;-o表示--owner,用来保持属主信息;-p--perms,用来保持文件权限;g即--group,保留文件的属组信息。
      • --progress,显示数据镜像同步的详细过程。
      • rsync_backup@172.17.4.202::oracle_full_201,表示备份的位置名【oracle_full_201】对应的目录是:/backup/oracle_full_201/。使用rsync_backup用户备份。172.17.4.202为服务器端的IP。
      • --password-file=/etc/rsync.password ,保证客户端和服务器的端密码一致,保证其正确传输。
    • rsync--delete--backup命令补充

      传输三个文件至服务器端

      [oracle@db zsd]$ pwd
      /u01/app/zsd
      [oracle@db zsd]$ echo "you are handsome boy" >> zsd01.log
      [oracle@db zsd]$ echo "you are handsome boy 02" >> zsd02.log
      [oracle@db zsd]$ echo "you are handsome boy 03" >> zsd033.log
      [oracle@db zsd]$ ls
      zsd01.log  zsd02.log  zsd033.log
      
      ##传输文件至服务器端的【zsd_test_201】模块目录中
      [oracle@db zsd]$ rsync -av --no-iconv --progress --backup --backup-dir=`date +%Y-%m-%d` --delete /u01/app/zsd  rsync_backup@172.17.4.202::zsd_test_201  --password-file=/etc/rsync.password
      

      删除一个文件,新建一个文件。查看--delete--backup命令作用

      [oracle@db zsd]$ rm zsd033.log
      [oracle@db zsd]$ echo " just for fun" >> zsd04.log
      [oracle@db zsd]$ rsync -av --no-iconv --progress --backup --backup-dir=`date +%Y-%m-%d` --delete /u01/app/zsd  rsync_backup@172.17.4.202::zsd_test_201  --password-file=/etc/rsync.password
      

      通过看如下日志,发现zsd033.log被删除,并同步了zsd04.log的日志,并且。zsd033.log文件被放置到了【/backup/zsd_test_201/2019-03-28/zsd】目录中。

      sending incremental file list
      deleting zsd/zsd033.log
      zsd/
      zsd/zsd04.log
                   27 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/4)
      ###服务器端的操作
      [root@db backup]# cd /backup/zsd_test_201/
      [root@db zsd_test_201]# ls
      2019-03-28  zsd
      [root@db zsd]# pwd
      /backup/zsd_test_201/2019-03-28/zsd
      [root@db zsd]# ls
      zsd033.log
      

      其中,--delete命令,如上,以本地目录的【/u01/app/zsd】为基准进行数据镜像同步,保证客户端的目录与服务器端的目录完全一致。

      --backup--backup-dir,保证上述被移除的文件,放置在backup目录中,保证完全的备份记录。

  • 相关阅读:
    BFS 简单思想以及代码
    01、Hibernate安装配置
    WireShark——ARP 协议包分析
    eNSP之VLAN设计实验
    eNSP 交换机 路由器 PC 互连设计/实现
    Windows常用的网络命令
    01、Git安装教程(windows)
    Java IO编程——文件拷贝
    Java 多线程编程——多线程
    Java IO编程——转换流
  • 原文地址:https://www.cnblogs.com/zhangshengdong/p/10615352.html
Copyright © 2011-2022 走看看