天天看點

3、架構--cp、scp、rsync、實時監控與同步

筆記

1、晨考

1、VPN的搭建步驟

2、vpn中的iptables是什麼作用?
	網絡轉發
           

2、昨日問題

1、yum源問題
2、VPN連結正常,但是沒辦法通過172
3、VPN連結時,出現了DNS錯誤
4、掩碼不對
5、openvpn開啟錯誤
           

3、今日内容

1、rsync

2、備份方式
	cp		: 本機複制
	scp		: 遠端複制
		推(本地上傳到遠端伺服器):
			scp 1.txt root@ip:[路徑]
			[root@m01 ~]# scp 1.txt [email protected]:/opt/

		拉(把遠端伺服器檔案下載下傳到本地):
			scp root@ip:[路徑] ./
			[root@m01 ~]# scp [email protected]:/opt/2.txt .

		隻支援全量複制  1TB   1GB

	rsync	:遠端複制
		增量複制
           

4、rsync介紹

rsync英文稱為remote synchronizetion,從軟體的名稱就可以看出來,rsync具有可使本地和遠端兩台主機之間的資料快速複制同步鏡像、遠端備份的功能,這個功能類似于ssh帶的scp指令,但是又優于scp指令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝。當然,rsync還可以在本地主機的不同分區或目錄之間全量及增量的複制資料,這又類似cp指令。但是同樣也優于cp指令,cp每次都是全量拷貝,而rsync可以增量拷貝。

rsync官方位址:https://rsync.samba.org/
rsync監聽端口:873
rsync運作模式:C/S   client/server

rsync簡稱叫做遠端同步,可以實作不同主機之間的資料同步,還支援全量和增量
           

5、rsync特性

支援拷貝特殊檔案,如連接配接檔案、裝置等。
可以有排除指定檔案或目錄同步的功能,相當于打包指令tar的排除功能。
可以做到保持原檔案或目錄的權限、時間、軟硬連結、屬主、組等所有屬性均不改變 –p。
可以實作增量同步,既隻同步發生變化的資料,是以資料傳輸效率很高(tar-N)。
可以使用rcp、rsh、ssh等方式來配合傳輸檔案(rsync本身不對資料加密)。
可以通過socket(程序方式)傳輸檔案和資料(服務端和用戶端)*****。
支援匿名的活認證(無需系統使用者)的程序模式傳輸,可以實作友善安全的進行資料備份和鏡像。
           

6、rsync應用場景

全量備份
增量備份
           

7、rsync的傳輸方式

push 推:
用戶端将資料從本地推送至服務端
 
pull 拉:
用戶端将資料從服務端拉取到本地

           

8、Rsync傳輸模式

1.本地方式(類似于cp,不支援推送和拉取,隻是單純的複制)
2.遠端方式(類似于scp,又不同于scp),scp隻支援全量備份,rsync支援增量備份和差異備份
3.守護程序方式(用戶端和服務端)
           

6、RSYNC使用

-a           #歸檔模式傳輸, 等于-tropgDl    -t -r -o -p -g -D -l
-v           #詳細模式輸出, 列印速率, 檔案數量等
	[root@m01 ~]# rsync -v ./2.txt  [email protected]:/opt/
-z           #傳輸時進行壓縮以提高效率
	[root@m01 ~]# rsync -vz ./2.txt  [email protected]:/opt/
-r           #遞歸傳輸目錄及子目錄,即目錄下得所有目錄都同樣傳輸。
	[root@m01 ~]# rsync -vzr ./a  [email protected]:/opt/
-t           #保持檔案時間資訊
	[root@m01 ~]# rsync -vzrt ./a/b/c/2.txt  [email protected]:/opt/
-o           #保持檔案屬主資訊
-g           #保持檔案屬組資訊
	[root@m01 ~]# rsync -vzrtgo  ./a/b/c/2.txt  [email protected]:/opt/
-p           #保持檔案權限
	[root@m01 ~]# rsync -vzrtgop  ./a/b/c/2.txt  [email protected]:/opt/
-l           #保留軟連接配接
	[root@m01 ~]# rsync -vzrtgopl  ./*  [email protected]:/opt/
-P           #顯示同步的過程及傳輸時的進度等資訊
	[root@m01 ~]# rsync -vzrtgoplP  ./*  [email protected]:/opt/
