天天看點

網際網路架構 之備份伺服器 rsync

備份伺服器(Rsync)

1、介紹備份的場景

1、什麼情況下需要備份

一般資料比較重要的情況下,資料如果丢失很容易找不回來了的,建議備份。

2、什麼是備份

将原有的資料複制一份或幾份存起來,以備不時之需。

3、能不能不做備份

可以,但是資料丢失不要後悔。

4、備份的工具

本地備份工具:cp

遠端備份工具:scp、Rsync

scp :全量備份

rsync : 增量備份

5、scp的格式

1、推資料

将本機的檔案上傳到其他伺服器

scp [參數] [本機檔案的路徑] [使用者]@[ip]:[遠端主機的路徑]

2、拉資料

将其他伺服器上的檔案下載下傳到本機

scp [參數] [使用者]@[ip]:[遠端主機的路徑] [本機檔案的路徑]

3、scp中參數

-p : 保留原檔案的修改時間,通路時間和通路權限。

案例1:将DB01伺服器上etc目錄中所有的普通檔案打包,備份到rsync伺服器的/tmp目錄中

[root@db01 ~]# scp /root/etc.tar.gz [email protected]:/tmp/

案例2:要求rsync伺服器主動備份db伺服器的etc.tar.gz

[root@rsync tmp]# scp [email protected]:/root/etc.tar.gz /tmp/

案例3:要求備份etc.tar.gz檔案,且時間盡可能不改變

[root@db01 ~]# scp -p etc.tar.gz [email protected]:/tmp/

案例4:要求将db01的/root目錄上傳到rsync的/opt目錄中

[root@db01 ~]# scp -r /root/ [email protected]:/opt/

2、介紹Rsync

rsync是遠端增量檔案備份工具。

2、rsync的特性

支援拷貝特殊檔案,如連接配接檔案、裝置等。

可以有排除指定檔案或目錄同步的功能,相當于打包指令tar的排除功能。

可以做到保持原檔案或目錄的權限、時間、軟硬連結、屬主、組等所有屬性均不改變 –p。

可以實作增量同步,既隻同步發生變化的資料,是以資料傳輸效率很高(tar-N)。

可以使用rcp、rsh、ssh等方式來配合傳輸檔案(rsync本身不對資料加密)。

可以通過socket(程序方式)傳輸檔案和資料(服務端和用戶端)。

支援匿名的活認證(無需系統使用者)的程序模式傳輸,可以實作友善安全的進行資料備份和鏡像。

3、場景

cron + rsync : 跟定時任務進行綁定。

rsync + innotify : 以守護程序的方式同步檔案

災備

容災

4、Rsync的傳輸模式

1、本地傳輸模式

1、格式

rsync [參數] [原來的路徑] [現在的路徑]

2、案例

案例1:将/tmp/etc.tar.gz上傳到/mnt目錄下

[root@rsync opt]# rsync /tmp/etc.tar.gz /mnt/

[root@rsync opt]# ll /mnt/

total 11136

-rw-r--r--. 1 root root 11402223 Oct 19 16:04 etc.tar.gz

3、參數

-t # 保持檔案時間資訊

-r # 遞歸傳輸目錄及子目錄

常用的參數組合:-avzP

案例:将/root目錄傳輸到/mnt目錄

[root@rsync opt]# rsync -r /root/ /mnt/

2、遠端傳輸模式

rsync [參數] [本地檔案路徑] [使用者]@[ip]:[遠端路徑]

案例:

将3.txt傳輸到db01伺服器上的/opt目錄

[root@rsync tmp]# rsync -avzP 3.txt [email protected]:/opt/

2、拉資料

[root@rsync tmp]# rsync -avzP [email protected]:/opt/3.txt /tmp/

3、以守護程序的方式

1、為什麼需要以守護程序的方式傳輸

1、保證資料安全

2、資料歸檔

2、步驟

1、編寫rsync的守護程序的配置檔案

1、編寫配置檔案

/etc/rsyncd.conf

2、建立rsync的啟動使用者

[root@rsync tmp]# useradd rsync -r -M -s /sbin/nologin

3、建立密碼檔案

[root@rsync tmp]# touch /etc/rsync.passwd

4、建立使用者和密碼關聯資料

[root@rsync tmp]# echo 'rsync_backup:123456' > /etc/rsync.passwd

5、授權密碼檔案

[root@rsync tmp]# chmod 600 /etc/rsync.passwd

uid = rsync #啟動服務的使用者id(可以使用名稱代替) 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 # 存放密碼的檔案(權限必須是600,密碼是明文) log file = /var/log/rsyncd.log ##################################### [backup] # 備份的子產品(backup是子產品的名稱) comment = welcome to oldboyedu backup! # 提示語 path = /backup # 備份的路徑

2、建立備份的目錄

1、建立目錄

[root@rsync tmp]# mkdir /backup

2、将目錄的使用者修改成rsync

[root@rsync tmp]# chown rsync.rsync /backup/

3、啟動rsync服務

[root@rsync tmp]# systemctl start rsyncd

2、部署用戶端

1、安裝rsync

yum install rsync -y

2、開始傳輸

1、輸入密碼傳輸

[root@db01 opt]# rsync -avzP /opt/3.txt [email protected]

2、使用密碼檔案

[root@db01 opt]# echo "123456" > /etc/rsync.passwd

[root@db01 opt]# chmod 600 /etc/rsync.passwd

[root@db01 opt]# rsync -avzP /opt/3.txt [email protected]::backup --password-file=/etc/rsync.passwd

3、使用變量的方式進行傳輸

[root@db01 opt]# export RSYNC_PASSWORD=123456

[root@db01 opt]# rsync -avzP /opt/3.txt [email protected]::backup

5、Rsync + inotify

怎樣實作rsync根據目錄的變化去實時同步資料。

inotify就是實時監控目錄中檔案的變化。

1、安裝inotify(用戶端)

yum -y install inotify-tools

繼續閱讀