Linux下的远程增量备份详解

  • 一、rsync工具介绍
  • 二、rsync备份方法
  • 三、测试备份结果
  • 四、测试增量备份

一、rsync工具介绍

二、rsync备份方法

三、测试备份结果

四、测试增量备份

一、rsync工具介绍

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

#rsync 用法rsync  version 3.1.3  protocol version 31
Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,append, ACLs, xattrs, iconv, symtimes, preallocrsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.Usage: rsync [OPTION]... SRC [SRC]... DESTor   rsync [OPTION]... SRC [SRC]... [USER@]HOST:DESTor   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DESTor   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DESTor   rsync [OPTION]... [USER@]HOST:SRC [DEST]or   rsync [OPTION]... [USER@]HOST::SRC [DEST]or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync选项说明:-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
参数详解编辑
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 像对待常规文件一样处理软链接
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链接
--safe-links 忽略指向SRC路径目录树以外的链接
-H, --hard-links 保留硬链接
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, --dry-run显示哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件

二、rsync备份方法
1.要求
将control端的/data/tmp/下所有文件备份到node1端的user1用户/data/backup/control/目录下
#备份原路径

#备份原路径[root@control tmp]# pwd
/data/tmp
[root@control tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 30 14:10 file0.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file10.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file11.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file12.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file13.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file14.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file15.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file16.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file17.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file18.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file19.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file1.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file20.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file2.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file3.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file4.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file5.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file6.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file7.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file8.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file9.py

2.进行远程增量备份

[root@control ansible]# rsync -avz /data/tmp/ user1@node1:/data/backup/control/
[root@control ansible]# rsync -avz /data/tmp/ root@node1:/data/backup/control/
sending incremental file list
./
file0.py
file1.py
file10.py
file11.py
file12.py
file13.py
file14.py
file15.py
file16.py
file17.py
file18.py
file19.py
file2.py
file20.py
file3.py
file4.py
file5.py
file6.py
file7.py
file8.py
file9.pysent 1,151 bytes  received 418 bytes  3,138.00 bytes/sec
total size is 0  speedup is 0.00

三、测试备份结果

在node1查看备份结果

[root@node1 control]# pwd
/data/backup/control
[root@node1 control]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 30 14:10 file0.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file10.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file11.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file12.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file13.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file14.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file15.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file16.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file17.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file18.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file19.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file1.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file20.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file2.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file3.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file4.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file5.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file6.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file7.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file8.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file9.py[

四、测试增量备份
1.在control端备份源目录新增文件

[root@control tmp]# touch test{1..3}
[root@control tmp]# ls
file0.py   file11.py  file13.py  file15.py  file17.py  file19.py  file20.py  file3.py  file5.py  file7.py  file9.py  test2
file10.py  file12.py  file14.py  file16.py  file18.py  file1.py   file2.py   file4.py  file6.py  file8.py  test1     test3
[root@control tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 30 14:10 file0.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file10.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file11.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file12.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file13.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file14.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file15.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file16.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file17.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file18.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file19.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file1.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file20.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file2.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file3.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file4.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file5.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file6.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file7.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file8.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file9.py
-rw-r--r--. 1 root root 0 May  1 19:36 test1
-rw-r--r--. 1 root root 0 May  1 19:36 test2
-rw-r--r--. 1 root root 0 May  1 19:36 test3
[root@control tmp]# rsync -avz /data/tmp/ root@node1:/data/backup/control/
sending incremental file list
./
test1
test2                      #只同步了新增的三个文件
test3sent 549 bytes  received 76 bytes  1,250.00 bytes/sec
total size is 0  speedup is 0.00

2.在control端备份源目录修改文件内容

[root@control tmp]# echo 123 >> file1.py
[root@control tmp]# rsync -avz /data/tmp/ root@node1:/data/backup/control/
sending incremental file list
file1.py                      #只同步了修改内容的文件sent 486 bytes  received 35 bytes  1,042.00 bytes/sec
total size is 4  speedup is 0.01

3.在control端备份源目录修改文件权限

[root@control tmp]# chmod o+rwx file8.py
[root@control tmp]# rsync -avz /data/tmp/ root@node1:/data/backup/control/
sending incremental file listsent 449 bytes  received 19 bytes  936.00 bytes/sec
total size is 4  speedup is 0.01

备份端node1查看

[root@node1 control]# ll
total 4
-rw-r--r--. 1 root root 0 Apr 30 14:10 file0.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file10.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file11.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file12.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file13.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file14.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file15.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file16.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file17.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file18.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file19.py
-rw-r--r--. 1 root root 4 May  1 19:38 file1.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file20.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file2.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file3.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file4.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file5.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file6.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file7.py
-rw-r--rwx. 1 root root 0 Apr 30 14:10 file8.py
-rw-r--r--. 1 root root 0 Apr 30 14:10 file9.py
-rw-r--r--. 1 root root 0 May  1 19:36 test1
-rw-r--r--. 1 root root 0 May  1 19:36 test2
-rw-r--r--. 1 root root 0 May  1 19:36 test3

Linux下的rsync远程增量备份详解相关推荐

  1. CentOS Linux下VNC Server远程桌面配置详解

    PS:偶以前基本不用Linux的远程图形桌面,前几天有开发的同事配置CentOS的vnc有问题,找我解决,就顺便记录总结一下,这个总结是比较完整的.下面的配置在CentOS5.x和6.x.SUSE企业 ...

  2. centos linux下vnc server远程桌面配置详解,CentOS 6.0 VNC远程桌面配置

    引言: 必须明白: vncserver在调用的时候,会根据你的配置来启用server端的监听端口, 端口默认是从5900开始,再加上你的桌面号. 比如你的桌面号为1,则vnc的连接端口号为5900+1 ...

  3. VNC CentOS Linux下VNC Server远程桌面配置详解

    VNC概述 VNC (Virtual Network Console)是虚拟网络控制台的缩写.VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 ...

  4. linux下tar命令解压缩,tar解压缩命令 Linux下的tar压缩解压缩命令详解

    <tar解压缩命令 Linux下的tar压缩解压缩命令详解>由会员分享,可在线阅读,更多相关<tar解压缩命令 Linux下的tar压缩解压缩命令详解(14页珍藏版)>请在人人 ...

  5. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  6. Linux redis安装教程,Linux 下redis5.0.0安装教程详解

    Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...

  7. linux 更新软件命令 失败,对linux下软件(库)的更新命令详解

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...

  8. linux系统电脑的权限设置,Linux下的文件权限设置修改详解linux操作系统 -电脑资料...

    在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与 ...

  9. linux下多线程的创建与等待详解 【转载】

    linux下多线程的创建与等待详解 http://blog.chinaunix.net/uid-23842323-id-2656572.html 所有线程都有一个线程号,也就是Thread ID.其类 ...

最新文章

  1. 云南公务员计算机类岗竞争大吗,2020云南省考难吗?楚雄州历年竞争比、进面分数告诉你...
  2. 集群中的session共享存储 实现会话保持
  3. cv岗工作做什么_中字头施工单位的党建岗是做什么的?
  4. Python连接Mysql数据库入门
  5. Oracle中5个核心Sql语句的基本构造:Select、Insert、Update、Delete和Merge
  6. fatal: Path ‘XXX‘ is in submodule ‘XXX‘错误(path is in submodule)
  7. 新一代的桌面虚拟化技术
  8. 使用ImageMagick和Tesseract进行简单数字图像识别
  9. 测试评审要点说明(测试计划、用例、报告)
  10. 51.com数十高层离职幕后:3年内乱因扩张失败,互联网营销
  11. Warshall算法C语言实现
  12. vue项目无法在IE浏览器中显示
  13. 软件测试小黑指北-知识点复习
  14. 虚拟机桌面快捷方式不见了……
  15. 破解XP管理员帐户密码
  16. SpringMVC工作流程
  17. 新闻资讯系统(论文)
  18. 中子-伽马探测器响应模拟计算软件
  19. 基于PID算法的STM32爬坡循迹智能小车的设计与实现
  20. 2020熔化焊接与热切割模拟考试及熔化焊接与热切割考试软件

热门文章

  1. 使用Node.js+Socket.IO搭建WebSocket实时应用
  2. iis布置asp.net网站——服务应用程序不可用
  3. DM9000 寄存器的定义
  4. LeetCode 55. 跳跃游戏 中等难度
  5. C++程序设计之函数对象
  6. Fedora 31 Beta 准时发布,带来许多激动人心的更新
  7. GPU编程语言选择(OpenCL、CUDA 与C++ AMP)
  8. 计算机应用系统的开发活动,计算机应用教学训练系统的开发与应用.doc
  9. 心电图心电轴怎么计算_浅谈心电图
  10. java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...