rsync復(fù)制軟件應(yīng)用與實(shí)踐
1轴合、什么是rsync?
rsync英文是remote synchronization? 縮寫是rsync
rsync是開源的、高速的、數(shù)據(jù)復(fù)制工具庸追。
2、rsync 的作用:
工作中需要定時(shí)/實(shí)時(shí)數(shù)據(jù)備份台囱,本地服務(wù)器目錄、不同機(jī)器读整、不同機(jī)房之間的數(shù)據(jù)備份簿训。這些都可以用rsync完成。
3米间、rsync 的功能特性
全量復(fù)制:將所有的需要復(fù)制的文件重復(fù)復(fù)制覆蓋强品,浪費(fèi)時(shí)間和資源。
增量復(fù)制:只將新增的數(shù)據(jù)復(fù)制屈糊,其余數(shù)據(jù)不變的榛。根據(jù)大小屬性的變化進(jìn)行復(fù)制。
5逻锐、rsync三中工作模式介紹:
1)本地(local)
在local模式下rsync就是一個(gè)命令
a夫晌、把數(shù)據(jù)從一個(gè)地方復(fù)制到另一個(gè)地方(僅在一臺機(jī)器上增量)雕薪,相當(dāng)于cp
b、通過加參數(shù)實(shí)現(xiàn)刪除分功能晓淀,相當(dāng)于rm命令所袁。
c、查看屬性信息功能凶掰,相當(dāng)于ls燥爷。
2))遠(yuǎn)程shell模式
借助類似ssh隧道傳輸數(shù)據(jù),適合不同的機(jī)器之間復(fù)制懦窘。
pull(拉):從遠(yuǎn)端拉取到本地前翎。
用法:rsync -avz root@172.16.1.41:/tmp/dmesg /tmp/
push(推):從本地推到遠(yuǎn)端。
用法:rsync -avz /var/log/dmesgroot@172.16.1.41:/tmp/
3)守護(hù)進(jìn)程模式(工作中常用)
首先要搭建服務(wù)端(要有守護(hù)進(jìn)程)畅涂,然后才能在客戶端實(shí)現(xiàn)推拉數(shù)據(jù)港华。
rsync服務(wù)模式: *****開啟后臺進(jìn)程,接受別人訪問毅戈。
企業(yè)常用組合為:rsync -avz 或者 rsync -vzrtopg
7苹丸、rsync守護(hù)進(jìn)程模式應(yīng)用實(shí)踐:
配置服務(wù)器端守護(hù)進(jìn)程,實(shí)現(xiàn)數(shù)據(jù)傳輸:
1苇经、服務(wù)器端守護(hù)進(jìn)程赘理。
2、客戶端執(zhí)行命令扇单。
用法:
pull(拉):從遠(yuǎn)端拉取到本地商模。
用法:rsync -avz rsync_backup@172.16.1.41::backup /root/ —password-file=/etc/rsync.password?
push(推):從本地推到遠(yuǎn)端。
用法:rsync -avz /root/oldboy.txt? rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
用法
rsync ?? [OPTION...] ? ? ? SRC... ? ? [DEST]
rsync命令 參數(shù)選項(xiàng) [源目錄或文件] 目的目錄或文件
拷貝用法: rsync /etc/hosts /opt
保持屬性拷貝: rsync -zrtopg /etc/hosts /opt/
刪除用法: rsync --delete /null.txt /opt/hosts? #讓前面null.txt和后面hosts一樣
刪除目錄下所有文件:?rsync -r --delete /null/ /opt/? ? ? #讓后面opt和前面null目錄內(nèi)容保持一致
查看屬性:rsync /etc/hosts
2)遠(yuǎn)程Shell模式
rsync命令參數(shù):
-v, --verbose? 顯示輸出過程
-z, --compress 壓縮
-a, --archive? 多參數(shù)集合(-rtopgDl)
-r, --recursive 遞歸
-t, --times? ? 保持修改時(shí)間屬性
-o, --owner? ? 保持屬主不變
-p, --perms? ? 保持權(quán)限不變
-g, --group? ? 保持用戶組不變
-l, --links? ? 保持拷貝軟連接
-q, --quiet? ? 安靜的拷貝
--bwlimit=KBPS 限制I/O帶寬蜘澜,KBytes per second施流。
--delete? ? ? 刪除
--exclude? ? ? 排除
--exclude-from 從文件中排除
企業(yè)常用參數(shù)組合:-avz或者-vzrtopg
pull,拉取數(shù)據(jù):rsync ? ? [OPTION...] [USER@]HOST:SRC... ? ? ? ? ? ? [DEST]
? ? ? ? ? ? ? ? ? ? ? ? rsync命令 參數(shù)選項(xiàng) [認(rèn)證用戶]@[主機(jī)地址]:[源路徑] 本地路徑
push,推送數(shù)據(jù):rsync? ? [OPTION...]? SRC... [USER@]HOST:[DEST]?
? ? ? ? ? ? ? ? ? ? ? ? ?rsync命令 參數(shù)選項(xiàng) 本地路徑 [認(rèn)證用戶]@[主機(jī)地址]:[目標(biāo)路徑]
推送例: rsync -avz /etc/hosts root@172.16.1.41:/opt/ #加密傳輸。
拉取例:rsync -avz root@172.16.1.41:/opt/hosts /opt
安裝后修改rsync的配置文件
配置配置文件/etc/rsyncd.conf
備份
cp /etc/rsyncd.conf{,.ori} ##備份rsync配置文件
cat>/etc/rsyncd.conf<<EOF
uid = rsync ##指定虛擬用戶rsync
gid = rsync## 指定虛擬用戶組rsync
fake super = yes ## 允許非root用戶
use chroot = no
max connections = 200 ##最大連接數(shù)200
timeout = 600 ##超時(shí)計(jì)時(shí)器600
pid file = /var/run/rsyncd.pid ##pid文件
lock file = /var/run/rsync.lock ##鎖文件
log file = /var/log/rsyncd.log ##日志文件
ignore errors ##忽略錯誤
read only = false ##只讀=否
list = false ##列表 =否
hosts allow = 172.16.1.0/24 ##主機(jī)允許
hosts deny = 0.0.0.0/32 ## 拒絕除172網(wǎng)段外的主機(jī)
auth users = rsync_backup ##授權(quán)用戶
secrets file = /etc/rsync.password ##密碼文件
[backup]## 模塊名
path = /backup/ ##路徑
EOF
man rsync 查命令的參數(shù)
man rsyncd.conf 查配置參數(shù)
創(chuàng)建用戶和備份目錄
創(chuàng)建rsync用戶:useradd rsync
創(chuàng)建backup目錄:mkdir -p /backup
?修改backup文件的屬主:chown -R rsync.rsync /backup/
啟動和檢查
rsync --daemon(c6及以前)
systemctl start rsyncd
systemctl enable rsyncd
檢查端口:?netstat -lntup|grep 873 #rsync的服務(wù)端口為873
?查看監(jiān)聽端口:lsof -i :873?
面試題:如何查看某端口對應(yīng)什么服務(wù)鄙信?答案就是上面兩個(gè)瞪醋。
4)配置密碼文件
服務(wù)端配置/etc/rsync.password? 在里面添加rsync_backup:密碼
客戶端配置/etc/rsync.password 添加 上面的密碼
并且將客戶端和服務(wù)端的·sync.password文件權(quán)限改為600
推送到指定模塊語法
rsync ? ? [OPTION...] [USER@]HOST::SRC... ? ? ? ? ? ? ? ?? [DEST]
rsync命令 參數(shù)選項(xiàng) [虛擬用戶]@[主機(jī)地址]::[模塊名] ? ?? 本地路徑
例: rsync -avz 要推送的文件全路徑 rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password ##指定密碼文件
push,推:從本地推到遠(yuǎn)端。
從遠(yuǎn)端模塊內(nèi)拉取 (一般都是用推送)? ? ??
rsync ? ? [OPTION...] ? [DEST]? ? ? ? [USER@]HOST::SRC... ? ? ? ? ? ? ? ?
rsync命令 參數(shù)選項(xiàng) ? 本地路徑? ? ? [虛擬用戶]@[主機(jī)地址]::[模塊名]? ? ]
例: rsync -avz? rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password? 要拉取到的目錄##指定密碼文件
改完配置装诡,要重啟服務(wù)