Linux-中-rsync-備份資料使用例項
rsync 工具用於將檔案和目錄從一個位置同步到另一個位置。同步的位置可以在本地伺服器或遠端伺服器上。接下來教大家在 中rsync備份資料使用例項 |
在 中使用下面 安裝rsync:
[root@localhost ~]# yum -y install rsync
例項一:本機中的兩個目錄進行同步
要同步本地計算機中的兩個目錄,使用 rsync -zvr :
[root@localhost ~]# rsync -zvr /var/log/ /root/temp/
sending incremental file list
btmp
dnf.librepo.log
...
sssd/sssd_implicit_files.log
sssd/sssd_nss.log
tuned/tuned.log
sent 516,136 bytes received 605 bytes 1,033,482.00 bytes/sec
total size is 5,451,242 speedup is 10.55
引數解釋:
- -z 啟用壓縮
- -v 輸出詳細資訊
- -r 表示遞迴
檢視一下/root/temp目錄,發現rsync在同步期間未保留時間戳。
例項二:使用rsync -a在同步期間保留時間戳
rsync 命令的 -a 選項表示存檔模式。 -a 選項遞迴同步、保留符號連結、保留許可權、保留時間戳、保留所有者和組。
現在,執行以下命令,然後檢視檔案的時間:
[root@localhost ~]# rsync -azv /var/log/ /root/temp/
sending incremental file list
./
btmp
dnf.librepo.log
dnf.log
dnf.rpm.log
...
sssd/sssd_nss.log
tuned/
tuned/tuned.log
sent 516,231 bytes received 629 bytes 1,033,720.00 bytes/sec
total size is 5,451,789 speedup is 10.55
如下所示,rsync在同步期間保留了時間戳。
例項三:將檔案從本地同步到遠端目錄
rsync
允許在本地和遠端系統之間同步檔案/目錄,前提是本地和遠端系統都要安裝rsync才行,否則會提示如下資訊:
[root@localhost ~]# rsync -avz /root/temp/ root@192.168.43.137:/root/temp
root@192.168.43.137's password:
sending incremental file list
created directory /root/temp
./
btmp
dnf.librepo.log
dnf.log
dnf.rpm.log
...
sssd/sssd_nss.log
tuned/
tuned/tuned.log
sent 516,231 bytes received 662 bytes 206,757.20 bytes/sec
total size is 5,451,789 speedup is 10.55
下面是在遠端系統裡面檢視已同步的目錄:
上面可以看到同步時需要輸入密碼,有時候不希望將檔案從本地伺服器備份到遠端伺服器時輸入密碼,可以在兩臺主機間設定免密要登入。
例項四:將檔案從遠端目錄同步到本地
要將檔案從遠端系統同步到本地時,如下所示,在源中指定遠端路徑,在目標中指定本地路徑即可:
[root@localhost ~]# rsync -avz root@192.168.43.137:/root/temp /root/temp
root@192.168.43.137's password:
receiving incremental file list
temp/
temp/btmp
temp/dnf.librepo.log
temp/dnf.log
...
temp/tuned/
temp/tuned/tuned.log
sent 634 bytes received 516,247 bytes 206,752.40 bytes/sec
total size is 5,451,789 speedup is 10.55
例項五:不要覆蓋目標位置上已修改的檔案
如果在目標位置修改了檔案,我們可能不想用源位置的舊檔案覆蓋該檔案。使用 -u 選項就可以做到這一點。在下面的示例中,在本地將test.txt檔案修改了內容。它不會被遠端系統的test.txt檔案所覆蓋:
# 檢視一下遠端系統 temp 目錄下的 test.txt 檔案大小
[root@localhost ~]# ssh root@192.168.43.137 ls -l /root/temp
root@192.168.43.137's password:
total 4
-rw-r--r--. 1 root root 7 Apr 7 2021 test.txt
# 檢視一下本機的 temp 目錄下的 test.txt 檔案大小,本機的 test.txt 檔案已修改,所以比遠端系統裡面的 test.txt 檔案大
[root@localhost ~]# ll /root/temp/
total 4
-rw-r--r--. 1 root root 77 Apr 7 21:10 test.txt
# 執行 rsync -avzu 同步一下
[root@localhost ~]# rsync -avzu root@192.168.43.137:/root/temp /root/
root@192.168.43.137's password:
receiving incremental file list
sent 25 bytes received 76 bytes 40.40 bytes/sec
total size is 7 speedup is 0.07
下面檢視一下本機的/root/temp目錄裡面的test.txt是否被覆蓋:
發現並沒有被覆蓋。
例項六:在傳輸過程中檢視rsync進度
使用 --progress 選項顯示rsync執行的詳細進度,如下所示:
[root@localhost ~]# rsync -avz --progress /root/temp/ root@192.168.43.137:/root/temp
例項七:在目標目錄中刪除源目錄不存在的檔案
如果檔案不在源中而是在目標中存在,則可能希望在rsync同步期間刪除目標上的檔案。在這種情況下,請使用 --delete 選項:
# 檢視一下源目錄裡面的檔案
[root@localhost ~]# ll /root/temp/
total 0
-rw-r--r--. 1 root root 0 Apr 7 21:46 name.csv
# 檢視一下目標目錄裡面的檔案
[root@localhost ~]# ssh root@192.168.43.137 ls -l /root/temp
root@192.168.43.137's password:
total 944
drwxr-xr-x. 2 root root 6 Apr 7 2021 anaconda
drwx------. 2 root root 6 Apr 7 2021 audit
-rw-------. 1 root root 0 Apr 7 2021 btmp
-rw-------. 1 root root 0 Apr 7 2021 btmp-20210406
drwxr-xr-x. 2 root root 6 Apr 7 2021 chrony
-rw-------. 1 root root 8432 Apr 7 2021 cron
-rw-------. 1 root root 12200 Apr 7 2021 cron-20210221
-rw-------. 1 root root 48130 Apr 7 2021 cron-20210228
-rw-------. 1 root root 3910 Apr 7 2021 cron-20210308
-rw-------. 1 root root 22455 Apr 7 2021 cron-20210406
-rw-------. 1 root root 383369 Apr 7 2021 dnf.librepo.log
-rw-------. 1 root root 476949 Apr 7 2021 dnf.librepo.log-20210221
# rsync 使用 --delete 選項刪除目標目錄中不包含源目錄的檔案
[root@localhost ~]# rsync -avz --delete /root/temp root@192.168.43.137:/root
root@192.168.43.137's password:
sending incremental file list
deleting temp/chrony/
deleting temp/audit/
deleting temp/anaconda/
deleting temp/dnf.librepo.log-20210221
deleting temp/dnf.librepo.log
deleting temp/cron-20210406
deleting temp/cron-20210308
deleting temp/cron-20210228
deleting temp/cron-20210221
deleting temp/cron
deleting temp/btmp-20210406
deleting temp/btmp
temp/
temp/name.csv
sent 123 bytes received 281 bytes 161.60 bytes/sec
total size is 0 speedup is 0.00
在檢視一下目標目錄是否刪除:
例項八:檔案傳輸過程中的include和exclude模式
rsync 允許在進行同步時提供要包括和排除檔案或目錄的模式。
[root@localhost ~]# rsync -avz --include 'P*' --exclude '*' root@192.168.43.137:/var/lib/rpm/ /root/temp/
在上面的示例中,它僅包括以'P'開頭的檔案或目錄,並排除所有其他檔案。
例項九:不傳輸大檔案
可以使用 rsync --max-size 選項告訴rsync不要傳輸大於指定大小的檔案。
[root@localhost ~]# rsync -avz --max-size='1M' root@192.168.43.137:/var/lib/rpm/ /root/temp/
--max-size=1M
使rsync僅傳輸小於或等於1M的檔案。單位可以是K,M,G等。
還可以使用 --min-size= 引數,指定傳輸最小檔案的大小。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2782605/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 中 rsync 備份資料使用例項Linux
- Linux中rsync備份資料使用例項Linux
- 將RAC備份集恢復為單例項資料庫單例資料庫
- 使用RMAN備份資料庫資料庫
- 使用shell 指令碼備份資料指令碼
- Elasticsearch 使用 NFS 進行資料備份ElasticsearchNFS
- 網路拓撲例項11:靜態路由實現主備備份路由
- 初探MySQL資料備份及備份原理MySql
- 使用NineData實現企業級資料庫備份, 資料備份告別“拆盲盒” ?資料庫
- MySQL資料備份MySql
- 資料庫備份資料庫
- Rsync 資料備份
- 備份onetab資料
- mongo資料備份Go
- oracle資料庫使用rman備份指令碼Oracle資料庫指令碼
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- 資料備份 reed-solomn 庫 的使用
- oracle資料庫備份之exp增量備份Oracle資料庫
- 資料同步和資料備份
- Linux中printf命令使用例項Linux
- Mysql中備份資料檔案中/*!*/的含義MySql
- 設計模式使用例項(5)——建造者模式例項之資料庫連線管理設計模式資料庫
- 使用Handy Backup 6.2進行資料備份方法
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- SQL SERVER備份資料庫檔案(使用SSMS)SQLServer資料庫SSM
- python使用多執行緒備份資料庫Python執行緒資料庫
- 如何使用Hyper Backup備份資料至異地
- mysql 資料庫 備份MySql資料庫
- Mysql資料安全備份MySql
- 資料庫備份策略資料庫
- MongoDB資料庫備份MongoDB資料庫
- Dedecms備份的資料檔案位置及備份資料庫的方法資料庫
- 在Linux中,如何備份一個資料庫?Linux資料庫
- 在Linux中,mysql 資料備份工具有哪些?LinuxMySql
- 東商專案mysql例項庫(dingding)增量備份的實現MySql
- Linux 中 ss 命令的使用例項Linux
- Linux 中的 JQ 命令使用例項Linux
- Linux中ip命令的使用例項Linux