1.什麼是備份,爲何要備份?shell
就是給源文件增長一個副本ubuntu
數據重要,防止誤操做,可以快速恢復windows
2.備份使用的方式安全
全量備份:每次都是徹底拷貝,效率低下服務器
增量備份:僅拷貝發生變化的,效率高架構
3.備份使用的工具tcp
本地備份:cp工具
遠程備份:scpui
rsync遞歸
sz
rz
4.rsync 遠程同步工具
實現主機與主機之間的同步,實現增量同步。例:Linux\windows\mac
若是將rsync當一個服務來使用,則須要知道rsync是個c/s架構
5.rsync傳輸模式
(1)本地傳輸
Local: rsync [OPTION...] SRC... [ DEST]
命令 選項 源 目標
rsync -avz anaconda-ks.cfg /tmp/
(2)遠程傳輸
上傳ush: rsync [OPTION...] SRC... [USER@]HOST:DEST
命令 選項 源 系統用戶 主機IP 目標位置
例:1.我要將我本地的那個文件,推送至那臺服務器的那個目錄,使用的是什麼用戶
[root@backup ~]# rsync -avz ./backup_file root@172.16.1.31:/opt/
root@172.16.1.31's password:
下載Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
命令 選項 系統用戶 主機IP
命令 選項 系統用戶 主機IP
2.我要下載那個主機的那個目錄下的文件,使用的是什麼系統用戶. 而後下載到我本地的那個位置
[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/的區別
#推送/etc/目錄下的全部文件
#推送/etc目錄以及目錄下的全部文件
Rsync藉助SSH協議同步數據存在的缺陷
1.使用系統用戶(不安全)
2.使用普通用戶權限不足
(3)守護進程:一直在後臺持續運行
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
1.安裝
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.據配置建立一些初識環境:
3.1建立rsync用戶,rsync程序須要rsync這個用戶來運行
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虛擬用戶
[root@backup ~]# echo "rsync_backup:123456" > /etc/rsync.passwd
[root@backup ~]# chmod 600 /etc/rsync.passwd
3.3建立一個/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 #詳細模式輸出, 打印速率, 文件數量等
-z #傳輸時進行壓縮以提升效率
-r #遞歸傳輸目錄及子目錄,即目錄下得全部目錄都一樣傳輸。
-t #保持文件時間信息
-o #保持文件屬主信息
-p #保持文件權限
-g #保持文件屬組信息
-l #保留軟鏈接
-D #保持設備文件信息
-P #顯示同步的過程及傳輸時的進度等信息
-L #保留軟鏈接指向的目標文件
-e #使用的信道協議,指定替代rsh的shell程序
--exclude=PATTERN #指定排除不須要傳輸的文件模式
--exclude-from=file #文件名所在的目錄文件
--bwlimit=100 #限速傳輸
--delete #讓目標目錄和源目錄數據保持一致
9. --delete 這個參數 (讓目標目錄和源目錄數據保持一致) 危險? #推: 源有什麼,目標就有什麼 [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 限速, 這個參數? 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 這個參數 --exclude-from ? [root@nfs ~]# rsync -avzP --exclude-from=pc.txt rsync://192.168.0.128/yum ./ [root@nfs ~]# cat pc.txt