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目录中,保证完全的备份记录。

【Linux】Rsync的剖析与使用的更多相关文章

  1. Linux 动态库剖析

    进程与 API 动态链接的共享库是 GNU/Linux® 的一个重要方面.该种库允许可执行文件在运行时动态访问外部函数,从而(通过在需要时才会引入函数的方式)减少它们对内存的总体占用.本文研究了创建和 ...

  2. linux rsync 实际应用

    linux rsync 实际应用 一.rsync的概述 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和 ...

  3. linux rsync同步工具

    linux rsync同步工具 1.rsync介绍rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于unix/linux/windows ...

  4. Linux Rsync实现文件同步备份(转载)

    原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...

  5. 【原创】Linux RCU原理剖析(二)-渐入佳境

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  6. Linux rsync实现断点续传

    Linux 主机之间即时传送文件,scp命令大家都很熟悉但当要传送的文件较大,过程中如果网络中断了,就比较悲剧了.这时候可以考虑使用rsync命令替代scp,实现断点续传文件. 试验:rsync使用 ...

  7. Server Data Synchronization Via Linux rsync、rsync+inotify Between Load Balance Server

    目录 . 远程文件同步的应用场景 . rsync+crontab . rsync+inotify 1. 远程文件同步的应用场景 在负载均衡集群的应用场景中,往往在多台web server的前端有一个提 ...

  8. Linux rsync 命令详解

    服务器之间常常要保持些文件或目录的一致,比如一些大的软件下载网站,它们通常使用多台服务器来提供下载服务.当一台服务器上的文件更新后,其它的服务器 也需要更新,而且 在更新的时候应该是只对新增或是修改过 ...

  9. Linux rsync 同步

    rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服务器,以实现文件传输.备份和镜像.相对tar ...

随机推荐

  1. Angular 2项目的环境配置和项目搭建

    AngularJS2 发布于2016年9月份,它是基于ES6来开发的. AngularJS2 是一款开源JavaScript库,由Google维护,用来协助单一页面应用程序运行.AngularJS2 ...

  2. 如何查找MySQL中查询慢的SQL语句(转载)

    转载自https://www.cnblogs.com/qmfsun/p/4844472.html 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那 ...

  3. vs2010 sp1 安装Silverlight5 语言版本不匹配的问题

    好久之前用silverlight写了个程序,今天心血来潮想给朋友看一下,朋友更新了sl5,但是运行不起来. 所以有点郁闷,于是打算更新项目到silverlight5. 装sp1后,下载silverli ...

  4. 反编译python打包的exe文件

    目录 1.前言 2.使用环境 3.还原过程 4.号外 5.exe文件和所用到的反编译工具 6.参考 7.去签名(补漏) 前言 拿到了利用驱动人生进行传播的病毒样本,发现是python打包成的exe文件 ...

  5. java爬虫案例学习

    最近几天很无聊,学习了一下java的爬虫,写一些自己在做这个案例的过程中遇到的问题和一些体会1.学习目标         练习爬取京东的数据,图片+价格+标题等等 2.学习过程 1·开发工具      ...

  6. windows下 mysql 5.6.40 卸载 安装 修改密码

    最近执行另一个mysql版本导出的sql脚本,出现问题!出于一些原因,把之前的mysql5.5卸载,由于卸载不干净出现了一些问题.特此总结方法! 参考链接: https://blog.csdn.net ...

  7. 基础select语句详解

    在数据库操作语句中,使用最频繁,也被认为最重要的是 SELECT 查询语句.我们已经在不少地方用到了 SELECT * FROM table_name; 这条语句用于查看一张表中的所有内容. 而 SE ...

  8. eclipse集成lombok

    第一部下载 lombok jar包 https://projectlombok.org/download.html lombok下载地址,进入该网址后可以看到如下界面,点击下载就行了.   下载 ja ...

  9. app性能测试,你需要关注哪些指标?

    app性能测试,你需要关注哪些指标? 一.Android客户端性能测试常见指标: 1.内存 2.CPU 3.流量 4.电量 5.启动速度 6.滑动速度.界面切换速度 7.与服务器交互的网络速度 二.预 ...

  10. 深入理解JVM垃圾收集机制,下次面试你准备好了吗

    程序计数器.虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收.垃圾回收主要是针对 Java 堆和方法区进行. 判断一个对 ...