RSYNC

Rysnc特性和優勢
能夠鏡像保存整個目錄樹和文件系統。
能夠很容易作到保持原來文件的權限、時間、軟硬連接等等。
無須特殊權限便可安裝。
快速:第一次同步時 rsync 會複製所有內容,但在下一次只傳輸修改過的文件。(增量)
壓縮傳輸:rsync 在傳輸數據的過程當中能夠實行壓縮及解壓縮操做,所以可使用更少的帶寬。
安全:可使用scp、ssh等方式來傳輸文件,固然也能夠經過直接的socket鏈接。
支持匿名傳輸,以方便進行網站鏡象。
選擇性保持:符號鏈接,硬連接,文件屬性,權限,時間等安全

完整備份又分爲差別備份,增量備份
完整備份:每次備份都是從備份源將全部的文件或目錄備份到目的地
差量備份:備份上次徹底備份之後有變化的數據(他針對的上次的徹底備份,他備份過程當中不清除存檔屬性)
增量備份:備份上次備份之後有變化的數據.(他才無論是那種類型的備份,有變化的數據就備份,他會清除存檔屬性)*
服務端和客戶端
安裝部署。RSYNC依然採用CS架構,默認端口873服務器

服務器端和測試段都要安裝
安裝 yum -y install rsync

RSYNC命令經常使用的參數架構

-a 權限保存模式,至關於 -lgrtopD存檔 遞歸保持屬性    
-r 複製全部資料,遞歸處理
-p 保留檔案權限,文件的屬性
-t 保持時間
-g 保持屬組
-o 保持屬主
-D 保持device資訊
-l 複製全部連接 包括連接文件
-z 壓縮
-H 保留硬連接
-A 保持ACL配合 --perms
-P 表示傳輸進度
--version
-v 複雜輸出信息
-u 更新
--port 定義端口
通常用的組合都是azv

RSNYC的常見兩種方式app

1.客戶端將數據推送到服務端,在規定的時間,經過規定的參數,將規定的數據,推送到指定的機器
 客戶端推送的語法
         1.rsync 參數 本地路徑  認證用戶@主機地址::(服務的配置文件中定義的模塊名) 記住這個便可
         例如:rsync -azv /data/ back_user@IP::/data --password-file=/etc/rsync.password.
#      要注意的是 data/意思是 只拷貝data下的目錄,而data 則包括data目錄
         2.rsync 參數 本地路徑  rsync://認證用戶@主機地址/模塊名 ##不經常使用
2.服務端將數據拉取到服務器端,  在規定的時間,經過規定的參數,把規定的數據,拉到本服務器
    客戶端拉取的語法
         1.rsync 參數 認證用戶@主機地址::(服務的配置文件中定義的模塊名) 本地路徑 記住這個便可
         2.rsync 參數  rsync://認證用戶@主機地址/模塊名 本地路徑

服務端部署ssh

vi /etc/rsyncd.conf
直接在文件最底部加入
uid = root  #定義進程的uid gid
gid = root
use chroot = yes  #打開監牢模式,若是該服務被黑了,則沒法在其餘文件內寫入 
address = IP #監聽的IP
max connection = 5  #最大鏈接數 自定義
pid file = /var/run/rsyncd.pid  #進程pid 日誌 和 最大鏈接數的鎖文件
log file = /var/log/rsyncd.log
lock file =/var/log/rsyncd.lock
fake super = yes                                   #後期若是進程不使用root用戶,須要整個參數,才能複製權限和時間
read only = false     #讀寫模式
hosts allow = 192.168.1.0/24   #容許訪問的網段
auth users =user  #容許訪問的用戶
secrets file = /etc/rsync.password # 用戶的密碼文件存放位置
[date]  #模塊,用於訪問時寫的模塊
path = /date/  #路徑
comment = welcome to   #提示信息

在服務端和客戶端分別建立密碼文件socket

在服務端建立密碼文件
vi /etc/rsync.password
back_user:123qwe                                    #前面爲用戶名,後面爲密碼
chmod 600 /etc/rsync.password #該文件必須爲600權限
在客戶端建立密碼文件
vi /etc/rsync.password
123qwe                                    #只寫密碼
chmod 600 /etc/rsync.password #該文件必須爲600權限

測試ide

通常採用客戶端推送方式
rsync -avz /data back_user@服務端IP::data --passowrd-file=/etc/rsync.password
客戶端的目錄 也就是 data是能夠更換的,但必須存在。 測試成功後 進入下一步

要實現自動化備份,方式不少,此處採用sersync的方式(部署在客戶端)wordpress

連接:https://pan.baidu.com/s/1_qzHjts6pmp_SfD2Qn5r-g  
提取碼:8y0e
因爲該軟件可能須要特殊方式上網,故此提供一個包,不大
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86/ sersync
sersync]# ls
confxml.xml   配置文件  sersync2 啓動腳本
vi confxml.xml
修改24--28行
<sersync>
       <localpath watch="/date/">    #本地同步目錄
           <remote ip="IP" name="test"/>   #rsync模塊名稱和服務端IP
修改31--34行,認證部分【rsync密碼認證】
<rsync>
           <commonParams params="-artuz"/>
           <auth start="true" users="user" passwordfile="/etc/rsync.passwd"/>  #打開自動推送,指定用戶和密碼
           <userDefinedPort start="false" port="874"/><!-- port=874 -->
           <timeout start="false" time="100"/><!-- timeout=100 -->
           <ssh start="false"/>
該配置文件拼湊出一個命令 ; rsync -artuz -R --delete ./ back_user@ip::data --password-file=/etc/rsync.password

啓動服務測試

啓動服務
/app/sersync/sersync2  -d -r -o /app/service/sersync/confxml.xml      #-d 後臺運行 -r理解爲遞歸 -o 指定配置文件
-d 啓用守護進程即後臺運行
-r 在監控前將監控目錄與遠程主機推送一遍
-n 指定守護線程的數量 默認爲10 
-o 指定配置文件
-m 單獨啓用其餘模塊 refreshCDN 開啓刷新CDN模塊 socket http

當服務啓動成功後,會首先自動執行一條命令,該命令是由sersync拼湊出來的一條由客戶端推送到服務器的命令
隨即測試便可

RSYNC
測試服務是否正常網站

在指定的本地目錄(文中我所指定的是,wordpress博客項目默認存儲博客的地點)隨意添加或更改刪除一個文件,若服務端對應目錄發生變化則爲成功
相關文章
相關標籤/搜索