scp
一、scp 簡介
scp 是 secure copy 的縮寫,是 基於 ssh 協議進行安全的遠程文件拷貝命令。
scp 想要免密進行復制,需要發送密鑰給相應的節點。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加強版。
二、scp 命令語法
scp [-options] [[user@]host1:]source_file [[user@]host2:]target_file2
三、參數說明:
1、常用參數
-r: 遞歸復制整個目錄。
-P port:注意是大寫的P, port是指定數據傳輸用到的端口號。
-v:詳細方式顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。
2、其他參數
-1: 強制scp命令使用協議ssh1
-2: 強制scp命令使用協議ssh2
-4: 強制scp命令只使用IPv4尋址
-6: 強制scp命令只使用IPv6尋址
-B: 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C: 允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能)
-p:保留源文件的修改時間,訪問時間和訪問權限。
-q:不顯示傳輸進度條。
-c cipher:以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。
-F ssh_config:指定一個替代的ssh配置文件,此參數直接傳遞給ssh。
-i identity_file:從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。
-l limit: 限定用戶所能使用的帶寬,以Kbit/s為單位。
-o ssh_option: 如果習慣於使用ssh_config(5)中的參數傳遞方式。
-S program: 指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。
實例1
scp 源文件 目標
## 推文件
[root@web02 ~]# scp /root/1.txt root@10.0.0.41:/root/
這里注意寫上文件的絕對路徑
## 推目錄
推目錄要加上-r選項
[root@web02 ~]# scp -r /root/123 root@10.0.0.41:/tmp
root@10.0.0.41's password:
456
## 拉目錄
把10.0.0.41機器上面的/etc目錄拷貝到本地/tmp下
[root@web02 ~]# scp -r root@10.0.0.41:/etc /tmp
## 拉文件
把10.0.0.41機器上面的/tmp/yum.log文件拷貝到web02機器下的/root目錄下
[root@web02 ~]# scp root@10.0.0.41:/tmp/yum.log /root/
root@10.0.0.41's password:
yum.log 100% 0 0.0KB/s 00:00
[root@web02 ~]# ll /root/
total 8
drwxr-xr-x 2 root root 17 May 7 00:13 123
-rw-------. 1 root root 1444 Apr 30 20:50 anaconda-ks.cfg
-rw-r--r--. 1 root root 287 May 3 20:07 host_ip.sh
-rw------- 1 root root 0 May 7 00:24 yum.log
rsync
rsync是同步工具,把一台機器上的文件傳輸到另一台。
備份類型
- 支持全量備份
- 支持增量備份
- 不支持差異備份
全量備份介紹
全量備份
完全備份(full backup)」,每個檔案都會被寫進備份檔去。如上所述,如果兩個時間點備份之間,數據沒有任何更動,那么所有備份數據都是一樣的。
這問題出自備份系統不會檢查自上次備份后,檔案有沒有被更動過;它只是機械性地將每個檔案讀出、寫入,不管檔案有沒有被修改過。備份全部選中的文件及文件夾,並不依賴文件的存盤屬性來確定備份哪些文件。
(在備份過程中,任何現有的標記都被清除,每個文件都被標記為已備份,換言之,清除存盤屬性)。
這是我們不會一味采取完全備份的原因 — 每個檔案都會被寫到備份裝置上。這表示即使所有檔案都沒有變動,還是會占據許多存儲空間。如果每天變動的檔案只有 10 MB,每晚卻要花費 100 GB 的存儲空間做備份,這絕對不是個好方法;這也就是推出「增量備份(incremental backups) 的主要原因。
增量備份介紹
跟完全備份不同,增量備份在做數據備份前會先判斷,檔案的最后修改時間是否比上次備份的時間來得晚。如果不是的話,那表示自上次備份后,這檔案並沒有被更動過,所以這次不需要備份。換句話說,如果修改日期「的確」比上次更動的日期來得晚,那么檔案就被更動過,需要備份。
增量備份常常跟完全備份合用(例如每個星期做完全備份,每天做增量備份)差異備份是針對完全備份:備份上一次的完全備份后發生變化的所有文件。
(差異備份過程中,只備份有標記的那些選中的文件和文件夾。它不清除標記,既:備份后不標記為已備份文件,換言之,不清除存盤屬性)。
使用增量備份最大的好處在於備份速度:它的速度比完整備份快上許多,同時由於增量備份在做備份前會自動判斷備份時間點及文件是否已作改動,所以相對於完全備份其對於節省存儲空間也大有益處。增量備份的不足之處在於數據還原的時間較長,效率相對較低,例如,如果您要還原一個備份檔案,您必須把所有增量備份的磁盤都找一遍,直到找到為止,如果您要復原整個檔案系統,那就得先復原最近一次的完整備份,然后復原一個又一個的增量備份。
要避免復原一個又一個的遞增數據,提升數據的復原的效率,把做法稍微改變一下,就變成了「差異備份(differential backup)」。
差異備份介紹
差異備份
差異備份與增量備份一樣,都只備份更動過的數據。但前者的備份是「累積(cumulative)」的—— 一個檔案只要自上次完整備份后,曾被更新過,那么接下來每次做差異備份時,這個檔案都會被備份(當然,直到下一次完整備份為止)。
這表示差異備份中的檔案,都是自上次完全備份之后,曾被改變的檔案。如果要復原整個系統,那么您只要先復原完全備份,再復原最后一次的差異備份即可。增量備份是針對於上一次備份(無論是哪種備份):備份上一次備份后,所有發生變化的文件。
(增量備份過程中,只備份有標記的選中的文件和文件夾,它清除標記,既:備份后標記文件,換言之,清除存盤屬性。)
跟增量備份所使用的策略一樣,您平時只要定期做一次完全備份,再定時做差異備份即可。
所以,差異備份的大小,會隨着時間過去而不斷增加(假設在完全備份間,每天修改的檔案都不一樣)。以備份空間與速度來說,差異備份介於遞增備份與完全備份之間;但不管是復原一個檔案或是整個系統,速度通常比完全備份、增量備份快(因為要搜尋 / 復原的磁盤數目比較少)。
基於這些特點,差異備份是值得考慮的方案,增量備份與差異備份技術在部分中高端的網絡附加存儲設備如IBM、HP、及自由遁等品牌的部分產品的附帶軟件中已內置。
rsync的傳輸模式
## 本地傳輸相當於cp命令
傳輸目錄加-a選項,把/root目錄下的123目錄傳輸到/tmp目錄下
[root@web02 ~]# rsync -a /root/123 /tmp
把/tmp/yum.log文件傳輸到/root目錄下
[root@web02 ~]# rsync /tmp/yum.log /root
## 遠程傳輸相當於scp命令
把本地的/root/123目錄傳輸到10.0.0.41機器的/tmp目錄下
[root@web02 ~]# rsync -a /root/123 root@10.0.0.41:/tmp/
root@10.0.0.41's password: 這里是輸入密碼的地方
看一下有沒有傳輸過去
[root@backup tmp]# ll
total 4
drwxr-xr-x 2 root root 17 May 7 00:13 123
把10.0.0.41機器上面的/tmp/yum.log文件拉到本機的/root目錄下
[root@backup ~]# rsync root@10.0.0.41:/tmp/yum.log /root
The authenticity of host '10.0.0.41 (10.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:0LmJJQAFxWMarCtpHr+bkYdqoSpp3j7O+TDbK1chOqI.
ECDSA key fingerprint is MD5:a1:a9:30:13:5f:44:ad:da:fb:a1:65:34:b5:dd:a3:d3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.41' (ECDSA) to the list of known hosts.
root@10.0.0.41's password:
[root@backup ~]# ll
total 8
-rw-------. 1 root root 1444 Apr 30 20:50 anaconda-ks.cfg
-rw-r--r--. 1 root root 287 May 3 20:07 host_ip.sh
-rw------- 1 root root 0 May 7 00:56 yum.log
## 關於權限不足的報錯
rsync: mkstemp "/root/.host_ip.sh.nrcrr0" failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1179) [sender=3.1.2]
守護進程模式(服務)
## 語法:
## Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
# 拉:rsync [-avz] zls_bak@10.0.0.41::[模塊] 源文件 目標
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST](忘記它)
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
# 推:rsync [-avz] 源文件 zls_bak@10.0.0.41::[模塊] 目標
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST(忘記它)
注意:推和拉的區別,就是源文件的位置在哪里,拉:源文件在后面。
## rsync 重要選項
-a #歸檔模式傳輸, 等於-tropgDl
-v #詳細模式輸出, 打印速率, 文件數量等
-z #傳輸時進行壓縮以提高效率
--delete #讓目標目錄和源目錄數據保持一致
--password-file=xxx #使用密碼文件
------------------- -a 包含 ------------------
-r #遞歸傳輸目錄及子目錄,即目錄下得所有目錄都同樣傳輸。
-t #保持文件時間信息
-o #保持文件屬主信息
-p #保持文件權限
-g #保持文件屬組信息
-l #保留軟連接
-D #保持設備文件信息
----------------------------------------------
-L #保留軟連接指向的目標文件
-e #使用的信道協議,指定替代rsh的shell程序
--exclude=PATTERN #指定排除不需要傳輸的文件模式
--exclude-from=file #文件名所在的目錄文件
環境准備
| 主機名 | 外網ip | 內網ip | 角色 |
|---|---|---|---|
| backup | 10.0.0.41 | 172.16.1.41 | 服務端 |
| web01 | 10.0.0.7 | 172.16.1.7 | 客戶端 |
| web02 | 10.0.0.8 | 172.16.1.8 | 客戶端 |
安裝服務端
服務端介紹
服務端(Server)是為客戶端服務的,服務的內容諸如向客戶端提供資源,保存客戶端數據。一般大型的服務端都是在linux環境下搭建。服務端不具備運算能力,因為服務端同時會與多個客戶端建立連接,一旦服務端進行運算的話,就會占用大量的資源,從而影響到其他客戶端的通信。
客戶端
就比如QQ我們下載安裝的那個就是客戶端
我們發送的內容是先從我們這邊發到服務器那邊,然后再發到對方那邊的
瀏覽器服務器模式又叫BS模式,直接用瀏覽器如IE等就可以直接連接到服務器;
客戶端服務器模式又叫CS模式,客戶端必專須先安裝客戶端軟屬件才可以連接到服務器.
在服務端安裝rsync
## 安裝rsync
yun install -y rsync
## 安裝完成修改配置文件,一般配置文件是以.conf 或 .cnf 或 .cfg結尾
[root@backup ~]# vim /etc/rsyncd.conf
## 指定進程啟動uid
uid = rsync
## 指定進程啟動gid
gid = rsync
## rsync服務的端口
port = 873
## 無需讓rsync以root身份運行,允許接收文件的完整屬性
fake super = yes
## 禁錮指定的目錄
use chroot = no
## 最大連接數
max connections = 200
## 超時時間
timeout = 600
## 忽略錯誤
ignore errors
## 不只讀(可讀可寫)
read only = false
## 不允許別人查看模塊名
list = false
## 傳輸文件的用戶
auth users = wzh_bak
## 傳輸文件的用戶和密碼文件
secrets file = /etc/rsync.passwd
## 日志文件
log file = /var/log/rsyncd.log
#####################################
## 模塊名
[wzh]
## 注釋,沒啥用
comment = 123
## 備份的目錄
path = /backup
# 3.根據配置文件內容,創建出來需要的用戶,目錄,密碼文件...
# 3.1 創建用戶
[root@backup ~]# useradd rsync -s /sbin/nologin -M
# 3.2 創建備份目錄
[root@backup ~]# mkdir /backup
# 3.3 修改屬組和屬主
[root@backup ~]# chown -R rsync.rsync /backup/
# 3.4 創建用戶名和密碼存放的文件
[root@backup ~]# vim /etc/rsync.passwd
wzh_bak:123
[root@backup ~]# echo 'wzh_bak:123' > /etc/rsync.passwd
# 3.5 修改密碼文件的權限為600
[root@backup ~]# chmod 600 /etc/rsync.passwd
# 4.啟動服務並且加入開機自啟
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
# 5.檢測端口
[root@backup ~]# netstat -lntup|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 18373/rsync
tcp6 0 0 :::873 :::* LISTEN 18373/rsync
# 6.檢測進程
[root@backup ~]# ps -ef|grep [r]sync
root 18373 1 0 20:48 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
安裝客戶端
## rsync客戶端不用修改配置文件
# 1.安裝rsync
[root@web01 ~]# yum install -y rsync
# 2.客戶端需要創建一個密碼文件
[root@web01 ~]# vim /etc/rsync.pass
123
# 3.修改密碼文件的權限為600
[root@web01 ~]# chmod 600 /etc/rsync.pass
# 4.從客戶端往服務端推送重要備份文件
rsync [-avz] 源文件 wzh_bak@10.0.0.41::[模塊]
rsync -avz /etc/shadow wzh_bak@10.0.0.41::zls --password-file=/etc/rsync.pass
以上內容是今天學習總結,下面內容是作業操作過程
要求:web01,web02 作為客戶端安裝rsync,backup作為服務端安裝rsync
安裝完成后寫腳本,每天晚上23:00備份,給etc目錄打包,推送到backup服務器的/backup目錄下
web01文件名:2020-05-06_web01_etc.tar.gz
web02文件名: 2020-05-06_web02_etc.tar.gz
首先使用yum install -y rsync 分別在這三台機器上安裝服務,好像有一個辦法能同時同步多台機器做同一種工作
但是......我忘了,尷尬而不失禮貌的微笑......
因為我之前已經安裝過了,所以再安裝會有提示就像下面這樣
##第一步安裝
[root@web02 ~]# yum install -y rsync
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Package rsync-3.1.2-10.el7.x86_64 already installed and latest version
Nothing to do
## 這不是報錯,是因為已經安裝過了
## 第二步編輯一個密碼文件
[root@web02 ~]# vim /etc/rsync.pass
[root@web02 ~]# cat /etc/rsync.pass
123
## 第三步給上面的密碼文件授權600
[root@web02 ~]# chmod 600 /etc/rsync.pass
## 第四步先試着把web02上面的密碼文件/etc/passwd傳輸到backup機器上
[root@web02 ~]# rsync -avz /etc/passwd wzh_bak@10.0.0.41::wzh --password-file=/etc/rsync.pass
sending incremental file list
passwd
sent 510 bytes received 43 bytes 1,106.00 bytes/sec
total size is 986 speedup is 1.78
[root@web02 ~]# echo $?
0
## 已經成功了,看一下backup機器上面的/backup目錄有沒有文件
[root@backup backup]# ll
total 4
-rw-r--r-- 1 rsync rsync 986 May 3 20:01 passwd
web01和上面的這個操作步驟一樣
現在我們就來寫個腳本加入定時任務
## 腳本內容如下
[root@web02 ~]# vim db.sh
[root@web02 ~]# cat db.sh
#!/bin/bash
dir=$(date +%Y-%m-%d)_$(hostname)
/bin/tar zcPf "$dir"_etc.tar.gz /etc
/bin/rsync -avz "$dir"_etc.tar.gz wzh_bak@10.0.0.41::wzh --password-file=/etc/rsync.pass
## 加入定時任務,要求是每天23:00備份,為了保證不出差錯先設置下每分鍾備份一次
[root@web02 ~]# crontab -l
#每天23:00備份etc目錄到backup服務器的/backup目錄下
*/1 * * * * /bin/sh /root/db.sh
## 現在backup服務器的backup目錄是空的
[root@backup backup]# ll
total 0
## 過了一會兒之后我們再看下backup目錄
[root@backup backup]# ll
total 9924
-rw-r--r-- 1 rsync rsync 10161898 May 7 2020 2020-05-07_web02_etc.tar.gz
##可以看到命令執行成功了,那這時候就可以改成每天23:00備份了
[root@web02 ~]# crontab -l
#每天23:00備份etc目錄到backup服務器的/backup目錄下
0 23 * * * /bin/sh /root/db.sh
ok,web01和上面操作步驟一樣
最后總結下backup服務器的安裝,因為比客戶端要多點東西
首先下載完rsync之后要修改配置文件,當然我是復制粘貼的,因為不會寫呀
我把我的配置文件拿出來說

