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拼湊出來的一條由客戶端推送到服務器的命令 隨即測試便可
測試服務是否正常網站
在指定的本地目錄(文中我所指定的是,wordpress博客項目默認存儲博客的地點)隨意添加或更改刪除一個文件,若服務端對應目錄發生變化則爲成功