rsync 服務配置_rsync命令使用方法


rsync介紹

rsync用來定時備份服務器中的文件或者目錄,有三種工作模式,本地復制,使用系統用戶認證,守護進程方式,開源高效。同步工具,把一台機器上的文件同步都另一台機器 。默認使用873端口

選項

-a           #歸檔模式傳輸, 等於-tropgDl
-v           #詳細模式輸出, 打印速率, 文件數量等
-z           #傳輸時進行壓縮以提高效率
--delete     #讓目標目錄和源目錄數據保持一致
--password-file=xxx #使用密碼文件

------------------- -a 包含 ------------------
-r           #遞歸傳輸目錄及子目錄,即目錄下得所有目錄都同樣傳輸。
-t           #保持文件時間信息
-o           #保持文件屬主信息
-p           #保持文件權限
-g           #保持文件屬組信息
-l           #保留軟連接
-D           #保持設備文件信息
----------------------------------------------

-L           #保留軟連接指向的目標文件
-e           #使用的信道協議,指定替代rsh的shell程序
--exclude=PATTERN   #指定排除不需要傳輸的文件模式
--exclude-from=file #文件名所在的目錄文件
$RSYNC_PASSWORD 		# 用來存放rsync密碼的變量,使用之后可以不使用--password-file=xxx
# 遠程傳送 復制
scp 源文件 目標

上傳到另一台機器 
scp yum.log root@10.0.0.41:/root/

從另一台機器下載
scp root@10.0.0.41:/root/yum.log /root

-r 傳送目錄
推 scp -r /etc root@10.0.0.41:/root/
拉 scp -r root@10.0.0.41:/root/ /etc 

http	80
https	443
rsync	873
ftp		21
ssh		22

C/S	架構
client/server

小提示:利用rsync還可以實現刪除文件和目錄的功能,這又相當於rm命令,一個rsync相當於scp、cp、rm,但是還優於他們的每一個命令。

備份類型

增量備份

​ 基於全部備份,當客戶端A中有file1、file2、file3三個文件,服務器中有已經備份的file1,那么這個時候只會備份,file2和file3,在一次全備份或上一次增量備份后,以后每次的備份只需備份與前一次相比增加或者被修改的文件。

全部備份

​ 會把客戶端備份的內容全部備份到,服務器中。

差異備份

​ 假設我們在第一天也進行一次完全備份。第二天差異備份時,會備份第二天和第一天之間的差異數據,而第二天的備份數據是完全備份加第一次差異備份的數據。

rsync的使用方法

# 推
# 沒有/的情況是備份整個目錄
rsync -avz /etc root@10.0.0.41:/backup

# 有/的情況是備份目錄里面的內容
rsync -avz /etc/ root@10.0.0.41:/backup

# 拉
rsync -avz root@10.0.0.41:/etc/sysconfig/network-scripts/ifcfg-eth* /tmp

rsync的傳輸模式

本地傳輸模式

# 語法
rsync [OPTION...] SRC... [DEST]

# 復制文件
rsync /tmp/ifcfg-eth1 /opt/

# 拷貝目錄
rsync -a /etc /opt/

遠程傳輸模式

Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
拉: rsync [選項] 用戶名@主機ip:路徑 本地路徑
[root@web01 /tmp]# rsync -avz root@10.0.0.41:/etc/hostname ./

Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
推: rsync [選項] 本地文件或者目錄 用戶名@主機ip:路徑

這種模式借助的是ssh協議的22端口,當默認端口更改之后需要使用選項去指定。

守護進程模式

Access via rsync daemon:
         Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
		# 拉: rsync [-avz] zls_bak@10.0.0.41::[模塊] 源文件
         Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
         # 推: rsync [-avz] 源文件 zls_bak@10.0.0.41::[模塊]

環境准備

主機名 wanIP lanIP 角色
web01 10.0.0.7 172.16.1.7 客戶端
backup 10.0.0.41 172.16.1.41 服務端

服務端 : 備份的文件放在哪台主機的磁盤誰就是服務端。

1、安裝服務端

yum -y install rsync

2、修改配置文件通常以.conf .cfg .cnf 結尾的

[root@web01 /tmp]# vi /etc/rsyncd.conf
uid = rsync				# 進程啟動的用戶
gid = rsync				# 指定進程啟動的gid
port = 873				# rsync服務的端口
fake super = yes		#  無需讓rsync以root的身份運行,允許接收文件的完整屬性。
use chroot = no			# 禁錮指定的目錄path
max connections = 200	# 最大連接數
timeout = 600			# 超時時間單位s
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     # 備份的目錄

3、根據配置文件內容創建需要的環境

useradd rsync -s /sbin/nologin -M
mkdir /backup
chown -R rsync.rsync /backup/

[root@web01 /tmp]# vi /etc/rsync.passwd
rsync_backup:123

echo 'rsync_backup:123' > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd				# 密碼文件必須是這個權限

4、啟動服務加入開機自啟

systemctl start rsyncd
systemctl enable rsyncd
netstat -lntup |grep 873
ps -ef | grep rsync

5、安裝客戶端

yum -y install rsync
# 客戶端不用修改配置文件

6、配置客戶端密碼文件

echo '123' > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd

5、使用

推: rsync -avz /etc/passwd rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd

腳本使用rsync密碼變量

export RSYNC_PASSWORD=123
rsync -avz ./ rsync_backup@10.0.0.41::backup

rsync無差異同步

--delete

保證服務器上的內容和本地的內容是一致的,如果服務器上的內容多了會被刪除,使用很危險 。

[root@web01 ~]# rsync -avz ./ --delete rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd

rsync限速

--bwlimt

限制對磁盤的I/O

[root@web01 ~]# rsync -avz ./ --bwlimit=1 rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM