Rsync服務(wù) yum -y install rsync
1抢蚀、什么是Rsync医舆?
全稱 Remote synchronization rsync
開源炕柔、高速脑蠕、數(shù)據(jù)復(fù)制(拷貝)工具
2购撼、Rsync的作用
工作中需要數(shù)據(jù)備份。不同機器不同機房之間的數(shù)據(jù)備份谴仙。
都可以用Rsync完成迂求。
3、Rsync功能特性
? ? 1.支持拷貝普通文件與特殊文件晃跺,如鏈接文件揩局,設(shè)備文件等。
2.支持排除指定文件或目錄同步的功能掀虎,相當(dāng)于打包命令tar的排除功能凌盯。
3.可以做到保持源文件或目錄權(quán)限、時間烹玉、軟硬鏈接驰怎、屬主、組等所有屬性不變
4.可實現(xiàn)增量復(fù)制二打,即只復(fù)制發(fā)生變化的數(shù)據(jù)县忌,數(shù)據(jù)傳輸效率高
5.可以使用rcp,rsh,ssh等方式來配合隧道加密傳輸文件(rsync本身不對數(shù)據(jù)加密)
6.可以使用socket(進(jìn)程方式)傳輸文件和數(shù)據(jù)(C/S)
7.支持匿名或認(rèn)證(無需系統(tǒng)用戶)進(jìn)程模式傳輸症杏,安全的進(jìn)行數(shù)據(jù)備份及鏡像装获。
增量復(fù)制 :只復(fù)制發(fā)生變化的數(shù)據(jù)。
全量復(fù)制 :全部復(fù)制
4.Rsync軟件復(fù)制原理介紹厉颤。
quick check算法穴豫,只對改變部分復(fù)制,根據(jù)大小屬性變化逼友。
2.x比對差異后復(fù)制精肃,3.x一邊比對一邊復(fù)制。
5.Rsync三種工作模式介紹
5.1本地(local)
rsync是一個命令
命令操作:rsync命令
? ? ? ? 1.把數(shù)據(jù)從一個地方復(fù)制到另一個地方翁逞,相當(dāng)于cp肋杖。
保持屬性? ? rsync -zrtopg /1 /2
-r 讓/b和/null保持一致。
ls -lhi
? ? ? ? ? ? 2.通過加參數(shù)實現(xiàn)刪除挖函,相當(dāng)于rm状植。
rsync --delete /null? /1
3.查看屬性信息功能,相當(dāng)于ls怨喘。
rsync 1
5.2遠(yuǎn)程shell模式
借助類似ssh隧道傳輸數(shù)據(jù)津畸,適合不同的機器之間的傳輸。
pull,拉:向里必怜。從遠(yuǎn)端拉取到本地肉拓。
rsync命令 參數(shù)選項 [認(rèn)證用戶]@[主機地址]:[源地址]? ? 本地路徑
rsync -avz -e "ssh -p 22" root@172.16.1.41:/root/2? ? ? /root
push,推:向外。從本地推去到遠(yuǎn)端梳庆。
rsync命令 參數(shù)選項? 目的路徑? [認(rèn)證用戶]@[主機地址]:[源地址]? ?
? ? ? ? ? ? rsync -avz -e "ssh -p 22" /root/ root@172.16.1.41:/root/2
rsync*****
null和null/ 區(qū)別? null是目錄和目錄下的內(nèi)容
null/只是目錄下的內(nèi)容 不含本身暖途。
5.3rsync 守護(hù)進(jìn)程模式
首先要搭建rsync服務(wù)端(要有守護(hù)進(jìn)程),然后才能在客戶端實現(xiàn)推拉數(shù)據(jù)膏执。
工作中的重要模式*****
rsync服務(wù)模式:開啟后臺進(jìn)程驻售, 接受別人訪問。
6.rsync命令參數(shù)
-v? 顯示輸出過程
-z? 壓縮
-a? -rgDl top
-r? 遞歸
-t? 保持修改時間屬性
-o? 保持屬主不變
-p? 保持權(quán)限不變
-g? 保持用戶組不變
-l? 保持拷貝軟鏈接
-q? 安靜的拷貝
-e? 使用的傳輸協(xié)議
-D? 保持設(shè)備文件信息
--delete? 刪除
--bwlimit=KBPS 限制I/O帶寬更米,KBytes per second
--exclude 排除
? ? --exclude-from 從文件中排除
企業(yè)中常用參數(shù)組合:-avz或者-vzrtopg
8.rsync守護(hù)進(jìn)程模式應(yīng)用實踐
8.1安裝 yum -y install rsync
8.2配置配置文件/etc/rsyncd.conf
cp /etc/rsyncd.conf{,.ori}
cat >/etc/rsyncd.conf<<EOF
#rsync_config_______________start
#created by oldboy
#site: http://www.oldboyedu.com
uid = rsync? ? ? ? ? ? ? ? ? ? ? ? ? ==》》管理備份目錄的用戶
gid = rsync? ? ? ? ? ? ? ? ? ? ? ? ? ==》》管理備份目錄的用戶組
use chroot = no? ? ? ? ? ? ? ? ? ? ? ==》》安全功能欺栗,數(shù)據(jù)是否鎖定到備份目錄
max connections = 200? ? ? ? ? ? ? ? ==》》同時多少客戶端訪問。
timeout = 600? ? ? ? ? ? ? ? ? ? ? ? ==》》超時時間
fake super = yes? ? ? ? ? ? ? ? ? ? ==》》不用root用戶也可以存儲文件的完整屬性征峦。
pid file = /var/run/rsyncd.pid? ? ? ==》》進(jìn)程號所在文件
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? ? ? ? ? ==》》哪些主機可以訪問
hosts deny = 0.0.0.0/32? ? ? ? ? ? ? ==》》哪些主機不可以訪問? 二選一迟几。
auth users = rsync_backup? ? ? ? ? ? ==》》遠(yuǎn)程虛擬連接用戶
secrets file = /etc/rsync.password? ==》》存放密碼的文件? 格式? 用戶:密碼? 權(quán)限600
[backup]? ? ? ? ? ? ? ? ? ? ? ? ? ? ==》》[模塊名]遠(yuǎn)程訪問使用模塊名訪問
comment = welcome to oldboyedu backup! 》》說明注釋
path = /backup/? ? ? ? ? ? ? ? ? ? ? ==》》服務(wù)端用戶備份的目錄,用戶和組栏笆,rsync.rsync
EOF
[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown -R rsync.rsync /backup/? -R 修改其及其下的子文件类腮。
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 6 Apr 15 12:12 /backup/
8.3啟動和檢查
systemctl start? rsyncd? 啟動服務(wù)
systemctl stop? ? rsyncd? 停止服務(wù)
systemctl enable? rsyncd? 開啟開機自啟動服務(wù)
systemctl disable rsyncd? 關(guān)閉開機自啟動服務(wù)
systemctl? restart rsyncd? 重啟服務(wù)
systemctl status? rsyncd? 查看服務(wù)狀態(tài)
? ? ? ? ps -ef|grep sync|grep -v grep #檢查進(jìn)程
netstat -lntup|grep 873檢查端口
lsof -i :873? ? ? 列出873端口網(wǎng)絡(luò)連接
? ? -i :rsync? ? 查看網(wǎng)絡(luò)連接
? ? -p pid? ? ? 進(jìn)程打開狀態(tài)
8.4配置密碼文件
echo "rsync_backup:oldboy">>/etc/rsync.password
chmod 600 /etc/rsync.password
1.配置/etc/rsyncd.conf
2.創(chuàng)建用戶
3.創(chuàng)建備份目錄
3.配置密碼文件 /etc/rsync.password
Rsync服務(wù)端配置完成。
(2)客戶端配置
方法1:認(rèn)證密碼文件
[root@nfs01 ~]# echo "oldboy" > /etc/rsync.password
[root@nfs01 ~]# chmod 600 /etc/rsync.password
[root@nfs01 ~]# cat /etc/rsync.password
oldboy
[root@nfs01 ~]# ls -l /etc/rsync.password
-rw------- 1 root root 7 4月? 15 11:55 /etc/rsync.password
方法2:配置環(huán)境
[root@nfs01 ~]# echo ' export RSYNC_PASSWORD=oldboy' >>/etc/bashrc
[root@nfs01 ~]# tail -1 /etc/bashrc
export RSYNC_PASSWORD=oldboy
[root@nfs01 ~]# 斷開重連竖伯,? . source
[root@nfs01 ~]# echo $RSYNC_PASSWORD
oldboy
Rsync客戶端配置完成存哲。
(3)守護(hù)進(jìn)程模式因宇,客戶端rsync的命令語法
配置服務(wù)器端守護(hù)進(jìn)程七婴,實現(xiàn)數(shù)據(jù)傳輸:
1祟偷、服務(wù)器端守護(hù)進(jìn)程? 2、客戶端執(zhí)行命令
拉門打厘、推門修肠、思考:
pull,拉:向里。從遠(yuǎn)端拉取到本地户盯。? ? ? ?
語法1:? ? ? ? ? ? Rsync_backup? ? ? ? ? ? backup
rsync命令 參數(shù)選項 [虛擬用戶]@[主機地址]::[模塊名]? ? ? ? ? 本地路徑
語法2:
rsync命令 參數(shù)選項 rsync://[虛擬用戶]@[主機地址]/[模塊名]? ? 本地路徑
push,推:向外嵌施。從本地推去到遠(yuǎn)端。
語法1
rsync命令 參數(shù)選項? 本地路徑? [虛擬用戶]@[主機地址]::[模塊名]? ?
rsync -avz /etc rsync_backup@172.16.1.41::backup
--password-file=/etc/rsync.password
? ? ? ? ? ? 語法2
? ? ? ? ? ? rsync命令 參數(shù)選項? 本地路徑? rsycn://[虛擬用戶]@[主機地址]/[模塊名]
(4)測試成果莽鸭。
[root@nfs01 ~]# rsync -avz /etc/hosts? rsync_backup@172.16.1.41::backup
sending incremental file list
hosts
sent 223 bytes? received 43 bytes? 532.00 bytes/sec
total size is 332? speedup is 1.25
man rsync? ? 查命令的參數(shù)
man rsync.conf查配置參數(shù)
tar zcfP /var/spool/cron/root? /etc/rc.local /server/scripts
/var/html/www? /app/logs? ? ? /?
總結(jié)
1.安裝 yum -y install rsync? 開啟服務(wù)等
服務(wù)端
2.配置文件/etc/rsyncd.conf
path = /backup/? ? ? ? ? ? ? ? ? ? ? ==》》服務(wù)端用戶備份的目錄吗伤,用戶和組,rsync.rsync
secrets file = /etc/rsync.password? ==》》存放密碼的文件? 格式? 用戶:密碼? 權(quán)限600
[backup]? ? ? ? ? ? ? ? ? ? ? ? ? ? ==》》[模塊名]遠(yuǎn)程訪問使用模塊名訪問
等等
3.創(chuàng)建rsync用戶硫眨,創(chuàng)建/backup(備份用的目錄)足淆,修改其屬主屬組為rsync
4.配置密碼文件
echo "rsync_backup:oldboy">>/etc/rsync.password
chmod 600 /etc/rsync.password
客戶端
1.修改密碼環(huán)境變量。
echo ' export RSYNC_PASSWORD=oldboy' >>/etc/bashrc
. /etc/bashrc? 重置環(huán)境
echo $RSYNC_PASSWORD? 檢查
oldboy
成果:
rsync -az /backup/? rsync_backup@172.16.1.41::backup? 把本身/backup的內(nèi)容推到rsync服務(wù)器的backup里礁阁。
rsync -az? rsync_backup@172.16.1.41::backup /backup? ? 把服務(wù)器的內(nèi)容拉到自己的/backup里巧号。