4-10.8 Linux 中的文件同步传输 --- rsync --delete 接收端镜像形式备份源数据

  • --delete 以源文件为主,源文件传输数据到目标目录,目标目录以镜像形式保存源文件数据。如,目标目录里有源数据以外的内容将会被删除(多则删除,少则补上)。目标目录的内容和源目录的内容保持一致。
  • 4-10.8 内容
    通过 rsync -a --delete 学习镜像形式的备份。
  • 操作步骤:
    1、新建一个 backups_delete 用作备份目录
[root@localhost ~]# ls
test
[root@localhost ~]# cd test 
[root@localhost test]# mkdir backups_delete    ## 新建 backups_delete 备份目录
[root@localhost test]# 
[root@localhost test]# tree    ## 目录结构
.
├── backups_delete      ## 新建的 backups_delete 备份目录 
└── SRC
    ├── directory
    │   └── file2.txt
    └── file1.txt

3 directories, 2 files

2、执行 rsync -a --delete 把 SRC 目录下的内容传输到 backups_delete 目录,backups_delete 以镜像形式保存 SRC 目录的内容。backups_delete 目录的内容和 SRC 目录的内容保持一致。

[root@localhost test]# rsync -a --delete SRC/ backups_delete/
[root@localhost test]# 
[root@localhost test]# tree
.
├── backups_delete    ## backups_delete 目录已备份了 SRC 目录的文件
│   ├── directory
│   │   └── file2.txt
│   └── file1.txt
└── SRC
    ├── directory
    │   └── file2.txt
    └── file1.txt

3、第 2 点通过 -a --delete 完成了 SRC 目录文件的备份,可能没有突显镜像备份的形式。现在 backups_delete 增加一些内容,然后用 -a --delete 再传输一次数据作一个对比就会清晰了。

backups_delete 目录下新增两个目录 directory1 和 directory2,directory1目录新增一个 file3.txt 文件,directory2目录新增一个 file4.txt 文件。操作 和 目录结构如下:

## backups_delete 目录下新增两个目录 directory1 和 directory2
[root@localhost test]# mkdir backups_delete/directory1
[root@localhost test]# mkdir backups_delete/directory2

## directory1目录新增一个 file3.txt 文件,directory2目录新增一个 file4.txt 文件
[root@localhost test]# touch backups_delete/directory1/file3.txt
[root@localhost test]# touch backups_delete/directory2/file4.txt
[root@localhost test]# 
[root@localhost test]# tree    ## 目录结构如下
.
├── backups_delete
│   ├── directory    ## SRC 目录备份内容
│   │   └── file2.txt
│   ├── directory1    ## 新增的内容
│   │   └── file3.txt
│   ├── directory2     ## 新增的内容
│   │   └── file4.txt
│   └── file1.txt     ## SRC 目录备份内容
└── SRC
    ├── directory
    │   └── file2.txt
    └── file1.txt     

6 directories, 6 files
[root@localhost test]# 

-a --delete 再传输一次数据,可以发现刚才新建的目录和文件都被删除了,backups_delete 目录只保存和 SRC 源目录一致的内容。形成一个 SRC 目录内容的镜像。

[root@localhost test]# rsync -a --delete SRC/ backups_delete/
[root@localhost test]# 
[root@localhost test]# tree
.
├── backups_delete
│   ├── directory
│   │   └── file2.txt
│   └── file1.txt
└── SRC
    ├── directory
    │   └── file2.txt
    └── file1.txt

4 directories, 4 files

4、同理,把 backups_delete 的 file1.txt 文件删除,再用 -a --delete 再传输一次数据。

## 删除 backups_delete 的 file1.txt 文件
[root@localhost test]# rm -rf backups_delete/file1.txt 
[root@localhost test]# 
[root@localhost test]# tree
.
├── backups_delete    ## 缺少了 file1.txt 文件
│   └── directory
│       └── file2.txt
└── SRC
    ├── directory
    │   └── file2.txt
    └── file1.txt

4 directories, 3 files
##  -a --delete 完成了 SRC 目录文件的备份
[root@localhost test]# rsync -a --delete SRC/ backups_delete/
[root@localhost test]# 
[root@localhost test]# tree
.
├── backups_delete
│   ├── directory    ## 缺少的 file1.txt 文件已经补上
│   │   └── file2.txt
│   └── file1.txt
└── SRC
    ├── directory
    │   └── file2.txt
    └── file1.txt

4 directories, 4 files
[root@localhost test]# 

由上述实验可以看出 --delete 作用于接收端,把目标目标以镜像模式备份源目录的数据。目标目录比源目标多出的内容将会被删除。对比源目录,比源目录少的内容会补上。

你可能感兴趣的:(4-10.8 Linux 中的文件同步传输 --- rsync --delete 接收端镜像形式备份源数据)