上面就是我的配置文件,我改了傳輸文件的用戶和模塊名,最下面的path= /backup是備份文件的目錄
首先要先把這個目錄創建出來,使用命令mkdir /backup ,然后創建出rsync用戶使用命令useradd rsync -s /sbin/nologin -M ,完成后使用chown rsync.rsync /backup 給/backup目錄授權,然后編輯一個密碼文件
vim /etc/rsync.passwd 里面輸入用戶名字和密碼我的是wzh_bak:123 ,保存退出然后給這個密碼文件授權600
chmod 600 /etc/rsync.passwd完成后啟動rsync服務systemctl start rsyncd 再加入開機自啟systemctl enable rsyncd 完后后使用ss -an|grep 873或netstat -lntup|grep 873 檢查端口,因為rsync的默認端口是873再用ps -ef|grep [r]sync檢查有沒有rsync的進程,配置服務端的基本操作這樣就可以了
其他服務默認端口mySQL:3306 ssh:22 ftp:21
C/S 架構:Client/Server
B/SBrowser/Server
小提示:利用rsync還可以實現刪除文件和目錄的功能,這又相當於rm命令,一個rsync相當於scp、cp、rm,但是還優於他們的每一個命令。
定時任務腳本和截圖

linux9期架構day03
作業要求
Rsync備份案例
使用3台服務器主機名分別為web01、backup 、nfs主機信息見下表:
| 角色 | 外網IP | 內網IP | 主機名 |
|---|---|---|---|
| WEB | 10.0.0.7 | 172.16.1.7 | web01 |
| NFS | 10.0.0.31 | 172.16.1.31 | nfs01 |
| Rsync | 10.0.0.41 | 172.16.1.41 | backup |
客戶端需求
1.客戶端提前准備存放的備份的目錄,目錄規則如下:/backup/nfs_172.16.1.31_2018-09-02
2.客戶端在本地打包備份(系統配置文件、應用配置等)拷貝至/backup/nfs_172.16.1.31_2018-09-02
3.客戶端最后將備份的數據進行推送至備份服務器
4.客戶端每天凌晨1點定時執行該腳本
5.客戶端服務器本地保留最近7天的數據, 避免浪費磁盤空間
服務端需求
1.服務端部署rsync,用於接收客戶端推送過來的備份數據
2.服務端需要每天校驗客戶端推送過來的數據是否完整
3.服務端需要每天校驗的結果通知給管理員
4.服務端僅保留6個月的備份數據,其余的全部刪除
腳本解決
##客戶端需求
1.1首先在客戶端編輯一個備份的腳本
[root@nfs ~]# vim bf.sh

