rsync流程
1. rsync概述
rsync常用的傳輸工具,多臺服務器之間傳輸數(shù)據(jù),具備全量同步和增量同步
備份服務: rsync+定時任務 實現(xiàn)定時備份
官網(wǎng): 傳送門 http://rsync.samba.org
端口: 873
rsync運行模式: c/s client(客戶端)/server(服務端) rsync守護進程模式
2. rsync應用場景
.定時任務+rsync(服務)
3. 部署rsync服務
(1)服務端部署
安裝部署軟件
#rpm -qa|grep rsync
yum install -y rsync
創(chuàng)建管理備份目錄以及數(shù)據(jù)用戶信息
useradd rsync -M -s /sbin/nologin
創(chuàng)建備份數(shù)據(jù)目錄
mkdir /backup
chown rsync.rsync /backup/
創(chuàng)建用戶列表文件
echo 'rsync_backup:oldboy123' >/etc/rsync.password
chmod 600 /etc/rsync.password
編寫配置文件
#vi /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup
-----------------------------架構(gòu)備份服務文件配置講解---------------------------------------------------------
/etc/rsyncd.conf
uid = rsync --- 指定rsync服務備份目錄或數(shù)據(jù)信息管理用戶信息
gid = rsync --- 指定rsync服務備份目錄或數(shù)據(jù)信息管理用戶組信息
port = 873 --- 指定服務程序端口信息
fake super = yes --- 將uid指令指定用戶可以偽裝為管理員用戶
use chroot = no --- 提高數(shù)據(jù)備份安全性挡育,前提需要將備份目錄權(quán)限與uid信息設置root用戶 尉共??废岂?雞肋
max connections = 200 --- 設置最大連接數(shù)
timeout = 300 --- 設置連接會話超時時間(閑置狀態(tài))
pid file = /var/run/rsyncd.pid --- 記錄服務程序pid文件(進程號文件)
lock file = /var/run/rsync.lock --- 服務程序鎖文件(開發(fā)-網(wǎng)絡編程)
log file = /var/log/rsyncd.log --- 服務程序日志文件
ignore errors --- 盡量忽略簡單異常錯誤
read only = false --- 指定備份數(shù)據(jù)的目錄是否是只讀狀態(tài)
list = false --- 列表顯示備份服務模塊信息怪嫌?漠另?餐弱?
hosts allow = 172.16.1.0/24 --- 白名單 允許哪個客戶端主機地址進行訪問
hosts deny = 0.0.0.0/32 --- 黑名單 允許哪個客戶端主機地址不能訪問
auth users = rsync_backup --- 指定可以進行認證用戶信息(不需要在系統(tǒng)中創(chuàng)建)
secrets file = /etc/rsync.password --- 用戶密碼文件(權(quán)限600 屬主屬組 root)
[backup] --- 模塊信息 模塊下面的信息成為局部配置信息
comment = "實現(xiàn)運維人員備份數(shù)據(jù)" --- 模塊注釋說明
path = /backup --- 數(shù)據(jù)備份目錄
[devdata]
comment = "實現(xiàn)開發(fā)人員備份數(shù)據(jù)"
path = /devdata
啟動服務程序
systemctl start rsyncd
ps -ef|grep rsync 查詢程序是否啟動
netstat -lntup|grep rsync 查詢程序是否啟動
(2)客戶端部署過程
交互式實現(xiàn)數(shù)據(jù)傳遞過程:
rsync -avz /home/oldboy/oldboy.txt rsync_backup@172.16.1.41::backup
#此時會提示輸入密碼
oldboy123
免交互實現(xiàn)數(shù)據(jù)傳遞過程:
兩種方式:
方式一:在客戶端創(chuàng)建一個密碼文件(主要使用
echo oldboy123 >/etc/rsync.password
chmod 600 /etc/rsync.password
##免密傳輸:--password-file=/etc/rsync.password
rsync -avz /etc rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
方式二:配置環(huán)境變量實現(xiàn)免交互
RSYNC_PASSWORD --- 設置環(huán)境變量實現(xiàn)免交互
echo 'export RSYNC_PASSWORD="oldboy123"' >> /etc/profile
rsync -avz /etc/selinux/config rsync_backup@172.16.1.41::backup
參數(shù)信息總結(jié):-avz
-v, --verbose increase verbosity
顯示傳輸過程信息
-z, --compress compress file data during the transfer
文件在傳輸時做壓縮處理
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
執(zhí)行-a參數(shù)等價于執(zhí)行-rlptgoD
-r, --recursive recurse into directories
進行遞歸復制數(shù)據(jù)信息(可以實現(xiàn)目錄傳輸)
-l, --links copy symlinks as symlinks 沒有任何作用
可以復制軟鏈接文件
-L, --copy-links transform symlink into referent file/dir
將鏈接文件所執(zhí)行源文件信息做備份
-p, --perms preserve permissions
維持權(quán)限屬性信息不變
-t, --times preserve modification times
維持文件修改時間屬性不變
-o, --owner preserve owner (super-user only)
維持文件屬主信息不變
-g, --group preserve group
維持文件屬組信息不變
-D same as --devices --specials
復制傳輸設備文件信息可以保持設備文件屬性信息不變
-P same as --partial --progress
顯示數(shù)據(jù)傳輸進度信息
--belete 實現(xiàn)無差異數(shù)據(jù)同步
--bwlimit 實現(xiàn)數(shù)據(jù)傳輸限速功能 KBps
--exclude 實現(xiàn)數(shù)據(jù)備份排除功能
--exclude-form 實現(xiàn)數(shù)據(jù)備份排除功能
--password-file 讀取密碼文件實現(xiàn)免交互傳輸數(shù)據(jù)
--port 指定訪問備份服務端口信息
rsyncy應用
--delete 讓目標目錄和源目錄一致
rsync -avzP /liu --exclude-from=liu.txt [root@10.0.0.123:/liu](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu)
from 要從哪里來 liu.txt 里面是要排除的東西
第一步編輯一個文件最好是在相對應的目錄中焕檬,寫入要排除的內(nèi)容姆坚,可以是絕對,也可以是相對
三:守護進程創(chuàng)建備份目錄
客戶端要在服務端備份數(shù)據(jù)实愚,可以在相對應的目錄后加入所要的目錄
正確示范:
rsync -avzP /liu --exclude-from=liu.txt [root@10.0.0.123:/liu/yan](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu%2Fyan)
[root@10.0.0.123:/liu/yan](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu%2Fyan) /liu后面所跟的/yan 就是客戶端向服務器自己創(chuàng)建的目錄
--exclude 排除
1.正確示范
rsync -avzP /liu --exclude=liu1--exclude=1.txt[root@10.0.0.123:/liu](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu)
不要/liu下的liu1兼呵,并且不要1.txt
錯誤:rsync -avzP /liu --exclude=/liu/liu1 --exclude=1.txt[root@10.0.0.123:/liu](https://links.jianshu.com/go?to=mailto%3Aroot%4010.0.0.123%3A%2Fliu)
不要/liu下的liu1,并且不要1.txt
1. 排除參數(shù)后面數(shù)據(jù)信息爆侣,不能寫絕對路徑
2. 排除錯誤后面數(shù)據(jù)信息萍程,不能寫相對路勁
總結(jié):排除的路徑信息,需要編寫為指定目錄的相對路徑
--bwlimit 限速
rsync -avz --bwlimit=10k /tmp rxync_backup@10.0.0.41::backup
守護進程的訪問控制
控制不是所有任何人都能向服務器傳輸數(shù)據(jù)
Vi /etc/rsync.conf 配置中的白名單和黑名單
Hosts allow = 10.0.0.123/24 白名單
Hosts deny = 0.0.0.0/24 黑名單
第一種情況:白名單控制:只允許兔仰,其他的都拒絕
第二種情況:黑名單控制:只拒絕茫负,其他的偶可以
第三種情況:即允許又拒絕 優(yōu)先白名單
介意:盡量只使用一種名單