1.什么是備份?
就是給源文件 增加 一個 副本.
2.為什么要做備份?
(1)數(shù)據(jù)重要?
(2)防止誤操作
(3).能夠快速恢復
3.能不能不做備份?
可以, 不重要的數(shù)據(jù)可以不用考慮?
4.備份使用什么方式?
(1)全量備份,每次都是完全拷貝,效率低下
(2)增量備份,每次僅拷貝發(fā)生變化的文件,效率高
5.備份使用的工具有哪些?
本地備份: cp
遠程備份: scp rsync sz rz
6.rsync 遠程同步工具
實現(xiàn)主機與主機之間的同步, 實現(xiàn)增量的同步. 支持linux\windows\mac
PS: 如果將rsync當一個服務來使用,則需要知道 rsync 是個 c/s架構
7.rsync 推和拉 兩種方式
(1)推
(2)拉
(3)推和拉結合使用
8.rsync傳輸模式
(1)本地傳輸 ---> cp
Local: rsync [OPTION...] SRC... [DEST]
命令 選項 源 目標
[root@backup ~]# rsync -avz anaconda-ks.cfg /tmp/
(2).遠程傳輸 ---> scp
Access via remote shell:
上傳
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
命令 選項 源 系統(tǒng)用戶 主機IP 目標位置
- .我要將我本地的那個文件,推送至那臺服務器的那個目錄,使用的是什么用戶
[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 - 我要下載那個主機的那個目錄下的文件,使用的是什么系統(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:/optRsync借助SSH協(xié)議同步數(shù)據(jù)存在的缺陷 ( 使用對端主機的用戶名和密碼 系統(tǒng) )
①使用系統(tǒng)用戶(不安全)
②使用普通用戶(會導致權限不足情況)
①rsync -avz /etc/ root@172.16.1.31:/opt ---> 172.168.1.31
②.路徑問題
③普通用戶權限
(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 ~]# vi /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)境:
①創(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)
② 虛擬用戶 /etc/rsync.passwd username:password
[root@backup ~]# echo "rsync_backup:123456" > /etc/rsync.passwd
[root@backup ~]# chmod 600 /etc/rsync.passwd
③創(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
9.客戶端每次都需要使用密碼?
(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
10.-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ù)保持一致
11. --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
12.--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
13.--exclude (排除 --> 使用過程中的需求) 這個參數(shù) --exclude-from ?
[root@nfs ~]# rsync -avzP --exclude-from=pc.txt rsync://192.168.0.128/yum ./
[root@nfs ~]# vi 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
14.使用rsync同步學校內網(wǎng)yum源?
mysql/
nginx/
php/