一.什么是備份?
就是給源文件 增加 一個(gè) 副本.
U盤
D? --> E
二.為什么要做備份?
1.數(shù)據(jù)重要?
2.防止誤操作
3.能夠快速恢復(fù)
三.能不能不做備份?
可以, 不重要的數(shù)據(jù)可以不用考慮?
四.備份使用什么方式?
全量備份,每次都是完全拷貝,效率低下
增量備份,每次僅拷貝發(fā)生變化的文件,效率高
五.備份使用的工具有哪些?
本地備份:? cp
遠(yuǎn)程備份:? scp? rsync? ? sz rz
六.rsync? 遠(yuǎn)程同步工具
實(shí)現(xiàn)主機(jī)與主機(jī)之間的同步, 實(shí)現(xiàn)增量的同步.? ? linux\windows\mac
PS: 如果將rsync當(dāng)一個(gè)服務(wù)來(lái)使用,則需要知道 rsync? 是個(gè)? c/s架構(gòu)
七.rsync 推和拉 兩種方式
推
拉
推和拉結(jié)合使用
八.rsync傳輸模式
1.本地傳輸? ? --->? cp
2.遠(yuǎn)程傳輸? ? --->? scp
3.守護(hù)進(jìn)程? ? --->?
#等價(jià)于cp命令
? ? ? ? Local:? rsync [OPTION...] SRC... [DEST]
命令? 選項(xiàng)? ? ? 源? ? ? 目標(biāo)
[root@backup ~]# rsync -avz anaconda-ks.cfg? /tmp/
遠(yuǎn)程傳輸
? ? ? Access via remote shell:
? ? ? ? 上傳? ? Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
命令? 選項(xiàng)? ? ? 源? 系統(tǒng)用戶 主機(jī)IP 目標(biāo)位置
1.我要將我本地的那個(gè)文件,推送至那臺(tái)服務(wù)器的那個(gè)目錄,使用的是什么用戶
[root@backup ~]# rsync -avz ./backup_file root@172.16.1.31:/opt/
root@172.16.1.31's password: #輸入31的root密碼
下載? ? Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
? 命令? ? 選項(xiàng)? ? 系統(tǒng)用戶 主機(jī)IP?
2.我要下載那個(gè)主機(jī)的那個(gè)目錄下的文件,使用的是什么系統(tǒng)用戶.? 然后下載到我本地的那個(gè)位置
[root@backup ~]# rsync -avz root@172.16.1.31:/opt/backup_file? ./file.txt
root@172.16.1.31's password:? ? #輸入31的root密碼
目錄:? /etc/? /etc? ? 區(qū)別?
#推送/etc目錄下的所有文件
[root@backup ~]# rsync -avz /etc/ root@172.16.1.31:/opt
#推送/etc目錄以及目錄下的所有文件
[root@backup ~]# rsync -avz /etc root@172.16.1.31:/opt
Rsync借助SSH協(xié)議同步數(shù)據(jù)存在的缺陷? ? (? 使用對(duì)端主機(jī)的用戶名和密碼? 系統(tǒng)? )
1.使用系統(tǒng)用戶(不安全)
2.使用普通用戶(會(huì)導(dǎo)致權(quán)限不足情況)
問(wèn)題:
1.rsync -avz /etc/ root@172.16.1.31:/opt? ? ? ? ? ---> 172.168.1.31
2.路徑問(wèn)題
3.普通用戶權(quán)限
守護(hù)進(jìn)程模式--->一直在后臺(tái)持續(xù)的運(yùn)行
? ? ? Access via rsync daemon:
? ? ? ? Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
? ? ? ? Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
1.安裝
[root@backup ~]# yum install rsync -y
2.配置? ( 改變程序運(yùn)行軌跡? )
[root@backup ~]# cat /etc/rsyncd.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)建一些初識(shí)環(huán)境:
3.1創(chuàng)建rsync用戶? ? rsync程序需要rsync這個(gè)用戶來(lái)運(yùn)行
[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)
3.2 虛擬用戶? ? /etc/rsync.passwd? ? ? username:password
[root@backup ~]# echo "rsync_backup:123456" > /etc/rsync.passwd
[root@backup ~]# chmod 600 /etc/rsync.passwd
3.3 創(chuàng)建一個(gè)/backup目錄
[root@backup ~]# mkdir /backup
[root@backup ~]# chown -R rsync.rsync /backup/
4.啟動(dòng)
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
5.檢測(cè)
[root@backup ~]# netstat -lntp | grep 873
tcp? ? ? ? 0? ? ? 0 0.0.0.0:873? ? ? 0.0.0.0:*? ? ? ? LISTEN? ? 8616/rsync? ? ? ? ?
6.使用
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
[root@nfs ~]# rsync -avz ./anaconda-ks.cfg? rsync_backup@172.16.1.41::backup
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt
7.客戶端每次都需要使用密碼?
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
8.-avz 這些選項(xiàng)? 怎么理解?
-a? ? ? ? ? #歸檔模式傳輸, 等于-tropgDl
-v? ? ? ? ? #詳細(xì)模式輸出, 打印速率, 文件數(shù)量等
-z? ? ? ? ? #傳輸時(shí)進(jìn)行壓縮以提高效率
-r? ? ? ? ? #遞歸傳輸目錄及子目錄拂檩,即目錄下得所有目錄都同樣傳輸梯码。
-t? ? ? ? ? #保持文件時(shí)間信息
-o? ? ? ? ? #保持文件屬主信息
-p? ? ? ? ? #保持文件權(quán)限
-g? ? ? ? ? #保持文件屬組信息
-l? ? ? ? ? #保留軟連接
-D? ? ? ? ? #保持設(shè)備文件信息
-P? ? ? ? ? #顯示同步的過(guò)程及傳輸時(shí)的進(jìn)度等信息
-L? ? ? ? ? #保留軟連接指向的目標(biāo)文件
-e? ? ? ? ? #使用的信道協(xié)議,指定替代rsh的shell程序
--exclude=PATTERN? #指定排除不需要傳輸?shù)奈募J?/p>
--exclude-from=file #文件名所在的目錄文件
--bwlimit=100? ? ? #限速傳輸
--delete? ? ? ? ? ? #讓目標(biāo)目錄和源目錄數(shù)據(jù)保持一致
9. --delete? 這個(gè)參數(shù) (讓目標(biāo)目錄和源目錄數(shù)據(jù)保持一致)? 危險(xiǎn)?
#推:? 源有什么,目標(biāo)就有什么
[root@nfs ~]# rsync -avz /root/ rsync_backup@172.16.1.41::backup --delete
#拉: 目標(biāo)主機(jī)有什么, 本地就有什么
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup ./ --delete
10.--bwlimit 限速, 這個(gè)參數(shù)?? 1000兆? ? 125MB/s? ?
虛擬機(jī)最高的峰值? 25MB/s? ? 5MB/s? ? ---> 取決于實(shí)際的情況
單位=KB
[root@nfs ~]# rsync? -avzP --bwlimit=5120? ubuntu-18.04.1-desktop-amd64.iso? rsync_backup@172.16.1.41::backup
sending incremental file list
ubuntu-18.04.1-desktop-amd64.iso? 159,186,944? 8%? ? 5.12MB/s? ? 0:05:41
11.--exclude? 這個(gè)參數(shù)? --exclude-from ?
[root@nfs ~]# rsync? -avzP --exclude-from=pc.txt? rsync://192.168.0.128/yum? ./
[root@nfs ~]# cat pc.txt
centos/
code/
docker-ce/
epel/
git/
java/
jenkins/
kubernetes/
mongodb/
mysql/
node/
non-supported/
php/
python/
redis/
sonarqube/
windowstools/
zabbix/
CentOS-7-x86_64-DVD-1810.iso
CentOS-Base.repo
docker-ce.repo
epel.repo
nginx.repo
php.repo
rsync_exclude.txt
zabbix.repo
各種源使用說(shuō)明.txt
12.使用rsync同步學(xué)校內(nèi)網(wǎng)yum源?
mysql/
nginx/
php/
------------------------------------------------------------------------------------
總結(jié)
------------------------------------------------------------------------------------
1.備份基本知識(shí)
1.什么是備份?
2.為什么要做備份?
3.能不能不做備份?
4.備份使用什么方式?
5.備份使用的工具有哪些?
2.rsync遠(yuǎn)程同步? -->備份
1.rsync 推 和 拉 兩種方式 以及? 使用場(chǎng)景
2.rsync 傳輸模式? (三種)
本地傳輸? --->? 沒(méi)意義? cp
遠(yuǎn)程傳輸? --->? 需要借助ssh協(xié)議? (使用系統(tǒng)用戶)
守護(hù)進(jìn)程? --->? 虛擬用戶
3.rsync守護(hù)進(jìn)程如何搭建
1.安裝
2.配置
3.啟動(dòng)
4.測(cè)試? ? ( 服務(wù)端? 是否安裝成功 )
5.使用? ? ( 客戶端? 能否正常使用 )
4.rsync 選項(xiàng):
-avz
-P
--delete
--bwlimit? ( 實(shí)際生產(chǎn)故障 )
--exclude? ? 排除? --> 使用過(guò)程中的需求