1.什么是備份?
就是給源文件 增加 一個 副本.
U盤
D --> E
2.為什么要做備份?
1.數(shù)據(jù)重要?
2.防止誤操作
3.能夠快速恢復
3.能不能不做備份?
可以, 不重要的數(shù)據(jù)可以不用考慮?
4.備份使用什么方式?
全量備份,每次都是完全拷貝,效率低下
增量備份,每次僅拷貝發(fā)生變化的文件,效率高
5.備份使用的工具有哪些?
本地備份: cp
遠程備份: scp rsync sz rz
6.rsync 遠程同步工具
實現(xiàn)主機與主機之間的同步, 實現(xiàn)增量的同步. linux\windows\mac
PS: 如果將rsync當一個服務來使用,則需要知道 rsync 是個 c/s架構
7.rsync 推和拉 兩種方式
推
拉
推和拉結合使用
8.rsync傳輸模式
1.本地傳輸 ---> cp
2.遠程傳輸 ---> scp
3.守護進程 --->
#等價于cp命令
Local: rsync [OPTION...] SRC... [DEST]
命令 選項 源 目標
[root@backup ~]# rsync -avz anaconda-ks.cfg /tmp/
遠程傳輸
Access via remote shell:
上傳 Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
命令 選項 源 系統(tǒng)用戶 主機IP 目標位置
1.我要將我本地的那個文件,推送至那臺服務器的那個目錄,使用的是什么用戶
[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]
命令 選項 系統(tǒng)用戶 主機IP
2.我要下載那個主機的那個目錄下的文件,使用的是什么系統(tǒng)用戶. 然后下載到我本地的那個位置
[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ù)存在的缺陷 ( 使用對端主機的用戶名和密碼 系統(tǒng) )
1.使用系統(tǒng)用戶(不安全)
2.使用普通用戶(會導致權限不足情況)
問題:
1.rsync -avz /etc/ root@172.16.1.31:/opt ---> 172.168.1.31
2.路徑問題
3.普通用戶權限
守護進程模式--->一直在后臺持續(xù)的運行
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.配置 ( 改變程序運行軌跡 )
[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)建一些初識環(huán)境:
3.1創(chuàng)建rsync用戶 rsync程序需要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)
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)建一個/backup目錄
[root@backup ~]# mkdir /backup
[root@backup ~]# chown -R rsync.rsync /backup/
4.啟動
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
5.檢測
[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.設定變量 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
8.-avz 這些選項 怎么理解?
-a #歸檔模式傳輸, 等于-tropgDl
-v #詳細模式輸出, 打印速率, 文件數(shù)量等
-z #傳輸時進行壓縮以提高效率
-r #遞歸傳輸目錄及子目錄,即目錄下得所有目錄都同樣傳輸。
-t #保持文件時間信息
-o #保持文件屬主信息
-p #保持文件權限
-g #保持文件屬組信息
-l #保留軟連接
-D #保持設備文件信息
-P #顯示同步的過程及傳輸時的進度等信息
-L #保留軟連接指向的目標文件
-e #使用的信道協(xié)議,指定替代rsh的shell程序
--exclude=PATTERN #指定排除不需要傳輸?shù)奈募J? --exclude-from=file #文件名所在的目錄文件
--bwlimit=100 #限速傳輸
--delete #讓目標目錄和源目錄數(shù)據(jù)保持一致
9. --delete 這個參數(shù) (讓目標目錄和源目錄數(shù)據(jù)保持一致) 危險?
#推: 源有什么,目標就有什么
[root@nfs ~]# rsync -avz /root/ rsync_backup@172.16.1.41::backup --delete
#拉: 目標主機有什么, 本地就有什么
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup ./ --delete
10.--bwlimit 限速, 這個參數(shù)? 1000兆 125MB/s
虛擬機最高的峰值 25MB/s 5MB/s ---> 取決于實際的情況
單位=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 這個參數(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
各種源使用說明.txt
12.使用rsync同步學校內網yum源?
mysql/
nginx/
php/