<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Skynet

    ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks
    使用rsync同步網(wǎng)絡備份
     
     
    一. 簡介
    rsync常用的備份工具, 它目前是由 rsync.samba.org 維護.
    rsync使用所謂的"rsync算法",提供一個非常快速的檔案傳輸方法, 使local和遠端二部主機之間的檔案達到同步,它主要是傳送二個檔案的異動部份,而非每次都整份傳送, 因此速度相當?shù)乜? 
    rsync它可以搭配rsh或ssh,也可以當成daemon模式使用直接的socket連接, 所以rsync可以當做一個優(yōu)異的備份工具來使用. 
    我這簡單介紹運用rsync備份遠程網(wǎng)路主機檔案的基本方法。
    在這,我們是給rsync當成linux的一種daemon模式來運行.

    首先,先給個簡單的定義:當然要一臺主機跑rsync daemon模式, 我們就稱這臺機器為一rsync Server, 或者說這臺主機是一臺備份主機( Backup Server).
    備份主機會開啟一個873的端口(port), 等待對方rsync連接.所以服務器記的要開這個端口

    連接時, rsync Server 會檢查密碼是否相符, 若通過密碼查核, 則開始進行檔案傳輸.
    第一次連通完成時, 會把整份檔案傳輸一次, 下一次就只傳送二個檔案之間異動的部份. 
    以上是rsync client (欲加以備份的遠程網(wǎng)路主機) 和rsync server 的運作方式。
     
    藉由上述方法, 我們當然也可以設立多部備份主機, 使網(wǎng)路主機上重要的檔案能分散至數(shù)部主機中, 以分散風險. 
    一旦完成備份, 我們可以對這些備份主機再做進一步的儲存動作, 如使用tar打成tar的包, 把檔案備份到硬盤之類.

    以下內容,我用Ubuntu 7.10做客戶機,Centos5做服務器測試過.
      
     
    二. 安裝法
     
    rsync目前最新版是 2.6.8, 可以到rsync.samba.org 下載.
    若您使用 rpm 套件,請用下面的方法安裝,當然rhel5和centos5中默認就安裝了
    #rpm -ivh rsync*.rpm
    #yum install rsync
     
    它的設定檔位置在 /etc/rsyncd.conf,奇怪,我的沒有自動生成這個文件,那我們就來自己配置他
     
     
     
    三. 設定 rsync server: (假設這臺主機名稱為 rsync.x111.com)
     
    rsync server 端要設定以下四項:
     
       1.規(guī)劃建立備份目錄區(qū) 
     
       2.啟動xinetd中的rsync  
       3.設定: /etc/rsyncd.conf 
     
       4.設定: 密碼檔 
     
    依次說明如下:
     
    1. 規(guī)劃建立備份目錄區(qū):
    建議您準備一個容量較大且獨立的分割區(qū), 并在其中開好備份目錄, 如此 /blackup/x99
     
    2. 啟動xinetd中的rsync
    系統(tǒng)默認沒有安裝xinetd。
    # yum install xinetd
    #service xinetd restart
    #chkconfig rsync on
     
    以上的操作,主要是要打開rsync這個daemon,一旦有rsync client要連接時,xinetd會把它轉介給rsyncd (port 873). 
     
     
    3. 設定 /etc/rsyncd.conf : 
    全局設置
        uid = root
        gid = root
        use chroot = no                # 不使用chroot
        max connections = 4         # 最大連接數(shù)為4
        pid file = /var/run/rsyncd.pid
        lock file = /var/run/rsync.lock
        log file = /var/log/rsyncd.log    # 日志記錄文件
     
    以下的部分,代表開放給某一臺rsync client 主機的設定, 簡單范本如下: 
        [x99]
        path = /blackup/x99/x99_backup   
        auth users = x99_backup
        secrets file = /etc/rsyncd.secrets
        read only = no
     
     
    以上文件的注解: 
     
    [x99] 代表要備份的主機代號, 名稱自己設置.
     
    path 用來設定備份檔案要存放在那一個目錄.這個可先要mkdir開好,可以自己設置
    auth users 代表授權的帳號, 可以自己設置.
    secrets file 代表儲存帳號密碼的密碼檔, 其放置的路徑檔名.
     
    當然, 這臺備份主機, 可以容納許多 rsync client 連接, 只要在 rsyncd.conf中設置對應的多個部分即可.
     
    以下例子,代表二個主機x99及x100欲備份進來:
     
     
     
        [x99]
        path = /blackup/x99/x99_backup
        comment = XXXXX
        auth users = x99_backup
        secrets file = /etc/rsyncd.secrets
        read only = no
       
        [x100]
        path = /blackup/x100/x100_backup
        auth users = x100_backup
        secrets file = /etc/rsyncd.secrets
        read only = no
     
     
     
    4. 設定密碼文件:
     
    rsyncd.secrets 的內容很容易, 格式為"帳號:密碼";
    如以下例子:
    x99_backup:x99pass
    注意! 上述設定只是一個例子,你自己設置可一定千萬不要直接套用.
    接下來, 要將 rsyncd.secrets 這個密碼檔的檔案屬性設為root擁有, 且權限要設為600, 否則無法備份成功!
     
    因此, 請下: 
    #chown root.root rsyncd.secrets 
    #chmod 600 rsyncd.secrets 
     
    至此, rsync的服務器這端已設定完成, 若欲查看備份日志.
    #tail -f /var/log/rsyncd.log
     
     

    接下來是 client 端(即欲備份的網(wǎng)絡主機) 的設定.
     
     
    四. 設定 rsync client (假設這臺主機 IP 為 : 11.22.33.44)
    步驟:
     
       1.設定密碼檔 
     
       2.測試rsync命令是否可以正常 
     
       3.將rsync指令放入定時任務(crontab) 
     
    另外, 假設x99這臺主機是網(wǎng)路上的服務器, 現(xiàn)打算把/var/www/html這個目錄加以備份至backup server(上面講的rsync.x111.com), 
     
    但不想備份下面的目錄中的內容/html/log,(也就是說要把/html/log目錄排除), 整個操作方式如下:
     
    1. 假設把密碼檔放在 /root/rsyncd.secrets, 內容只要含有密碼一行即可:
     
    x99pass
     
    注意: rsyncd.secrets 的權限屬性必須設為600,設置方法見上面.
     
    2. 測試指令是否可以成功?
     
    /usr/bin/rsync -rvztopglHpogDtS --progress  --password-file=/root/rsyncd.secrets /var/www/html --exclude /html/log x99_backup@rsync.x111.com::x99
     
    若 出現(xiàn)傳輸目錄檔案的畫面, 即表示測試成功.上面這個命令行中-rv里的v是verbose,z是壓縮,r是遞歸,字目錄一直,topg都是保持文件原有屬性如屬主、時間的參數(shù)。 --progress是指顯示出詳細的進度情況,--delete是指如果服務器端刪除了這一文件,那么客戶端也相應把文件刪除,保持真正的一致。后面的 x99_backup@ip中,的x99_backup是指的用戶名
     
    3. 置入工作排程, 假設每天凌晨5點開始備份:
     
    crontab -u root -e
    0 5 * * * /usr/bin/rsync -rvlHpogDtS --password-file=/root/rsyncd.secrets /var/www/html --exclude apache /html/log x99_backup@rsync.x111.com::x99
     
    若您有其它目錄(如 /home)要備份, 則如法泡制: 20 5 * * * /usr/bin/rsync -rvlHpogDtS --password-file=/root/rsyncd.secrets /home x99_bakup@rsync.x111.com::x99
     
    當然您覺得備份一臺Backup Server不夠,還可再按上述方法,自行增加任意多臺Backup Server, 以分散風險!
     
     
    五. 安全性:
     
    防火墻的 iptables 指令, 來限制 rsync client 的連線范圍, 例子如下:
     
    iptables -A INPUT -p tcp -s ! xx.xx.xx.xx --dport 873 -j DROP
     
    如此, 只有 xx.xx.xx.xx 這個 client IP 能連入這臺 rsync server.


    附:
    詳細格式說明:
    -v, --verbose 詳細模式輸出
    -q, --quiet 精簡輸出模式
    -c, --checksum 打開校驗開關,強制對文件傳輸進行校驗
    -a, --archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD
    -r, --recursive 對子目錄以遞歸模式處理
    -R, --relative 使用相對路徑信息
    -b, --backup 創(chuàng)建備份,也就是對于目的已經(jīng)存在有同樣的文件名時,將老的文件重新命名為
    ~filename。可以使用--suffix選項來指定不同的備份文件前綴。
    --backup-dir 將備份文件(如~filename)存放在在目錄下。
    -suffix=SUFFIX 定義備份文件前綴
    -u, --update 僅僅進行更新,也就是跳過所有已經(jīng)存在于DST,并且文件時間晚于要備份的文件。
    (不覆蓋更新的文件)
    -l, --links 保留軟鏈結
    -L, --copy-links 想對待常規(guī)文件一樣處理軟鏈結
    --copy-unsafe-links 僅僅拷貝指向SRC路徑目錄樹以外的鏈結
    --safe-links 忽略指向SRC路徑目錄樹以外的鏈結
    -H, --hard-links 保留硬鏈結
    -p, --perms 保持文件權限
    -o, --owner 保持文件屬主信息
    -g, --group 保持文件屬組信息
    -D, --devices 保持設備文件信息
    -t, --times 保持文件時間信息
    -S, --sparse 對稀疏文件進行特殊處理以節(jié)省DST的空間
    -n, --dry-run現(xiàn)實哪些文件將被傳輸
    -W, --whole-file 拷貝文件,不進行增量檢測
    -x, --one-file-system 不要跨越文件系統(tǒng)邊界
    -B, --block-size=SIZE 檢驗算法使用的塊尺寸,默認是700字節(jié)
    -e, --rsh=COMMAND 指定替代rsh的shell程序
    --rsync-path=PATH 指定遠程服務器上的rsync命令所在路徑信息
    -C, --cvs-exclude 使用和CVS一樣的方法自動忽略文件,用來排除那些不希望傳輸?shù)奈募?br /> --existing 僅僅更新那些已經(jīng)存在于DST的文件,而不備份那些新創(chuàng)建的文件
    --delete 刪除那些DST中SRC沒有的文件
    --delete-excluded 同樣刪除接收端那些被該選項指定排除的文件
    --delete-after 傳輸結束以后再刪除
    --ignore-errors 及時出現(xiàn)IO錯誤也進行刪除
    --max-delete=NUM 最多刪除NUM個文件
    --partial 保留那些因故沒有完全傳輸?shù)奈募允羌涌祀S后的再次傳輸
    --force 強制刪除目錄,即使不為空
    --numeric-ids 不將數(shù)字的用戶和組ID匹配為用戶名和組名
    --timeout=TIME IP超時時間,單位為秒
    -I, --ignore-times 不跳過那些有同樣的時間和長度的文件
    --size-only 當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間
    --modify-window=NUM 決定文件是否時間相同時使用的時間戳窗口,默認為0
    -T --temp-dir=DIR 在DIR中創(chuàng)建臨時文件
    --compare-dest=DIR 同樣比較DIR中的文件來決定是否需要備份
    -P 等同于 --partial --progress 顯示備份過程
    -z, --compress 對備份的文件在傳輸時進行壓縮處理
    --exclude=PATTERN 指定排除不需要傳輸?shù)奈募J?br /> --include=PATTERN 指定不排除而需要傳輸?shù)奈募J?br /> --exclude-from=FILE 排除FILE中指定模式的文件
    --include-from=FILE 不排除FILE指定模式匹配的文件
    --version 打印版本信息
    --address 綁定到特定的地址
    --config=FILE 指定其他的配置文件,不使用默認的rsyncd.conf文件
    --port=PORT 指定其他的rsync服務端口
    --blocking-io 對遠程shell使用阻塞IO
    -stats 給出某些文件的傳輸狀態(tài)
    --progress 在傳輸時現(xiàn)實傳輸過程
    --log-format=FORMAT 指定日志文件格式
    --password-file=FILE 從FILE中得到密碼
    --bwlimit=KBPS 限制I/O帶寬,KBytes per second
    -h, --help 顯示幫助信息


    轉自 http://blog.csdn.net/KataDoc360/archive/2009/03/16/3995559.aspx


    整理 m.tkk7.com/Good-Game
    posted on 2009-10-28 17:55 劉凱毅 閱讀(331) 評論(0)  編輯  收藏 所屬分類: shell系統(tǒng)
    主站蜘蛛池模板: 久久亚洲精品视频| 国产日产亚洲系列最新| 亚洲宅男永久在线| 久久久久久久99精品免费观看| 亚洲视频在线精品| 中国黄色免费网站| 久久亚洲精品成人777大小说| 99精品全国免费观看视频..| 亚洲色中文字幕无码AV| 国产午夜精品免费一区二区三区 | h视频在线免费看| 亚洲人成7777| 国产精品冒白浆免费视频| 最新亚洲人成无码网站| 亚洲国产精品毛片av不卡在线| 亚欧国产一级在线免费| 亚洲色欲久久久综合网| 222www在线观看免费| 天堂亚洲国产中文在线| 免费h成人黄漫画嘿咻破解版| 乱淫片免费影院观看| 亚洲人成图片小说网站| 亚洲第一网站免费视频| 亚洲中文无码mv| 亚洲国产一区二区三区| 久9这里精品免费视频| 亚洲中文字幕无码一去台湾 | 国产亚洲美女精品久久久2020| a视频在线免费观看| 亚洲黄色在线观看| 日韩中文字幕在线免费观看 | 亚洲AV无码一区二区三区人| 女人张开腿等男人桶免费视频| 日韩a毛片免费观看| 亚洲日本精品一区二区| 成人免费毛片内射美女-百度| 欧亚一级毛片免费看| 亚洲情a成黄在线观看动漫尤物| 成人黄页网站免费观看大全| jyzzjyzz国产免费观看| 亚洲人色大成年网站在线观看|