備份伺服器(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