一、概述
rsync是linux 下一個(gè)遠(yuǎn)程數(shù)據(jù)同步工具
他可通過(guò)LAN/WAN快速同步多臺(tái)主機(jī)間的文件和目錄,并適當(dāng)利用rsync 算法減少數(shù)據(jù)的傳輸
會(huì)對(duì)比兩個(gè)文件的不同部分,傳輸差異部分,因此傳輸速度相當(dāng)快
rsync可拷貝、顯示目錄屬性,以及拷貝文件,并選擇性的壓縮及遞歸拷貝
二、特性
快速
第一次傳輸全部,下一次傳輸差異
rsync在傳輸過(guò)程中可以實(shí)行壓縮和解壓縮,使用更少的帶寬
安全
可以使用scp、ssh等方式傳輸
直接通過(guò)socket連接
支持匿名傳輸、方便進(jìn)行網(wǎng)站鏡像
三、應(yīng)用場(chǎng)景
增量同步
備份遷移
四、數(shù)據(jù)的同步方式
數(shù)據(jù)備份:拉?。ㄏ螺d)? ?pull
數(shù)據(jù)恢復(fù):推送(上傳)? ?push
五、rsync傳輸模式
本地傳輸??本地同步數(shù)據(jù),類似于cp
遠(yuǎn)程傳輸??遠(yuǎn)程同步數(shù)據(jù),類似于scp
守護(hù)進(jìn)程??通過(guò)模塊化的方式實(shí)現(xiàn)批量傳輸
六、rsync應(yīng)用
安裝
yum -y install rsync
如果已經(jīng)安裝,直接啟動(dòng)
systemctl start rsyncd
監(jiān)聽(tīng)端口號(hào)
TCP/873
七、rsync命令
格式
rsync [選項(xiàng)] 原始位置 目標(biāo)位置
作為遠(yuǎn)程命令
拉取??rsync [OPTION...] [USER@]HOST:SRC... [DEST]
推送??rsync [OPTION...] SRC... [USER@]HOST:DEST
作為rsync服務(wù)
拉取??rsync [OPTION...] [USER@]HOST::SRC... [DEST]
? ? ? ? ?rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
推送??rsync [OPTION...] SRC... [USER@]HOST::DEST
? ? ? ? ??rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
選項(xiàng)
-a??歸檔模式,遞歸并保留對(duì)象屬性,等同于-rlptgoD
-v??-verbose ? ? ? ? ? 顯示同步過(guò)程的詳細(xì)信息
-z??在傳輸文件時(shí)進(jìn)行壓縮
舉例
本地??rsync ?-avz ?/abc ?/opt
? ? ? ? ? rsync ?-avz ?abc/ ?/opt
遠(yuǎn)程? ?rsync -avz root@192.168.2.7:/etc/hostname ?/root/
? ? ? ? ? ?rsync -avz ?/root/hostname root@192.168.2.7:/etc/hostname?
配置文件
/etc/rsyncd.conf
全局配置
address | 獨(dú)立運(yùn)行時(shí),用于指定服務(wù)器運(yùn)行的 IP 地址,默認(rèn)本地所有IP |
port | 指定 rsync 守護(hù)進(jìn)程監(jiān)聽(tīng)的端口號(hào),默認(rèn) 873 |
pid file | rsync 的守護(hù)進(jìn)程將其 PID 寫入指定的文件 |
log file | 指定 rsync 守護(hù)進(jìn)程的日志文件,而不將日志發(fā)送給 syslog |
syslog facility | 指定 rsync 發(fā)送日志消息給 syslog 時(shí)的消息級(jí)別 |
socket options | 指定自定義 TCP 選項(xiàng) |
lockfile | 指定rsync的鎖文件存放路徑 |
timeout | 超時(shí)時(shí)間 |
模塊配置
path | 指定當(dāng)前模塊的同步路徑,該參數(shù)是必須指定的 |
comment | 給模塊指定一個(gè)描述 |
use chroot | 在服務(wù)運(yùn)行時(shí)要不要把他鎖定在家目錄,默認(rèn)為 true |
uid和gid? | 指定rsync運(yùn)行用戶和用戶組,默認(rèn)nobody |
max connections | 最大并發(fā)連接數(shù),0為不限制 |
lock file | 指定支持 max connections的鎖文件。默認(rèn)/var/run/rsyncd.lock |
list | 指定列出模塊列表時(shí),該模塊是否被列出。默認(rèn)為 true |
read only | 只讀選擇,默認(rèn)true |
write only | 只寫選擇,不讓客戶端從服務(wù)器上下載文件。默認(rèn)false |
ignore errors | 忽略IO錯(cuò)誤,默認(rèn)true |
ignore nonreadable | 指定 rysnc 服務(wù)器完全忽略那些用戶沒(méi)有訪問(wèn)權(quán)限的文件。 |
dont compress | 用來(lái)指定那些在傳輸之前不進(jìn)行壓縮處理的文件。 |
hosts allow | 指定哪些主機(jī)客戶允許連接該模塊。默認(rèn)值為 * |
hosts deny | 指定哪些主機(jī)客戶不允許連接該模塊 |
auth users | 指定用于上傳的用戶名 |
secrets files | 指定密碼文件 |
守護(hù)進(jìn)程傳輸
配置
uid=rsync | |
gid=rsync | |
fake super=yes? | # 用于允許非root用戶,在備份目錄創(chuàng)建文件 |
list=false | # 默認(rèn)true,允許查看本機(jī)有哪些模塊 |
auth users=rsync_backup | # 用于指定認(rèn)證用戶 |
secrets file=/etc/rsync.passwd | # 指定認(rèn)證用戶密碼 |
read only = false | |
max connections=4 | # 允許最大連接數(shù) |
read only=false | ?默認(rèn)yes,模塊目錄只讀權(quán)限 |
ignore errors | # 屏蔽錯(cuò)誤報(bào)錯(cuò) |
timeout=900 | # 指定rsync傳輸超時(shí)時(shí)間 |
[backup] | |
path=/backup |
創(chuàng)建用戶??
useradd rsync -s /sbin/nologin -M
創(chuàng)建認(rèn)證用戶的密碼
echo 'rsync_backup:123456' >/etc/rsync.passwd
chmod 600 /etc/rsync.passwd
準(zhǔn)備模塊目錄
mkdir /backup
chown rsync.rsync /backup
重啟服務(wù)
systemctl restart rsyncd
客戶端遠(yuǎn)程傳輸
rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup
通過(guò)密碼文件實(shí)現(xiàn)免密傳輸
vim /etc/rsync.passwd
chmod ? 600 /etc/rsync.passwd
rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup --password-file /etc/rsync.passwd
實(shí)驗(yàn)練習(xí)
1.使用認(rèn)證用戶為jx_名字縮寫,認(rèn)證密碼為班級(jí)編號(hào)
2.模塊名稱為juexing
3.自行修改文件內(nèi)容,在服務(wù)器上實(shí)現(xiàn)同步
vim /etc/rsyncd.conf? ?寫入紅框內(nèi)容
useradd rsync -s /sbin/nologin -M? 創(chuàng)建rsync用戶并給到命令權(quán)限
echo 'jx_lwj:2305' >/etc/rsync.passwd? 給認(rèn)證用戶設(shè)置密碼
chmod 600 /etc/rsync.passwd? 并設(shè)置權(quán)限
mkdir /juexing? 準(zhǔn)備模塊目錄
chown rsync.rsync /juexing? 目錄屬組屬主要是給到sbin命令權(quán)限的用戶與組
systemctl restart rsyncd? ? 重啟服務(wù)
打開(kāi)客戶端
rsync -avz /etc/hosts jx_lwj@192.168.1.1::juexing
測(cè)試成功后設(shè)置通過(guò)密碼文件實(shí)現(xiàn)免密傳輸
vim /etc/rsync.passwd? 寫入剛才設(shè)置的密碼2305
chmod 600 /etc/rsync.passwd? ?設(shè)置密碼文件權(quán)限
rsync -avz /etc/hosts jx_lwj@192.168.1.1::juexing --password-file /etc/rsync.passwd? 自動(dòng)讀取密碼文件在/etc/rsync.passwd
rsync+inotfy實(shí)時(shí)同步
服務(wù)器端
安裝網(wǎng)站服務(wù),啟動(dòng),但是不寫首頁(yè)文件
修改主配置文件
vim /etc/rsync.config
uid = root
gid = root
[wwwroot]
?? ?path = /var/www/html
?? ?comment = backup export area
?? ?read only = false
?? ?hosts allow = 192.168.1.0/24
開(kāi)發(fā)客戶端
安裝inotify工具
inotify-tools
tar xf ?inotify-tools-3.14.tar.gz
./configure && make && make install
?
配置內(nèi)核參數(shù)
vim /etc/sysctl.conf
fs.inotify.max_user_instances = 1024
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_watches=1048576
sysctl -P
inotifywait -mrq -e modify,create,move,delete /var/www/html
這條命令輸入后? 可以實(shí)時(shí)觀察寫入、刪除等
編寫腳本
vim /opt/inotify_rsync.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete /var/www/html/192.168.1.1::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
$RSYNC_CMD
done
?
賦予執(zhí)行權(quán)限
chmod +x inotify_rsync.sh
?
寫入文件(開(kāi)機(jī)自啟)
vim /etc/rc.local文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-598320.html
/root/inotify_rsync.sh文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-598320.html
到了這里,關(guān)于系統(tǒng)學(xué)習(xí)Linux-Rsync遠(yuǎn)程數(shù)據(jù)同步服務(wù)(三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!