Rsync 搭建遠程容災備份系統

rsync是什麼?

rsync是Linux/UNIX系統下的文件同步和數據傳輸工具,它採用了“rsync算法”使一個客戶機和遠程文件服務器之間的文件同步。可以將同一個服務器的數據從一個分區備份到另一個分區,也可以將本地系統的數據通過網絡傳輸方式備份到任何一個遠程主機上;rsync可以在中斷後恢復傳輸;rsync只傳輸源文件和目標文件之間不一致的部分;rsync可以執行完整備份或增量備份。

rsync的功能特性:

  • 可以鏡像保存整個目錄樹和文件系統;
  • 可以增量同步數據,文件傳輸效率高,因而同步時間很短;
  • 可以保持原文件的權限、時間等屬性;
  • 加密傳輸數據,保證了數據的安全性;
  • 可以使用rcp、ssh等方式來傳輸文件;
  • 支持匿名傳輸;

搭建遠程容災備份系統

需求描述: 要求對Web服務器網站數據每天凌晨1:00進行一次備份數據到遠程的容災服務器上,由於數據量很大,採用增量備份方式。

系統環境:

主機 操作系統 IP地址 備份目錄 軟件包
web服務器 CentOS 7.0 x86_64 192.168.100.27 /www rsync-3.1.3.tar.gz
容災服務器 CentOS 7.0 x86_64 192.168.100.28 /www rsync-3.1.3.tar.gz

關閉防火牆及Selinux

systemctl stop firewalld
setenforce 0

軟件包:rsync-3.1.3.tar.gz 密碼:iw95

一、Web服務器:

1.安裝rsync軟件包

#解壓
tar zxvf rsync-3.1.3.tar.gz -C /opt

#切換目錄
cd /opt/rsync-3.1.3

#配置
./configure

#編譯及安裝
make && make install

2.修改rsync配置文件:

vim /etc/rsyncd.conf

uid = nobody    #用戶ID
gid = nobody    #用戶組ID
use chroot = yes       #禁錮家目錄       
max connections = 10    #最大併發連接數,默認0(無限制)
strict modes=yes        #是否檢查口令文件的權限,yes時必須爲root用戶權限
pid file = /var/run/rsyncd.pid      #守護進程PID路徑
lock file=/var/run/rsync.lock       #指定支持max connections的鎖文件
log file=/var/run/rsyncd.log        #日誌輸出文件路徑

> [www]         #模塊名稱
    path = /www         #需備份的文件或目錄,必設項
    comment = ftp area          #描述文字
    ignore errors           #可以忽略一些無關的I/O錯誤
    read only=no            #no:客戶端可以上傳文件       yes:只讀
    write only=no           #no:客戶端可以下載文件       yes:不能下載
    hosts allow=*           #*:允許連接任何主機
    hosts deny=192.168.100.10       #禁止連接rsync服務器的IP
    list=false          #客戶端請求可以使用的模塊列表時,該模塊是否被列出
    uid=root            
    gid=root
    auth users=backup       #用戶名backup,與系統用戶沒有任何關係
    secrets file=/etc/server.pass       #只有定義了auth users項,該文件才起作用,默認沒有此文件,須手動創建(文件格式爲:"用戶名:密碼")

Rsync 搭建遠程容災備份系統

3.創建密碼文件(文件格式:user:pass)

vim /etc/server.pass

backup:www123

4.修改密碼文件權限

chmod 600 /etc/server.pass

5.創建rsync啓動腳本

vim /etc/init.d/rsyncd

#Description:
#!/bin/bash
#chkconfig: 2345 31 61                       # 設置chkconfig 級別
#description: start or stop rsync daemon     # 描述

. /etc/init.d/functions
pidfile=/var/run/rsyncd.pid
RETVAL=0
start_rsync(){
if [ -f $pidfile ];then                       # 判斷pid文件,存在就不再啓動
    echo "Rsync is already running"
else
    rsync --daemon
    action "Rsync starts successfully "  /bin/true
fi
}
stop_rsync(){
if [ -f $pidfile ];then
    kill -USR2 `cat $pidfile`
    rm -rf $pidfile                            # 停止服務,就刪除pid文件
    action "Rsync stops successfully" /bin/true
else
    action "Rsync is already stopped.Stop Failed" /bin/false
fi
}
case "$1" in
    start)
        start_rsync
        RETVAL=$?
        ;;
    stop)
        stop_rsync
        RETVAL=$?
        ;;
    restart)
        stop_rsync
        sleep 2
        start_rsync
        RETVAL=$?
        ;;
    *)
        echo "Usage:$0 start|stop|restart"
        exit 1
esac
exit $RETVAL

6.賦予執行權限

chmod +x /etc/init.d/rsyncd

7.添加到系統管理

chkconfig -add rsyncd

8.啓動rsyncd服務

service  rsyncd start

9.查看rsync進程

netstat -tunlp | grep rsync

Rsync 搭建遠程容災備份系統

二、容災服務器:

1.安裝rsync軟件包

#解壓
tar zxvf rsync-3.1.3.tar.gz -C /opt

#切換目錄
cd /opt/rsync-3.1.3

#配置
./configure

#編譯及安裝
make && make install

2.創建密碼文件

vim /etc/server.pass

www123 //同web服務器密碼一致

3.修改密碼文件權限

chmod 600 /etc/server.pass

4.創建rsync啓動腳本

vim /etc/init.d/rsyncd

#Description:
#!/bin/bash
#chkconfig: 2345 31 61                       # 設置chkconfig 級別
#description: start or stop rsync daemon     # 描述

. /etc/init.d/functions
pidfile=/var/run/rsyncd.pid
RETVAL=0
start_rsync(){
if [ -f $pidfile ];then                       # 判斷pid文件,存在就不再啓動
    echo "Rsync is already running"
else
    rsync --daemon
    action "Rsync starts successfully "  /bin/true
fi
}
stop_rsync(){
if [ -f $pidfile ];then
    kill -USR2 `cat $pidfile`
    rm -rf $pidfile                            # 停止服務,就刪除pid文件
    action "Rsync stops successfully" /bin/true
else
    action "Rsync is already stopped.Stop Failed" /bin/false
fi
}
case "$1" in
    start)
        start_rsync
        RETVAL=$?
        ;;
    stop)
        stop_rsync
        RETVAL=$?
        ;;
    restart)
        stop_rsync
        sleep 2
        start_rsync
        RETVAL=$?
        ;;
    *)
        echo "Usage:$0 start|stop|restart"
        exit 1
esac
exit $RETVAL

5.賦予執行權限

chmod +x /etc/init.d/rsyncd

6.添加到系統管理

chkconfig -add rsyncd

7.啓動rsyncd服務

service  rsyncd start

8.添加計劃性任務

crontab -e

#每分鐘同步一次數據

  • 1 /usr/local/bin/rsync -vzrtopg --delete --progress --exclude "access" --exclude "debug" [email protected]::www /www --password-file=/etc/server.pass

測試結果

Rsync 搭建遠程容災備份系統

Rsync 搭建遠程容災備份系統

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章