注意:編輯腳本的時候一定要現在命令行實現,成功之后再加入到腳本里面,寫一步實驗一步,及時找到錯誤並改正。
1.2每天凌晨一點把備份目錄傳輸到backup服務器

## 服務端需求
1.1:配置郵箱
下載mailx
[root@backup backup]# yum install -y mailx
下載完成修改配置文件並手機打開郵箱賬戶通過手機短信方式
獲取授權碼
#發件人
set from=714845658@qq.com
#郵件服務器
set smtp=smtp.qq.com
#發件人用戶名
set smtp-auth-user=714845658@qq.com
#發件人密碼(QQ郵箱不可以使用密碼,只能使用授權碼)
set smtp-auth-password=xxx
#登錄方式
set smtp-auth=login
#郵件服務器協議及端口
set smtp=smtps://smtp.qq.com:465
#忽略證書
set ssl-verify=ignore
#指定證書位置
set nss-config-dir=/root/.certs
##########下面是獲取證書############
第一步:mkdir -p /root/.certs
第二步:cd ./.certs/
第三步: echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
第四步:certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
第五步: certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
第六步: certutil -L -d /root/.certs
第七步:certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs -i ~/.certs/qq.crt
########獲取證書之后發測試郵件#########
echo wzh |mail -s '測試郵件' 714845658@qq.com

