rsync基礎服務

學習服務前,我們先想一個問題:什麼是備份,我們爲什麼要備份,能不能不做備份,備份有哪幾種,備份的方式有哪幾種
1、什麼是備份
簡單來說備份就是一個文件的的副本,鏡像
2、我們爲什麼要備份
簡單來說,就是因爲數據過於重要, 不能丟失,損壞,其要確保數據的安全,同時保證數據丟失損壞的情況下能快速恢復數據
3、能不能不做備份
在數據龐大切不重要的情況下,我們可以不考慮做備份
4、備份有哪幾種
簡單分爲:數據備份和系統備份
5、備份的方式有哪幾種
方式有全局備份和增量備份

下面,我們來一起學習下rsync這個基礎服務,這是個什麼服務?

一句話簡短的概況一下:遠程同步工具, 支持不同主機系統之間同步。(windows linux mac)並且能實現,全量與增量的同步方式。rsync是C/S 架構 即:客戶端—>服務端 使用端口873/tcp。

1、我們繼續說說rsync三大傳輸模式。

1、本地傳輸模式:類似於cp

[root@yu ~]# rsync -avz 123.txt /tmp/
[root@yu ~]# rsync -avz /etc/ /tmp/

注意: 每次拷貝都是增量,如果有新增,拷貝新增,如果修改歷史拷貝過的文件,則同步修改後的文件
2、遠程傳輸模式:類似於scp,基於ssh協議

[root@yu ~]# rsync -avz [email protected]:/root/123.txt /tmp

3、守護進程模式:以服務的方式運行在後臺

[root@yu ~]# cat /etc/rsyncd.conf
uid = rsync								# 運行進程的用戶
gid = rsync								# 運行進程的用戶組
use chroot = no							#安全功能,數據是否鎖定到備份目錄
fake super = yes						#不需要rsync已root身份運行,就可以存儲文件的完整屬性
max connections = 200					#最大連接數,同時多少客戶端訪問
timeout = 600							#超時時間(秒)
pid file = /var/run/rsyncd.pid			#pid進程號 所在文件
lock file = /var/run/rsync.lock			#鎖文件lock 比如兩個窗口同時運行yum
log file = /var/log/rsyncd.log			#日誌文件,查看報錯,排錯必備
ignore errors							#忽略錯誤
#read only = false						#關閉只讀
read only = true						#開啓只讀
list = false							#不允許列表
#hosts allow = 172.16.1.0/24			#allow准許哪些主機可以訪問
#hosts deny = 0.0.0.0/32				#deny 拒絕哪些主機不可以訪問
auth users = rsync						#指定認證用戶(不存在),遠程虛擬鏈接用戶
secrets file = /etc/rsync.password		#存放密碼的文件,權限 必須600
#####################################
[data]									#模塊名
path = /data							#指定服務端用戶備份的共享目錄
  • 創建進程運行的用戶
[root@yu ~]# useradd rsync -M -s /sbin/nologin
  • 創建虛擬用戶以及虛擬用戶的密碼/etc/rsync.passwd
[root@yu ~]# cat /etc/rsync.passwd 
rsync:1
[root@yu ~]# chmod 600 /etc/rsync.passwd
  • 創建一個接收備份數據目錄
[root@yu ~]# mkdir /data
[root@yu ~]# chown -R rsync.rsync /data/
  • 啓動與開機自啓動
[root@yu ~]# systemctl start rsyncd
[root@yu ~]# systemctl enable rsyncd
  • 檢查端口
[root@yu ~]# netstat -lntp

注意:進程能夠以什麼樣的方式去訪問一個文件,取決於運行該進程的用戶身份,對這個文件擁有什麼權限
錯誤點:目錄後加/與不加/區別

/tmp         	目錄和目錄裏的文件
/tmp/  			目錄內的文件(不包含目錄)
2、配置守護進程出現的一些常見報錯

1、防火牆和selinux
2、密碼文件名稱和配置信息內容不符
3、模塊找不到(可能是複製時候使用了vim)

3、rsync作爲服務端一些選項 如何使用?
-a           			#歸檔模式傳輸, 等於-tropgDl
-v        			 	#詳細模式輸出, 打印速率, 文件數量等
-z        				#傳輸時進行壓縮以提高效率
-r          			#遞歸傳輸目錄及子目錄,即目錄下得所有目錄都同樣傳輸。
-t           			#保持文件時間信息
-o           			#保持文件屬主信息
-p           			#保持文件權限
-g           			#保持文件屬組信息
-l           			#保留軟連接
-P           			#顯示同步的過程及傳輸時的進度等信息
-D           			#保持設備文件信息
-L           			#保留軟連接指向的目標文件
-e           			#使用的信道協議,指定替代rsh的shell程序  -e 'ssh'
--exclude=PATTERN   	#指定排除不需要傳輸的文件模式
--exclude-from=file 	#文件名所在的目錄文件
--bwlimit=100       	#限速傳輸
--partial           	#斷點續傳
--delete           		#讓目標目錄和源目錄數據保持一致
4、顯示傳輸的每秒的速率:-P
[root@yu ~]# dd if=/dev/zero of=./size_file bs=1M count=300
[root@yu ~]# rsync -avzP size_file  [email protected]::data
sending incremental file list
size_file
314,572,800 100%   81.20MB/s    0:00:03 (xfr#1, to-chk=0/1)
5、限速,非常重要:- -bwlimit=10
[root@yu ~]# rsync -avzP --bwlimit=10 size_1G  [email protected]::data
			....
			   566,394,880  54%   10.12MB/s    0:00:46
6、強制同步:- -delete

在推送時添加–delete,強制讓服務端與客戶端保持一致,在拉取時添加–delete,強制讓客戶端與服務端保持一致

7、排除:- -exclude 或 - -exclude-from=文件
[root@yu ~]# rsync -avz --exclude=/root/123.txt /root  [email protected]::data
8、密碼免交互

第一種方式:

[root@yu ~]# echo "1" > /etc/rsync.pass
[root@yu ~]# chmod 600 /etc/rsync.pass 
[root@yu ~]# rsync -avz /root [email protected]::data --password-file=/etc/rsync.pass

第二種方式:

[root@yu ~]# export RSYNC_PASSWORD=1
[root@yu ~]# rsync -avz /root [email protected]::data
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章