- --delete 以源文件為主,源文件傳輸數(shù)據(jù)到目標(biāo)目錄,目標(biāo)目錄以鏡像形式保存源文件數(shù)據(jù)。如,目標(biāo)目錄里有源數(shù)據(jù)以外的內(nèi)容將會(huì)被刪除(多則刪除,少則補(bǔ)上)。目標(biāo)目錄的內(nèi)容和源目錄的內(nèi)容保持一致。
- 4-10.8 內(nèi)容
通過(guò) rsync -a --delete 學(xué)習(xí)鏡像形式的備份。 - 操作步驟:
1、新建一個(gè) 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 ## 目錄結(jié)構(gòu)
.
├── backups_delete ## 新建的 backups_delete 備份目錄
└── SRC
├── directory
│ └── file2.txt
└── file1.txt
3 directories, 2 files
2、執(zhí)行 rsync -a --delete 把 SRC 目錄下的內(nèi)容傳輸?shù)?backups_delete 目錄,backups_delete 以鏡像形式保存 SRC 目錄的內(nèi)容。backups_delete 目錄的內(nèi)容和 SRC 目錄的內(nèi)容保持一致。
[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 點(diǎn)通過(guò) -a --delete 完成了 SRC 目錄文件的備份,可能沒(méi)有突顯鏡像備份的形式?,F(xiàn)在 backups_delete 增加一些內(nèi)容,然后用 -a --delete 再傳輸一次數(shù)據(jù)作一個(gè)對(duì)比就會(huì)清晰了。
backups_delete 目錄下新增兩個(gè)目錄 directory1 和 directory2,directory1目錄新增一個(gè) file3.txt 文件,directory2目錄新增一個(gè) file4.txt 文件。操作 和 目錄結(jié)構(gòu)如下:
## backups_delete 目錄下新增兩個(gè)目錄 directory1 和 directory2
[root@localhost test]# mkdir backups_delete/directory1
[root@localhost test]# mkdir backups_delete/directory2
## directory1目錄新增一個(gè) file3.txt 文件,directory2目錄新增一個(gè) 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 ## 目錄結(jié)構(gòu)如下
.
├── backups_delete
│ ├── directory ## SRC 目錄備份內(nèi)容
│ │ └── file2.txt
│ ├── directory1 ## 新增的內(nèi)容
│ │ └── file3.txt
│ ├── directory2 ## 新增的內(nèi)容
│ │ └── file4.txt
│ └── file1.txt ## SRC 目錄備份內(nèi)容
└── SRC
├── directory
│ └── file2.txt
└── file1.txt
6 directories, 6 files
[root@localhost test]#
-a --delete 再傳輸一次數(shù)據(jù),可以發(fā)現(xiàn)剛才新建的目錄和文件都被刪除了,backups_delete 目錄只保存和 SRC 源目錄一致的內(nèi)容。形成一個(gè) SRC 目錄內(nèi)容的鏡像。
[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 再傳輸一次數(shù)據(jù)。
## 刪除 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 文件已經(jīng)補(bǔ)上
│ │ └── file2.txt
│ └── file1.txt
└── SRC
├── directory
│ └── file2.txt
└── file1.txt
4 directories, 4 files
[root@localhost test]#
由上述實(shí)驗(yàn)可以看出 --delete 作用于接收端,把目標(biāo)目標(biāo)以鏡像模式備份源目錄的數(shù)據(jù)。目標(biāo)目錄比源目標(biāo)多出的內(nèi)容將會(huì)被刪除。對(duì)比源目錄,比源目錄少的內(nèi)容會(huì)補(bǔ)上。