您好,登錄后才能下訂單哦!
小編給大家分享一下Linux遠程備份工具Rsync怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
注:下面所有例子中 – - 之間實際上是沒有空格的,使用時請刪除空格。
Rsync是一個遠程數據同步工具,可通過LAN 或互聯網快速同步多臺主機間的文件。Rsync 本來是用以取代 rcp的一個工具,它當前由 rsync.samba.org 維護。Rsync 使用所謂的”Rsync演算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。
Rsync 的特色:
快速:***次同步時 rsync 會復制全部內容,但在下一次只傳輸修改過的文件。
安全:rsync 允許通過 ssh 協議來加密傳輸數據。
更少的帶寬:rsync 在傳輸數據的過程中可以實行壓縮及解壓縮操作,因此可以使用更少的帶寬。
特權:安裝和執行 rsync 無需特別的權限
基本語法:
rsync options source destination
源和目標都可以是本地或遠程,在進行遠程傳輸的時候,需要指定登錄名、遠程服務器及文件位置
樣例:
1 在本地機器上對兩個目錄進行同步
$ rsync -zvr /var/opt/installation/inventory/ /root/temp building file list … done sva.xml svB.xml . sent 26385 bytes received 1098 bytes 54966.00 bytes/sec total size is 44867 speedup is 1.63 $
參數:
-z 開啟壓縮
-v 詳情輸出
-r 表示遞歸
2 利用 rsync -a 讓同步時保留時間標記
rsync 選項 -a 稱為歸檔模式,執行以下操作
遞歸模式
保留符號鏈接
保留權限
保留時間標記
保留用戶名及組名
$ rsync -azv /var/opt/installation/inventory/ /root/temp/ building file list … done ./ sva.xml svB.xml . sent 26499 bytes received 1104 bytes 55206.00 bytes/sec total size is 44867 speedup is 1.63 $
3 僅同步一個文件
$ rsync -v /var/lib/rpm/Pubkeys /root/temp/ Pubkeys sent 42 bytes received 12380 bytes 3549.14 bytes/sec total size is 12288 speedup is 0.99
4 從本地同步文件到遠程服務器
$ rsync -avz /root/temp/ thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/Password: building file list … done ./ rpm/ rpm/Basenames rpm/Conflictname sent 15810261 bytes received 412 bytes 2432411.23 bytes/sec total size is 45305958 speedup is 2.87
就像你所看到的,需要在遠程目錄前加上 ssh 登錄方式,格式為 username@machinename:path
5 同步遠程文件到本地
和上面差不多,做個相反的操作
$ rsync -avz thegeekstuff@192.168.200.10:/var/lib/rpm /root/temp Password: receiving file list … done rpm/ rpm/Basenames . sent 406 bytes received 15810230 bytes 2432405.54 bytes/sec total size is 45305958 speedup is 2.87
6 同步時指定遠程 shell
用 -e 參數可以指定遠程 ssh ,比如用 rsync -e ssh 來指定為 ssh
$ rsync -avz -e ssh thegeekstuff@192.168.200.10:/var/lib/rpm /root/temp Password: receiving file list … done rpm/ rpm/Basenames sent 406 bytes received 15810230 bytes 2432405.54 bytes/sec total size is 45305958 speedup is 2.87
7 不要覆蓋被修改過的目的文件
使用 rsync -u 選項可以排除被修改過的目的文件
$ ls -l /root/temp/Basenames total 39088 -rwxr-xr-x 1 root root 4096 Sep 2 11:35 Basenames $ rsync -avzu thegeekstuff@192.168.200.10:/var/lib/rpm /root/temp Password: receiving file list … done rpm/ sent 122 bytes received 505 bytes 114.00 bytes/sec total size is 45305958 speedup is 72258.31 $ ls -lrt total 39088 -rwxr-xr-x 1 root root 4096 Sep 2 11:35 Basenames
8 僅僅同步目錄權(不同步文件)
使用 -d 參數
$ rsync -v -d thegeekstuff@192.168.200.10:/var/lib/ . Password: receiving file list … done logrotate.status CAM/ YaST2/ acpi/ sent 240 bytes received 1830 bytes 318.46 bytes/sec total size is 956 speedup is 0.46
9 查看每個文件的傳輸進程
使用 – -progress 參數
$ rsync -avz – -progress thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/ Password: receiving file list … 19 files to consider ./ Basenames 5357568 100% 14.98MB/s 0:00:00 (xfer#1, to-check=17/19) Conflictname 12288 100% 35.09kB/s 0:00:00 (xfer#2, to-check=16/19) . . . sent 406 bytes received 15810211 bytes 2108082.27 bytes/sec total size is 45305958 speedup is 2.87
10 刪除在目的文件夾中創建的文件
用 – -delete 參數
# Source and target are in sync. Now creating new file at the target. $ > new-file.txt $ rsync -avz – -delete thegeekstuff@192.168.200.10:/var/lib/rpm/ . Password: receiving file list … done deleting new-file.txt ./ sent 26 bytes received 390 bytes 48.94 bytes/sec total size is 45305958 speedup is 108908.55
11 不要在目的文件夾中創建新文件
有時能只想同步目的地中存在的文件,而排除源文件中新建的文件,可以使用 – -exiting 參數
$ rsync -avz –existing root@192.168.1.2:/var/lib/rpm/ .root@192.168.1.2′s password: receiving file list … done ./ sent 26 bytes received 419 bytes 46.84 bytes/sec total size is 88551424 speedup is 198991.96
12 查看源和目的文件之間的改變情況
用 -i 參數
$ rsync -avzi thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/ Password: receiving file list … done >f.st…. Basenames .f….og. Dirnames sent 48 bytes received 2182544 bytes 291012.27 bytes/sec total size is 45305958 speedup is 20.76
輸出結果中在每個文件最前面會多顯示 9 個字母,分別表示為
> 已經傳輸
f 表示這是一個文件
d 表示這是一個目錄
s 表示尺寸被更改
t 時間標記有變化
o 用戶被更改
g 用戶組被更改
13 在傳輸時啟用包含和排除模式
$ rsync -avz – -include ‘P*’ – -exclude ‘*’ thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/ Password: receiving file list … done ./ Packages Providename Provideversion Pubkeys sent 129 bytes received 10286798 bytes 2285983.78 bytes/sec total size is 32768000 speedup is 3.19
14 不要傳輸大文件
使用 – - max-size 參數
$ rsync -avz – -max-size=’100K’ thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/ Password: receiving file list … done ./ Conflictname Group Installtid Name Sha1header Sigmd5 Triggername sent 252 bytes received 123081 bytes 18974.31 bytes/sec total size is 45305958 speedup is 367.35
15 傳輸所有文件
不管有沒有改變,再次把所有文件都傳輸一遍,用 -W 參數
# rsync -avzW thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp Password: receiving file list … done ./ Basenames Conflictname Dirnames Filemd5s Group Installtid Name sent 406 bytes received 15810211 bytes 2874657.64 bytes/sec total size is 45305958 speedup is 2.87
以上是“Linux遠程備份工具Rsync怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。