-D           #保持裝置檔案資訊
	[root@m01 dev]# rsync -vzrtgDopl /dev/tty1   [email protected]:/opt/
-L           #保留軟連接配接指向的目标檔案
-e           #使用的信道協定,指定替代rsh的shell程式

--append            # 指定檔案接着上次傳輸中斷處繼續傳輸
--append-verify     # 使用參數續傳(在斷點續傳之後,驗證一下檔案,如果不同,修複檔案)

--exclude=PATTERN   # 指定排除不需要傳輸的檔案
	[root@m01 ~]# rsync -avzP --append-verify --exclude=2.txt  ./* [email protected]:/opt/

--exclude-from=file # 按照檔案指定内容排除
	[root@m01 ~]# rsync -avzP --append-verify --exclude-from=/tmp/exclude.txt  ./* [email protected]:/opt/

--bwlimit=100       # 限速傳輸(機關:MB)
	[root@m01 ~]# rsync -avzP --append-verify --bwlimit=10  ./* [email protected]:/opt/

--delete            # 讓目标目錄和源目錄資料保持一緻

--password-file=xxx # 使用密碼檔案

--port              # 指定端口傳輸
           

7、rsync守護程序模式

7.1、服務端

1、安裝
[root@backup ~]# yum install -y rsync

2、修改配置檔案
[root@backup ~]# vim /etc/rsyncd.conf 
uid = rsync
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
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to backup!
path = /backup
[linux]
comment = welcome to linux!
path=/tmp/linux

3、建立系統使用者
[root@backup opt]# groupadd rsync -g 666
[root@backup opt]# useradd rsync -u 666 -g 666 -M -s /sbin/nologin -r

4、建立密碼檔案
[root@backup opt]# echo "rsync_backup:123456" > /etc/rsync.passwd

5、授權(必須授權為600)
[root@backup opt]# chmod 600 /etc/rsync.passwd

6、建立備份目錄
[root@backup opt]# mkdir /backup
[root@backup opt]# mkdir /tmp/linux

7、目錄授權
[root@backup opt]# chown rsync.rsync /backup/
[root@backup opt]# chown rsync.rsync /tmp/linux/

8、關閉防火牆和selinux
[root@backup opt]# systemctl disable --now firewalld
[root@backup opt]# setenforce 0

9、啟動rsyncd服務
[root@backup opt]# systemctl start rsyncd
           

7.2、用戶端

方法一:自己輸入密碼
	[root@m01 ~]# rsync -avzP ./* [email protected]::backup
	
	rsync_backup : 虛拟使用者,隻在資料傳輸時使用
	172.16.1.41  : backup服務端的IP
	backup       : 子產品名稱
	
方法二:設定密碼檔案,運作時讀取

	1、編寫密碼檔案
	[root@backup opt]# echo "123456" > /etc/rsync.passwd

	2、授權
	[root@m01 ~]# chmod 600 /etc/rsync.passwd

	3、連接配接
	[root@m01 ~]# rsync -avzP --password-file=/etc/rsync.passwd  ./* [email protected]::linux


方法三:添加環境變量
	1、定義環境變量
	export RSYNC_PASSWORD=123456
	
	2、同步
	[root@m01 ~]# rsync -avzP  ./* [email protected]::linux

           

8、rsync實時同步

rsync是不支援實時同步的,通常我們借助于inotify這個軟體來實時監控檔案變化,一旦inotify監控到檔案變,則立即調用rsync進行同步。

1、安裝inotify(裝在用戶端)
[root@web01 ~]# yum -y install inotify-tools

2、inotify參數介紹
-m 持續監控
-r 遞歸
-q 靜默,僅列印時間資訊
--timefmt 指定輸出時間格式
--format 指定事件輸出格式
    %Xe 事件
    %w 目錄
    %f 檔案
-e 指定監控的事件
    access 通路
    modify 内容修改
    attrib 屬性修改
    close_write 修改真實檔案内容
    open 打開
    create 建立
    delete 删除
    umount 解除安裝
    
3、開始監控
[root@m01 ~]# /usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write  /root

4、實時監控并同步
[root@m01 ~]# /usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write  /root | while read line;do
	cd  /root
	rsync -avzP --delete --password-file=/etc/rsync.passwd ./* [email protected]::backup
done