您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何使用rsync備份數據”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何使用rsync備份數據”這篇文章吧。
rsync是一款實現遠程同步功能的軟件,在同步文件的同時,可以保持原來文件的權限,時間,軟硬鏈接等附加信息。Rsync是使用rsync算法提供一個客戶機和遠程文件服務器的文件同步的快速算法,而且可以同步ssh的方式來傳輸。
在Centos中使用下面命令安裝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
參數解釋:
查看一下/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/temproot@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/temproot@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/temproot@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/temproot@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=
參數,指定傳輸最小文件的大小。
以上是“如何使用rsync備份數據”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。