1、rsync基本介紹
- rsync是一款開源的備份工具捞稿,可以在不同主機之間進行同步,可實現(xiàn)全量備份和增量備份,非常適合架構集中式備份或異地備份等應用
- 如果將rsync當一個服務來使用,則需要知道 rsync 是個 c/s架構
2弧轧、備份方式有:全量備份 增量備份
- 全量備份:將客戶端所有的數(shù)據(jù)內容全部備份至服務端(效率低下,占用空間)
- 增量備份:將客戶端的文件增量備份至服務端(提高備份效率碗殷,節(jié)省空間精绎,適合異地備份)
3、rsync數(shù)據(jù)同步模式
1锌妻、推:所有主機推送本地數(shù)據(jù)至rsync備份服務器代乃,會導致數(shù)據(jù)同步緩慢(時候少量數(shù)據(jù)備份)
2、拉:rsync備份服務端拉取所有主機上的數(shù)據(jù)仿粹,會導致備份服務器開銷大
4搁吓、rsync傳輸模式
1、本地傳輸方式吭历;單個主機本地之間的數(shù)據(jù)傳輸(類似于cp)
#本地拷貝數(shù)據(jù)
[root@backup ~]# rsync -avz /etc/passwd /tmp/
2堕仔、遠程傳輸方式:通過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ù)存在的缺陷 ( 使用對端主機的用戶名和密碼 系統(tǒng) )
1.使用系統(tǒng)用戶(不安全)
2.使用普通用戶(會導致權限不足情況)
3排嫌、守護進程模式 -----> 一直在后臺持續(xù)運行
#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)建一個 /backup目錄、
[root@backup ~]# mkdir /backup
[root@backup ~]# chown -R rsync.rsync /backup/
#6银伟、啟動
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
#7你虹、檢測
[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.設定變量 RSYNC_PASSWORD (后面寫腳本的時候)
[root@nfs ~]# export RSYNC_PASSWORD=123456
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt
2.提前準備一個文件 (只有密碼的文件), 然后使用 --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