舊,rsync

舊,html

rsync是一個開源的快速備份工具,能夠在不一樣主機之間鏡像同步整個目錄樹,支持增量備份,保持 連接權限,且採用優化的同步算法,傳輸前執行壓縮,所以很是適用於異地備份,鏡像服務器等應用linux

在遠程同步任務中,負責發起rsync同步操做的客戶機稱爲發起端,而負責響應來自客戶機的rsync同步操做的服務器稱爲同步源,在同步過程當中,同步源負責提供文檔的原始位置,發起端對該位置具備讀取權限,如圖算法

 

 配置rsync同步源(在同步源上配置,如圖服務器A)服務器

rsync做爲同步源時以守護進程運行,爲其餘客戶機提供備份源。配置rsync同步源須要創建配置文件/etc/rsyncd.conf,建立備份帳號,而後將rsync程序以‘--daemon’選項運行工具

vi /etc/rsyncd.conf優化

 _______________________________________________________________________________________________________________ui

uid=root #以哪一個用戶的身份來傳輸   
gid=root  #以哪一個組的身份來傳輸
use chroot = yes #禁錮在源目錄
address=192.168.0.10  #監聽地址
port=873        #監聽端口默認爲873,也能夠是別的端口
log file=/var/log/rsync.log  #指定日誌位置
pid file=/var/run/rsyncd.pid  #指定pid文件位置spa

以上部分爲全局配置部分,如下爲模塊內的設置日誌

 

[wwwroot]    #共享模塊名,自定義
path=/var/www/html   #源目錄的實際路徑
use chroot=true #是否限定在該目錄下,默認爲true,當有軟鏈接時,須要改成fasle,若是爲true就限定爲模塊默認目錄
max connections=4  # 指定最大能夠鏈接的客戶端數
read only=no #是否爲只讀,若是是yes的話,客服端推送給服務端的時候不成功,這時候要改爲no
list= no  #是否能夠列出模塊名    rsync --port 8730   172.16.37.139::  若是爲yes的話會列出服務端全部的模塊名字。  
comment = Document root of it小能手 #描述信息
dont compress = *.gz *.tgz #同步時不在壓縮的文件類型
auth users=test #指定受權帳戶
secrets file=/etc/rsyncd.passwd #存放帳號信息的數據文件,若是設定驗證用戶,這一項必須設置,設定密碼權限爲400.
hosts allow=192.168.0.101 #設置能夠容許訪問的主機,能夠是網段,多個Ip地址用空格隔開code

 ____________________________________________________________________________________________________________________

建立帳號數據文件/etc/rsyncd.passwd的內容格式爲:backuper:pwd123(username:password)
啓動服務的命令是:rsync --daemon 
默認去使用/etc/rsyncd.conf這個配置文件,也能夠指定配置文件 rsync --daemon --config=/etc/rsyncd2.conf,更改配置文件不用重啓服務,即時生效。 

 同步時能夠採用匿名的方式,只要將其中的auth user 和secrets file 配置記錄去掉就能夠了

備份用戶backuper須要對源目錄/var/www/html 有相應的讀取權限。實際上只要other組有讀取權限,則備份用戶backuper和運行用戶nobody也就有讀取權限了
ls -ld /var/www/html
 drwxr-xr-x. 2 root root 4096 5 月 2 2018 /var/www/html

 

rsync命令的基本用法(在發起端上執行rsync命令,如上圖服務器B)

rsync [選項]  原始位置 目標位置
  rsync 命令須要指定同步源服務器中的資源位置。rsybc同步源的資源位置表示方式爲  「username@主機地址::共享模塊名」  或者  "rsync://username@主機地址/共享模塊名"
    例如: rsync  -avz backuper@192.168.4.200::wwwroot /root    或者  rsync -avz rsync://backuper@192.168.4.200/wwwroot /root

經常使用選項如
  -r : 遞歸模式,包含目錄及子目錄中的全部文件|
  -l : 對於符號連接文件仍然複製爲符號連接文件
       -v : 顯示同步過程當中的詳細信息
  -a :歸檔模式,保留文件的權限,屬性等信息 等同於組合選項「-rlptgoD」
  -z : 在傳輸文件時進行壓縮
  -p :  保留文件的權限標記
  -t :  保留文件的時間標記
  -g :保留文件的屬組標記(僅超級用戶使用)
  -o : 保留文件的屬主標記(僅超級用戶使用)
  -H:保留硬連接文件
  -A : 保留ACL屬性信息
  -D :保留設備文件及其其餘特殊文件
  --delete: 刪除目標位置有而原始位置沒有的文件
  --checksum: 根據校驗和(而不是文件大小,修改時間)來決定是否跳過文件
  --password-file=密碼文件路徑和名 ,爲了在同步過程當中不用輸入密碼,須要建立一個密碼文件,保存備份用戶的密碼,在執行rsync同步時使用選擇‘「--password-file=」指定便可

 

 rsync+inotify 實時同步

inotify通知接口,用來監控文件系統的各類變化,如文件存取,刪除,移動,修改等。利用這一機制,能夠很是方便地實現文件異動告警,增量備份,並針對目錄或文件的變化及時做出響應
將rsync工具和inotify機制相結合,能夠實現觸發式備份(實時同步)--------只要原始位置的文檔發生變化,則當即啓動增量備份操做,不然處於靜態等待狀態。這樣就避免了按固定週期備份時存在的延遲性,週期過密等問題。

 

 由於inotify通知機制由linux內核提供,所以主要作本機監控,在觸發式備份中應用時更適合上行同步

配置

1.調整inotify內核參數
  在linux內核中,默認的inotify機制提供三個調控參數:max_queue_events,max_user_instances,max_user_watches,分別表示監控事件隊列(16384),最多監控實例數(128),每一個實例最多監控文件數(8192)

   cat /proc/sys/fs/inotify/max_queue_events

    16384

   cat /proc/sys/fs/inotify/max_user_instances

    128


   cat /proc/sys/fs/inotify/max_user_watches

    8192


   

 未完待續。。。。

 

 

 

 

常見錯誤

 

@ERROR: auth failed on module wwwroot               (wwwroot 是本身的模塊名)
rsync error: error startingclient-serverprotocol (code 5) at main.c(1503) [sender=3.0.6]

查看 服務端/etc/rsync.password(存放帳號密碼信息的文件) 配置文件是否有問題

好比:

多餘的空格 空行

錯誤緣由

1>    客戶端密碼文件的權限不是600

2>    服務端密碼文件不是600

3>    服務端密碼文件不存在(名字寫錯了/沒有建立/配置文件參數寫錯了)

4>    服務端密碼文件裏保存的用戶名和密碼不正確

相關文章
相關標籤/搜索