1、rsync基本介紹
- rsync是一款開源的備份工具,可以在不同主機(jī)之間進(jìn)行同步,可實(shí)現(xiàn)全量備份和增量備份,非常適合架構(gòu)集中式備份或異地備份等應(yīng)用
- 如果將rsync當(dāng)一個(gè)服務(wù)來使用,則需要知道 rsync 是個(gè) c/s架構(gòu)
2、備份方式有:全量備份 增量備份
- 全量備份:將客戶端所有的數(shù)據(jù)內(nèi)容全部備份至服務(wù)端(效率低下,占用空間)
- 增量備份:將客戶端的文件增量備份至服務(wù)端(提高備份效率,節(jié)省空間,適合異地備份)
3、rsync數(shù)據(jù)同步模式
1、推:所有主機(jī)推送本地?cái)?shù)據(jù)至rsync備份服務(wù)器,會(huì)導(dǎo)致數(shù)據(jù)同步緩慢(時(shí)候少量數(shù)據(jù)備份)
2、拉:rsync備份服務(wù)端拉取所有主機(jī)上的數(shù)據(jù),會(huì)導(dǎo)致備份服務(wù)器開銷大
4、rsync傳輸模式
1、本地傳輸方式;單個(gè)主機(jī)本地之間的數(shù)據(jù)傳輸(類似于cp)
#本地拷貝數(shù)據(jù)
[root@backup ~]# rsync -avz /etc/passwd /tmp/
2、遠(yuǎn)程傳輸方式:通過ssh傳輸數(shù)據(jù)。(類似于scp)
#1、推數(shù)據(jù)
[root@backup ~]# rsync -avz ./backup_file root@172.16.1.31:/opt/
root@172.16.1.31's password: #輸入31的root密碼
#2、拉數(shù)據(jù)
[root@backup ~]# rsync -avz root@172.16.1.31:/opt/backup_file ./file.txt
root@172.16.1.31's password:
#輸入31的root密碼
Rsync借助SSH協(xié)議同步數(shù)據(jù)存在的缺陷 ( 使用對(duì)端主機(jī)的用戶名和密碼 系統(tǒng) )
1.使用系統(tǒng)用戶(不安全)
2.使用普通用戶(會(huì)導(dǎo)致權(quán)限不足情況)
3、守護(hù)進(jìn)程模式 -----> 一直在后臺(tái)持續(xù)運(yùn)行
#1、安裝
[root@backup ~]# yum install rsync -y
#2、配置
[root@backup ~]# vim /etc/rsync.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
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、根據(jù)配置創(chuàng)建初始環(huán)境
創(chuàng)建rsync用戶
[root@backup ~]# groupadd rsync
[root@backup ~]# useradd -M -s /sbin/nologin rsync -g rsync
[root@backup ~]# id rsync
uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)
#4、創(chuàng)建虛擬用戶
[root@backup ~]# echo "rsync_backup:123456" > /etc/rsync.passwd
[root@backup ~]# chmod 600 /etc/rsync.passwd
#5、創(chuàng)建一個(gè) /backup目錄、
[root@backup ~]# mkdir /backup
[root@backup ~]# chown -R rsync.rsync /backup/
#6、啟動(dòng)
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
#7、檢測(cè)
[root@backup ~]# netstat -lntp | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 8616/rsync
#8、使用
[root@nfs ~]# rsync -avz ./anaconda-ks.cfg rsync_backup@172.16.1.41::backup
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt
##客戶端每次都需要使用密碼
#1.設(shè)定變量 RSYNC_PASSWORD (后面寫腳本的時(shí)候)
[root@nfs ~]# export RSYNC_PASSWORD=123456
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt
2.提前準(zhǔn)備一個(gè)文件 (只有密碼的文件), 然后使用 --password-file 指定位置
[root@nfs ~]# echo "123456" > /etc/rsync.pass
[root@nfs ~]# chmod 600 /etc/rsync.pass
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt --password-file=/etc/rsync.pass