美文网首页
4-10.4 Linux 中的文件同步传输 --- rsync

4-10.4 Linux 中的文件同步传输 --- rsync

作者: 捌千里路雲和月 | 来源:发表于2021-08-08 23:49 被阅读0次
    • --backup-dir:将有变化的文件进行更新同时把旧版本保存在指定的目录中,从而实现增量备份。
    • 4-10.4 内容:
      通过 rsync --backup-dir 指定备份文件存储的路径。
    • 操作步骤:
      1、新建 backup 目录用作备份文件的目录(备份源文件的目录)。新建 backups_dir 目录用作指定储存 backup 目录的备份文件。(当 backup 目录需要更新备份文件时,已存在的备份文件会存储一份到指定的 backups_dir 目录。然后再更新备份文件)
    [root@localhost test]# mkdir backup    ## 新建 backup 目录
    [root@localhost test]#
    [root@localhost test]# mkdir backups_dir    ## 新建 backups_dir 目录
    [root@localhost test]# 
    [root@localhost test]# tree
    .
    ├── backup
    ├── backups_dir
    └── SRC
        ├── demo1.txt
        ├── demo2.txt
        └── demo3.txt
    
    3 directories, 3 files
    
    

    2、 ll SRC/,查询 SRC 目录下的文件详情。demo1.txt、demo2.txt 和 demo3.txt 的属性都是一样。

    [root@localhost test]# 
    [root@localhost test]# ll SRC/
    total 0
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo1.txt
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo2.txt
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo3.txt
    [root@localhost test]# 
    
    

    3、rsync -a -b / --backup 备份 SRC 目录下的 demo1.txt 和 demo2.txt 文件到 backup目录下。

    ##  rsync -a -b / --backup 备份 SRC 目录下的 demo1.txt 和 demo2.txt 文件到 backup目录下。
    [root@localhost test]# rsync -a -b SRC/demo1.txt  backup/
    [root@localhost test]# rsync -a --backup SRC/demo2.txt  backup/
    [root@localhost test]# 
    [root@localhost test]# tree    ## 目录结构
    .
    ├── backup    ## backup 目录下已有 demo1.txt 和 demo2.txt 文件
    │   ├── demo1.txt
    │   └── demo2.txt
    ├── backups_dir
    └── SRC
        ├── demo1.txt
        ├── demo2.txt
        └── demo3.txt
    
    3 directories, 5 files
    
    ## backup目录下的 demo1.txt 和 demo2.txt 和 SRC 目录下的 demo1.txt 和 demo2.txt 一致
    [root@localhost test]# ll backup 
    total 0
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo1.txt
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo2.txt
    [root@localhost test]# 
    [root@localhost test]# ll SRC/
    total 0
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo1.txt
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo2.txt
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo3.txt
    [root@localhost test]# 
    
    

    4、vim 编辑 SRC 目录下的 demo1.txt 和 demo2.txt 文件。

    [root@localhost test]# 
    [root@localhost test]# vim SRC/demo1.txt    ## SRC/demo1.txt 输入内容 demo1 保存退出
    
    demo1
    ~                                                                                                             
    ~                                                                                                             
    ~                                                                                                                                                                                                                 
    :wq!  
    
    [root@localhost test]# vim SRC/demo2.txt    ## SRC/demo2.txt 输入内容 demo2 保存退出
    
    demo2.txt                                                                                                      
    ~                                                                                                             
    ~                                                                                                             
    :wq!            
    
    ##  SRC目录下的 demo1.txt、demo2.txt 的大小和时间属性已经改变 
    ##  demo1.txt 时间 22:41,demo2.txt 时间 22:47
    ##  demo1.txt 大小 6,demo2.txt 大小 10
    [root@localhost test]# ll SRC/
    total 8
    -rw-rw-rw-. 1 root root  6 Aug  8 22:41 demo1.txt
    -rw-rw-rw-. 1 root root 10 Aug  8 22:47 demo2.txt
    -rw-rw-rw-. 1 root root  0 Jul 22 22:44 demo3.txt
    [root@localhost test]# 
                                                            
    

    5、rsync -a -b / --backup 更新备份 SRC 目录下的 demo1.txt 和 demo2.txt 文件到 backup目录下并通过 --backup-dir 指定 backup 目录原有的备份文件转存到 backups_dir 文件作一份原始备份。

    ## --backup-dir=/root/test/backups_dir,指定备份目录已有的文件备份到这个路径下,
    ## 原始备份完成后,再更新备份目录内容。案例的备份目录是 backup 目录,原始备份目录是 backups_dir。
    [root@localhost test]# rsync -a -b --backup-dir=/root/test/backups_dir SRC/demo1.txt backup/
    [root@localhost test]# 
    [root@localhost test]# rsync -a -backup --backup-dir=/root/test/backups_dir SRC/demo2.txt backup/
    [root@localhost test]# 
    [root@localhost test]# tree
    .
    ├── backup    ## 更新后的 demo1.txt 和 demo1.txt 文件。
    │   ├── demo1.txt
    │   └── demo2.txt
    ├── backups_dir    ## 原始备份文件目录 backups_dir 已有旧版的 demo1.txt 和 demo1.txt 文件。
    │   ├── demo1.txt
    │   └── demo2.txt
    └── SRC
        ├── demo1.txt
        ├── demo2.txt
        └── demo3.txt
    
    3 directories, 7 files
    [root@localhost test]# ll SRC/
    total 8
    -rw-rw-rw-. 1 root root  6 Aug  8 22:41 demo1.txt
    -rw-rw-rw-. 1 root root 10 Aug  8 22:47 demo2.txt
    -rw-rw-rw-. 1 root root  0 Jul 22 22:44 demo3.txt
    [root@localhost test]# 
    [root@localhost test]# ll backup    ## 更新后的 demo1.txt 和 demo1.txt 文件。
    total 8
    -rw-rw-rw-. 1 root root  6 Aug  8 22:41 demo1.txt
    -rw-rw-rw-. 1 root root 10 Aug  8 22:47 demo2.txt
    [root@localhost test]# 
    [root@localhost test]# ll backups_dir/    ## 旧版的 demo1.txt 和 demo1.txt 文件。 
    total 0
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo1.txt
    -rw-rw-rw-. 1 root root 0 Jul 22 22:44 demo2.txt
    [root@localhost test]# 
    
    

    过程分析:
    1、SRC目录下的 demo1.txt 和 demo2.txt 源文件全属性备份到backup 目录下。

    2、当SRC目录下的 demo1.txt 和 demo2.txt 源文件发生大小和时间变化的时候再全属性备份到 backup 目录下。此时,通过 --backup-dir 参数指定 /root/test/backups_dir 路径。这个路径的 backups_dir 目录是存储备份目录 backup 已有的备份文件。相当于原始备份。

    3、当 backup 目录已有的备份文件转存到 backups_dir 后,就会更新备份 SRC目录下的 demo1.txt 和 demo2.txt 。

    相关文章

      网友评论

          本文标题:4-10.4 Linux 中的文件同步传输 --- rsync

          本文链接:https://www.haomeiwen.com/subject/diunvltx.html