備份的概念
備份就是把重要的數據或者文件復制一份保存到另一個地方,實現不同主機之間的數據同步1
備份方式
1.cp
cp就是linux的復制命令,可用於本機內的備份
2.scp
Linux scp 命令用於 Linux 之間復制文件和目錄。
scp 是 secure copy 的縮寫, scp 是 linux 系統下基於 ssh 登陸進行安全的遠程文件拷貝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加強版。
3.rsync
rsync英文稱為remote synchronizetion,從軟件的名稱就可以看出來,rsync具有可使本地和遠程兩台主機之間的數據快速復制同步鏡像、遠程備份的功能,這個功能類似於ssh帶的scp命令,但是又優於scp命令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝。
scp傳輸方式
scp分為推和拉兩種方式
推:指從本地上傳到遠程服務器
格式:
scp [文件路徑] root@[ip] : [路徑]
拉:指從遠程服務器下載到本地
格式:
scp root@[ip] : [文件路徑] [本地路徑]
rsync服務
rsync的特性
支持拷貝特殊文件,如連接文件、設備等。
可以有排除指定文件或目錄同步的功能,相當於打包命令tar的排除功能。
可以做到保持原文件或目錄的權限、時間、軟硬鏈接、屬主、組等所有屬性均不改變 –p。
可以實現增量同步,既只同步發生變化的數據,因此數據傳輸效率很高(tar-N)。
可以使用rcp、rsh、ssh等方式來配合傳輸文件(rsync本身不對數據加密)。
可以通過socket(進程方式)傳輸文件和數據(服務端和客戶端)*****。
支持匿名的活認證(無需系統用戶)的進程模式傳輸,可以實現方便安全的進行數據備份和鏡像。
rsync傳輸模式
1.本地方式(類似於cp,不支持推送和拉取,只是單純的復制)
2.遠程方式(類似於scp,又不同於scp),scp只支持全量備份,rsync支持增量備份和差異備份
3.守護進程方式(客戶端和服務端)
rsync使用
命令格式:
rsync [參數] [文件路徑] root@[ip] : [目標路徑]
參數:
-t:保持文件時間信息
-o:保持文件屬組信息
-g:保持文件屬組信息
-p:保持文件權限
-l:保留軟鏈接
-D:保持設備文件信息
-r:遞歸傳輸目錄及子目錄
-a:歸檔模式傳輸,等於-tropgDl
-v:詳細模式輸出,打印速率,文件數量等
-z:傳輸時進行壓縮以提高效率
-P:保持文件的權限
--append:指定文件斷點續傳
--append-verify:斷點續傳后對文件進行驗證,如果文件有不同則修復
--exclude=[文件名]:指定文件名排除不需要傳輸的文件
--exclude-from=[文件名]:根據文件的內容排除不需要傳輸的文件
--bwlimit=n:限制傳輸速率,單位MB/s
--delete:讓目標目錄和源目錄數據保持一致
--password-file=[文件名]:使用密碼文件
--port:指定端口傳輸
案例:
案例1:將a目錄下的文件全部備份。
案例2:將a目錄下的文件備份並顯示備份時的信息。
通過此案例可知在備份文件時常用的參數是azvP(當不需要輸出時只用az)。
案例3:當a目錄備份中斷后斷點續傳。
斷點續傳時傳輸文件的百分比不太准確是正常的。
案例4:備份a目錄除了2.txt,並且將速率限制在10MB/s
限制網速的不能完全限制,只能限制一個近似的值
rsync守護進程模式
守護進程模式的主要目的是為了能實現自動備份。
需要在服務端配置文件方便客戶端的備份。
服務端
1.安裝rsync
2.修改配置文件
安裝完成后需要修改rsync的配置文件/etc/rsyncd.conf

uid = rsync gid = rsync port = 873 fake super = yes use chroot = no max connections = 200 timeout = 600 ignore errors read only = false list = false auth users = rsync_backup secrets file = /etc/rsync.passwd log file = /var/log/rsyncd.log ##################################### [backup] comment = welcome to backup! path = /backup [linux] comment = welcome to linux! path=/tmp/linux
3.創建系統用戶
按照配置文件中設定的用戶名和組名創建系統用戶
4.創建密碼文件
按照配置文件中的密碼文件目錄創建密碼文件。
5.為密碼文件授權
密碼文件的權限必須為600
6.創建備份目錄
按照配置文件中的模塊創建備份目錄(一個模塊就是一個目錄)
7.目錄授權
創建后的目錄用戶和屬組都是root,需要將其改為rsync
8.關閉防火牆和seLinux
9.啟動rsyncd服務
客戶端
配置完服務端之后就可以在客戶端嘗試使用。
可以用三種方式來使用
方式一:直接輸入密碼
方式二:設置密碼文件在運行時讀取
先創建密碼文件,並授權
使用密碼文件備份時無需輸入密碼
方式三:添加環境變量
將密碼添加到環境變量也可以無需輸入密碼進行備份,但是每次重啟后需要重新添加。
rsync實時同步
rsync本身並不支持實時同步功能,為了實現這一功能需要其他軟件的配合。通常我們使用inotify這個軟件來實時的監控軟件的變化,當發現軟件變化后就使用rsync來將文件進行備份。
intify參數介紹:
-m:持續監控
-r:遞歸
-q:靜默,僅打印時間信息
--timefmt:指定輸入時間格式
--format:指定事件輸出格式
%Xe:事件
%W:目錄
%f:文件
-e:指定監控的事件
access:訪問
modify:內容修改
attrib:屬性修改
close_write 修改真實文件內容
open:打開
create:創建
delete:刪除
umount:卸載
inotify使用方式:
1.安裝inotify
2.使用inotify來監控文件變化
命令格式:
inotifywait [參數] 文件目錄
3.實時監控並同步
inotifywait -mrq --format '%Xe %w %f' -e create,modify,delete,attrib,close_write /root/a | while read line;do cd /root/a rsync -azvP --delete --password-file=/etc/rsync.passwd ./* rsync_backup@172.16.1.41::backup done