OK,測試成功
1.2:測試校驗結果,因為在客戶端的腳本里已經寫了校驗部分,所以傳輸過來的文件是有檢驗文件的

測試結果也是OK的,那這樣就可以把測試文件寫進腳本l,根據要求
需要保留6個月的備份數據,其余的刪除

1.3:測試腳本是否成功
命令行輸入sh md5.sh

1.4:最后添加到定時任務,因為客戶端是每天凌晨一點發送備份數據,那在服務端就把時間向后推遲五分鍾

首先要學會修改rsync 服務端配置文件
安裝rsync
yun install -y rsync
## 安裝完成修改配置文件,一般配置文件是以.conf 或 .cnf 或 .cfg結尾
[root@backup ~]# vim /etc/rsyncd.conf
## 指定進程啟動uid
uid = rsync
## 指定進程啟動gid
gid = rsync
## rsync服務的端口
port = 873
## 無需讓rsync以root身份運行,允許接收文件的完整屬性
fake super = yes
## 禁錮指定的目錄
use chroot = no
## 最大連接數
max connections = 200
## 超時時間
timeout = 600
## 忽略錯誤
ignore errors
## 不只讀(可讀可寫)
read only = false
## 不允許別人查看模塊名
list = false
## 傳輸文件的用戶
auth users = wzh_bak
## 傳輸文件的用戶和密碼文件
secrets file = /etc/rsync.passwd
## 日志文件
log file = /var/log/rsyncd.log
#####################################
## 模塊名
[wzh]
## 注釋,沒啥用
comment = 123
## 備份的目錄
path = /backup
# 3.根據配置文件內容,創建出來需要的用戶,目錄,密碼文件...
# 3.1 創建用戶
[root@backup ~]# useradd rsync -s /sbin/nologin -M
# 3.2 創建備份目錄
[root@backup ~]# mkdir /backup
# 3.3 修改屬組和屬主
[root@backup ~]# chown -R rsync.rsync /backup/
# 3.4 創建用戶名和密碼存放的文件
[root@backup ~]# vim /etc/rsync.passwd
wzh_bak:123
[root@backup ~]# echo 'wzh_bak:123' > /etc/rsync.passwd
# 3.5 修改密碼文件的權限為600
[root@backup ~]# chmod 600 /etc/rsync.passwd
# 4.啟動服務並且加入開機自啟
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
# 5.檢測端口
[root@backup ~]# netstat -lntup|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 18373/rsync
tcp6 0 0 :::873 :::* LISTEN 18373/rsync
# 6.檢測進程
[root@backup ~]# ps -ef|grep [r]sync
root 18373 1 0 20:48 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
知道修改客戶端的環境變量
export RSYNC_PASSWORD=123
沒修改之前是這樣傳輸的
[root@web01 ~]# rsync -avz /etc/passwd wzh_bak@10.0.0.41::wzh --password-file=/etc/rsync.pass
修改完之后是這樣傳輸的

3.從服務端向客戶端的/backup目錄拉文件

4.學會了md5sum校驗文件,首先創建了一個1.txt文件
然后把這個文件使用md5sum追加到一個md5.txt校驗文件里
md5sum -c md5.txt檢查文件,如果沒有改動那么結果就是OK
然后echo 123 >>1.txt 把123追加到1.txt文件里
再次檢查就會出現提示
1.txt:失敗
md5sum:警告:1計算的校驗和不匹配

5.用到了腳本
腳本開頭#!/bin/bash表示此腳本使用/bin/bash解釋執行
然后設置環境變量我理解是密碼的變量export RSYNC_PASSWORD=123
第三步根據需求自己設置普通變量
第四步做判斷使用if [ ! -d 目錄名 ] ;then
mkdir -p 目錄名
結尾用fi
[ ]里面的內容要和[ ]有空格,把then寫在第一行要加分號,結尾fi和if相對應,
簡單的判斷就是如果這個目錄不存在則用mkdir -p 創建
6.打包用到了tar命令,tar打包格式
tar zcf 包名.tat.gz 打包的目錄或文件
7.用到了find命令
find 查找 -type d 類型是目錄,文件用f -mtime -7 最近7天之內的文件
| 將查找到的結果交給后面命令執行 xargs 把前面找到的結果作為后面命令的參數
8.無差異同步這種做法很危險,可能造成數據丟失
所謂無差異同步就是客戶端和服務端實現同等數據共存,如果我的客戶端的目錄里有
很多文件,這時候我把服務端的目錄同步到我的客戶端目錄里,那么這些數據就會丟失,
我的客戶端目錄內容和服務端目錄里的內容一樣


我把backup服務器無差別同步到了我的web機器,這時候我里面的內容和backup一樣,我原來的1.txt文件就丟失了
9.限制I/o讀寫,這樣會讓同步速度變得很慢

卡住了,因為限制了I/O的讀寫速度
