1.先準備好虛擬機
主機名 網卡etho 網卡eth1 用途
web01 10.0.0.7/24 172.16.1.7/24 nginxweb服務器【未來部署】
NFS01 10.0.0.31/24 172.16.1.31/24 NFS儲存服務器【未來部署】
backup 10.0.0.41/24 172.16.1.41/24 rsync儲存服務器
2.rsync在backup安裝流程
1.yum -y install rsync 安裝ysync
----------------------------------------
2.rpm -qc rsync #查看服務的配置文件
? ? /etc/rsyncd.conf
? ? /etc/sysconfig/rsyncd
------------------------------------------------
3.cp /etc/rsyncd.conf{,.bak} #備份配置文件
--------------------------------------------------
4.#配置/etc/rsyncd.conf文件
vi /etc/rsyncd.conf
uid = www
gid = www
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 oldboyedu backup!
path = /backup
[data]
path = /data
--------------------------------------------
5.mkdir -p /backup #創(chuàng)建備份目錄
-----------------------------------------
? mkdir -p /data
-------------------------------------------------
6.groupadd www -g666 #創(chuàng)建用戶組
--------------------------------------------------
useradd www -u 666 -g 666 -M -s /sbin/nologin #創(chuàng)建虛擬用戶
-----------------------------------------------------------------
id www #檢測創(chuàng)建
----------------------------------------
uid=666(www) gid=666(www) 組=666(www)
-------------------------------------------------
7.chown -R www.www /backup/ #給備份目錄授權
-------------------------------------------------
chown -R www.www /data/
----------------------------------------------------
8.ll -d /backup/ /data/? ? ? 檢測創(chuàng)建? ?
67791369 drwxr-xr-x 2 www www 6 2020-01-03 21:29:20 /backup//
101465103 drwxr-xr-x 2 www www 6 2020-01-03 21:29:24 /date//
----------------------------------------------------------------
9.echo "rsync_backup:oldboy" >/etc/rsync.passwd #創(chuàng)建密碼文件
------------------------------------------------------------------
chmod 600 /etc/rsync.passwd ? #授權密碼文件
---------------------------------------------------------------
10.systemctl start rsyncd #啟動rsync服務
----------------------------------------------------
systemctl status rsyncd|grep active
Active: active (running) since 五 2020-01-03 21:36:35 CST; 21s ago
---------------------------------------------------------------------------
systemctl enable rsyncd #設置開機自啟動
3.配置內容意思
uid = www # 運行進程的用戶
gid = www # 運行進程的用戶組
port = 873 # 監(jiān)聽端口
fake super = yes # 無需讓rsync以root身份運行,允許接收文件的完整屬性
use chroot = no # 禁錮推送的數據至某個目錄, 不允許跳出該目錄
max connections = 200 # 最大連接數
timeout = 600 # 超時時間
ignore errors # 忽略錯誤信息
read only = false # 對備份數據可讀寫
list = false # 不允許查看模塊信息
auth users = rsync_backup # 定義虛擬用戶,作為連接認證用戶
secrets file = /etc/rsync.passwd # 定義rsync服務用戶連接認證密碼文件路徑
[backup] # 定義模塊信息
comment = commit # 模塊注釋信息
path = /backup # 定義接收備份數據目錄
4.客戶端操作流程
1.yum -y install rsync 安裝rsync
-------------------------------------------
2.
echo "oldboy" >/etc/rsync.passwd #創(chuàng)建密碼文件
chmod 600 /etc/rsync.passwd ? ? #授權密碼文件
3.#客戶端測試 試著推送拉取文件目錄
rsync -avz /etc/hosts root@172.16.1.41:/tmp? #推送hosts到服務端
rsync -avz -e 'ssh -p 22' root@172.16.1.41:/etc/hosts /tmp? #從服務端加密拉取hosts到本地
4.客戶端上傳數據到backup和data模塊
? ? rsync -avzP --password-file=/etc/rsync.passwd hostname.txt rsync_backup@10.0.1.41::backup
? ? rsync -avzP --password-file=/etc/rsync.passwd hostname.txt rsync_backup@10.0.1.41::data
5.客戶端下載數據到本地目錄
rsync -avzP --password-file=/etc/rsync.passwd rsync_backup@10.0.1.41::data /test/
5.擴展
1.rsync的limit限速
#企業(yè)案例: 某 DBA 使用 rsync 拉取備份數據時,由于文件過大導致內部交換機帶寬被沾滿,導致用戶的請求無法響應
export RSYNC_PASSWORD=oldboy
rsync -avz --bwlimit=1 rsync_backup@172.16.1.41::backup /data/
#限制傳輸帶寬為1MB/s
[root@nfs /test]# rsync -avzP --bwlimit=1 bigfile.txt rsync_backup@10.0.1.41::backup
sending incremental file list
bigfile.txt
? ? 92,995,584? 8%? ? 1.01MB/s? ? 0:15:51
-----------------------------------------------------
2.rsync實現無差別同步
危險,慎用!
#拉取遠端數據:遠端與本地保持一致,遠端沒有,本地有會被刪除, 造成客戶端數據丟失
? ? export RSYNC_PASSWORD=oldboy
? ? rsync -avz --delete rsync_backup@172.16.1.41::backup /data/
#推送數據至遠端:本地與遠端保持一致, 本地沒有,遠端會被刪除, 造成服務器端數據丟失
? ? export RSYNC_PASSWORD=oldboy
? ? rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup