您好,登錄后才能下訂單哦!
異地備份系統的備份指令
rsync
Rsync的四種工作模式:
1.列表模式
和 ls -l 相似,負責列出源的內容。不僅可以看本地還可以看遠端
2.shell模式,也稱為本地模式
和cp相似,本地拷貝文件
rsync [option] SRC DEST
-v:顯示詳細過程
-q:靜默模式
-c:強制對傳輸的文件進行校驗
-r:遞歸復制
-p:保存文件的權限
-t:保留文件的時間戳
-l:保留文件的符號鏈接
-g:保留文件的屬組
-o:保留文件的屬主
-D:保留設備文件
-A:保留ACL訪問控制列表
-a:等同于-rlptgo
-e SSH:遠程復制時使用ssh協議做承載
通常用法為 -e 'ssh -p ssh端口號'
-z:對文件壓縮后傳輸
rsync命令在使用中,如果源參數的末尾有斜線,就會復制指定目錄內的內容,而不復制目錄。
如果沒有斜線,則會復制目錄本身。
3.遠程shell模式,可以通過rcp,ssh等通道傳輸
和rcp相似,不過可以實現增量備份,并且能夠通過安全的ssh方式進行數據傳輸
采用ssh還需要指定ssh的端口
遠程shell模式分倆種情況
拉取pull :rsync [option] SRC [USER@]HOST:DEST (拉取的話,遠端主機上一定要安裝rsync,不然會失敗)
推送push :rsync [option] SRC [USER@]HOST:DEST
[USER@]HOST 為rsync同步時遠程的連接用戶和主機地址
4.服務器模式
在這種模式下,rsync守護進程在一臺服務器上永久運行,接收文件傳輸請求。可以把文件發送給守護進程,也可以向它請求文件。
服務器模式非常適合創建中心備份服務器或項目存儲庫。
rsync的服務模式,部署時分為rsync的服務器端和客戶端,rsync的服務端和客戶端是一個軟件包,服務端和客戶端使用同一個rsync軟件包來實現遠程鏡像和定期同步更新。
rsync服務端可同時備份多個客戶端的數據,多個服務端可備份一個客戶端的數據。
rsync默認端口是873,服務端在該端口接收客戶端的匿名或者認證方式的備份請求。
rsync服務端在使用前需要進行必要的配置,配置文件為/etc/rsyncd.conf,該文件默認沒有,需要自己手動創建。
配置分全局配置端和模塊配置段
rsync服務端配置文件解釋:
uid=rsync #指定的模塊傳輸文件時使用的用戶身份
gid=rsync #指定的模塊傳輸文件時使用的用戶組身份
port=873 #默認端口
use chroot=no #是否禁錮用戶家目錄
max connections=xxx #最大并發數,默認為0不限制
timeout =xxx #會話超時時間
pid file=/var/run/rsyncd.pid #進程啟動后,進程號存放路徑
lock file=/var/run/rsyncd.lock #服務啟動,停止會用到的鎖文件
log file=/var/log/rsyncd.log #日志文件存放路徑
Log fromat = %h %o %f %l %b # 指定日志記錄的格式
motd file = /etc/rsyncd.motd # 登陸消息提示文件,可以不配置。默認為空。
[test] # 模塊名稱,名稱可以任意寫,不過一般是以路徑命名,最好見名意
Comment = test # 模塊信息描述,該描述連同模塊名在客戶連接得到模塊列表時顯示給客戶。默認沒有描述定義
path=/test/ # 指定供備份的目錄路徑,必須指定該參數。該目錄路徑是rsync服務端的一個路徑,提供給客戶端上傳或下載
ignore errors # 忽略錯誤
read only = false # 設定是否允許客戶上載文件。若為 true 任何上載請求均會失敗,若為 false 且客戶端擁有服務器目錄讀寫權限則可以上載。默認值為 true 。
write only 設定是否允許客戶下載文件。若為 true 任何下載請求均會失敗,默認值為 false 。
list = false # 設定當客戶請求可以使用的模塊列表時,是否列出該模塊。若為 false,則創建隱藏的模塊。默認值為 true
hosts allow=192.168.137.0/24 # 白名單或網段需要以空格隔開。默認是允許所有主機連接。
hosts deny=* # 黑名單
Dont commpress # 指定不進行壓縮處理即可傳輸的文件,默認值是 *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
auth users = rsync_backup # 該選項指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊。這里的用戶不一定是客戶端存在的用戶。如果"auth users"被設置,那么客戶端發出對該模塊的連接請求時,需要對用戶身份進行驗證。用戶的名和密碼以明文方式存放在"secrets file"選項指定的文件中。默認情況下無需密碼就可以連接模塊 ( 也就是匿名方式 )。
secrets file = /etc/rsync.password # 虛擬用戶的密碼文件,里面記錄的格式為:用戶名:密碼
exclude = common/ # 用來指定多個由空格隔開的多個文件或目錄 ( 相對路徑 ),并將其添加到 exclude 列表中。這等同于在客戶端命令中使用 --exclude 參數。一個模塊只能指定一個 exclude 選項。但是需要注意的一點是該選項有一定的安全性問題,客戶端很有可能繞過 exclude 列表,如果希望確保特定的文件不能被訪問,那就最好結合 uid/gid 選項一起使用。
pre-xfer exec, post-xfer exec # 設置可在文件傳輸前/后執行的命令。若在文件傳輸前執行的命令失敗,則取消本次傳輸操作。
Rsync服務端的啟動:
rsync --daemon #以守護進程方式啟動
#echo "/usr/bin/rsync --daemon &" >> /etc/rc.local 開機自動運行服務
手動啟動rsync的常見參數:
--daemon 以守護進程的方式啟動
--address 綁定指定IP提供服務,既服務器時多網卡或虛IP模式
--config=xxx 更改配置文件路徑,不使用默認的/etc/rsyncd.conf
--port=xx 更改端口
rsync客戶端配置:
客戶端僅需安裝rsync軟件,然后創建一個本地密碼文件,對應服務端配置文件里的每個模塊下面的虛擬用戶的密碼,以實現免密碼同步(只寫密碼不寫用戶名)
服務器模式下同步數據的格式:
拉取:rsync [option] [USER@]HOST::SRC DEST
推送:rsync [option] SRC rsync://[USER@]HOST[:PORT]/DEST
rsync服務器模式配置范例:
服務器端:
創建rsyncd配置文件;
vim /etc/rsyncd.conf
uid=rsync
gid=rsync
use chroot=no
port=873
list=/mysqlbak
max connections=10
timeout=300
Log fromat=%h %o %f %l %d
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
[mysqlbak]
path=/mysqlbak
read only=false
list=false
hosts allow=182.61.49.21
hosts deny=*
auth users=rsync
創建虛擬用戶:
useradd rsync -s /sbin/nologin -M (創建一個沒有家目錄沒法登陸的用戶)
mkdir /mysqlbak #創建備份目錄
chown -R rsync.rsync /mysqlbak
啟動服務端進程:
rsync --daemon
創建服務端的虛擬用戶密碼文件:
vim /etc/rsync.password
rsync:test@1234
改變密碼文件權限只有root用戶能讀寫:
chmod 600 /etc/rsync.password
客戶端配置:
vim /etc/rsync.password 創建客戶端密碼文件
test@1234
chmod 600 /etc/rsync.password 改變密碼文件權限只有root用戶能讀寫
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。