Ubuntu Linux下用rsync進行資料備份和同步配製__Linux

來源:互聯網
上載者:User

背景:

0. 伺服器的資料是非常重要的,一旦發生磁碟損壞就麻煩了。作為一個管理員,對資料進行即時地同步備份那是很有必要的。

1. rsync 是一個很好和備份工具,下面以Ubuntu為例講一下它的配製。

2. 假如我的伺服器A的ip為10.141.247.12, 我的備份客戶機B的ip為10.141.247.13


伺服器端的配製:

1. 開啟rsync作為伺服器的開關,修改檔案/etc/default/rsync的內容其中一行如下(整個檔案內容見連結)

RSYNC_ENABLE=true

2. 建立配製檔案/etc/rsyncd.conf 內容如下( 或者見連結)

#[globale]strict modes = yes  #rsync default portport = 873 logfile = /var/log/rsyncd.logpidfile = /var/run/rsyncd.pid  max connections = 4 auth users = backup, usersecrets file = /etc/rsyncd.scrt#[modules] each path responding to a module[appbackup]path = /home/aborn/backup#hosts allow=9.4.122.24    [databackup]path = /home/data

說明:a) auth users 配製一定要和/etc/rsyncd.scrt裡的使用者名稱保持一致,但不一定是系統裡的使用者名稱,名字隨便取

            b) 要備份的每個路徑為一個module,這裡有兩個路徑分別對應module為[appbackup]和[databackup]


3. 建立密碼檔案/etc/rsyncd.scrt 對應內容如下:

backup:configurebackup@#$^&*()googleuser:passwordpassword
這裡有兩個使用者backup和user,冒號對應為密碼,注意該檔案屬性為600 (其他使用者沒用讀寫執行許可權)


4. 開啟備份服務(開戶後可用netstat -tupln查看873連接埠有沒有開啟,若開啟則成功)

 sudo /etc/init.d/rsync start

用戶端配製

1. 假如當前工作目錄為~/backup

2. 在當前工作目錄建立密碼檔案rsyncd.scrt,內容和伺服器端保持一樣,屬性也為600

3. 在當前工作目錄建立配製檔案client.conf,內容如下:

BACKUPPATH="/home/aborn/backup/";SERVERIP="10.141.247.12"MODULE="appbackup databackup"#OPTIONS="-vazu --progress --delete" OPTIONS="-vazu --progress"

說明: 其中BACKUPPATH為用戶端資料存放路徑

         SERVERIP為伺服器A機器的IP地址

          MODULE為對應於服務端的/etc/rsyncd.conf下的module,多個module以空格分開

4. 運行備份指令碼 rsyncclient.sh,其內容如下

#!/bin/bash################################################################### NAME#    rsyncclient.sh  ---- running in client machine, which#                      is used to backup data in client machine## USAGE #    ./rsyncclient.sh## AUTHOR#   Aborn Jiang (aborn.jiang@gmail.com)## NOTE    #   pls configure the file client.conf and rsyncd.scrt# ##################################################################ABSPATH=$(dirname $0)source ${ABSPATH}/client.conffunction get-user-pwd(){# obtain usrname and password    iUSR=$(cat ${ABSPATH}/rsyncd.scrt|tr -d ' ' |grep  -v "^$" | \        grep -v "^#"|head -n 1|awk -F : '{print $1}')    iPWD=$(cat ${ABSPATH}/rsyncd.scrt|tr -d ' ' |grep  -v "^$" | \        grep -v "^#"|head -n 1|awk -F : '{print $2}')    if [ -z ${iUSR} ] || [ -z ${iPWD} ];then        echo "iUSR=$iUSR   iPWD=$iPWD"         echo "rsyncd.scrt format illegal, please check!";        exit -1;    fi# produce password file    echo "$iPWD" > ${ABSPATH}/.pass    chmod 600 ${ABSPATH}/.pass    [ ! -d $BACKUPPATH ] && mkdir -p ${BACKUPPATH}}function backup-module(){# print key information    iModule=$1    echo    echo "---------------------------------------------------"    echo "---- backup module ${iModule}@${SERVERIP} begin "    echo "---- TIME=`date`----"    echo "ABSPATH=${ABSPATH}"       echo "BACKUPPATH=${BACKUPPATH}"    echo "iUSR=$iUSR   iPWD=$iPWD"     echo "OPTIONS=${OPTIONS}"    iModuleBackpath=${BACKUPPATH}/${iModule};    [ ! -d ${iModuleBackpath} ] && mkdir -p ${iModuleBackpath}# begin backup    rsync  ${OPTIONS}  ${iUSR}@${SERVERIP}::${iModule}  ${iModuleBackpath} \        --password-file=${ABSPATH}/.pass    if [ $? != 0 ];then        echo "---- backup module ${iModule}@${SERVERIP} failed."    else        echo "---- backup module ${iModule}@${SERVERIP} succuess. "    fi    echo "---- TIME=`date`----"    echo "---------------------------------------------------"    echo }function __main__(){    get-user-pwd    for md in $MODULE    do        backup-module $md    done}__main__

註:整個工程檔案見我的GitHub這個 連結configure.rsync


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.