日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

部署Rsync服务器-差异化数据同步

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 部署Rsync服务器-差异化数据同步 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄:
1.搭建Rsync服務器
2.客戶端訪問
3.同步備份數據腳本
Rsync(remote sync)是Unix及類Unix平臺下一款神奇的數據鏡像備份軟件,她不像FTP或其他文件傳輸服務那樣需要進行全備份,Rsync可以根據數據的變化進行差異備份,從而減少數據流量、提供工作效率。你可以使用她進行本地數據或遠程數據的拷貝,Rsync可以使用SSH安全隧道進行加密數據傳輸。Rsync服務端定義源數據,Rsync客戶端僅在源數據發生改變后才會從服務器上實際拷貝數據至本地,如果源數據被刪除則客戶端數據也會被刪除以確保主機之間的數據是同步的。Rsync使用TCP 873端口。
1.搭建Rsync服務器
部署Rsync服務器需要創建一個配置文件,默認該文件不存在,然后使用守護進程模式啟動rsync程序即可,下面我們將以圖1-1為原型創建配置文件將/common發布給所有的客戶端程序。因為Rsync是Andrew Tridgell (Samba的作者)與Paul Mackerras 合作開發的軟件,所以Rsync配置文件與Samba比較相似。Rsync分為三個配置文件分別是:rsyncd.conf(主配置文件)、rsyncd.secrets(密碼文件)、rsyncd.motd(服務器信息文件)。
?

???????????????????????????????? 圖1-1
?

  • [root@centos6?~]#?yum?-y?install?rsync?
  • [root@centos6?~]#?mkdir?/common;?cp?/etc/init.d/*?/common/?
  • [root@centos6?~]#?vim?/etc/rsync.conf?
  • #/etc/rsyncd.conf?
  • #設置服務器信息提示文件名稱,在該文件中編寫提示信息。?
  • motd?file?=?/etc/rsyncd.motd?
  • #開啟Rsync數據傳輸日志功能。?
  • transfer?logging?=?yes?
  • #設置日志文件名稱,可以通過log?format參數設置日志格式。?
  • log?file?=?/var/log/rsyncd.log?
  • #設置Rsync進程號保存文件名稱。?
  • pid?file?=?/var/run/rsyncd.pid?
  • #設置鎖文件名稱。?
  • lock?file?=?/var/run/rsync.lock?
  • #設置服務器監聽的端口號,默認為873。?
  • port?=?873?
  • #設置服務器所監聽網卡接口的IP地址,這里服務器IP地址為192.168.0.254。?
  • address?=?192.168.0.254?
  • #設置進行數據傳輸時所使用的賬戶名稱或ID號,默認使用nobody。?
  • uid?=?nobody?
  • #設置進行數據傳輸時所使用的組名稱或GID號,默認使用nobody。?
  • gid?=?nobody?
  • #設置user?chroot為yes后,rsync會首先進行chroot將根映射到path參數路徑下,對客戶?
  • #端而言系統的根就是path參數所指定的路徑。但這樣做需要root權限,并且在同步符號?
  • #連接資料時僅會同步名稱,而內容將不會同步。?
  • use?chroot?=?no?
  • #是否允許客戶端上傳數據,這里設置為只讀。?
  • read?only?=?yes?
  • #設置并發連接數,0代表無限制。超出并發數后,如果依然有客戶端連接請求,則將會收?
  • #到稍后重試的提示消息。?
  • max?connections?=?10?
  • #模塊,Rsync通過模塊定義同步的目錄,模塊以[name]的形式定義,這個跟Samba定義共?
  • #享目錄是一樣的效果。在Rsync中也可以定義多個模塊。?
  • [common]?
  • #comment定義注釋說明字串。?
  • comment?=?Web?content?
  • #同步目錄的真實路徑通過path指定。?
  • path?=?/common?
  • #忽略一些IO錯誤?
  • ignore?errors?
  • #exclude可以指定例外的目錄,即將common目錄下的某個目錄設置為不同步數據。?
  • #exclude?=?test/?
  • #設置允許連接服務器的賬戶,賬戶可以是系統中不存在的用戶。?
  • auth?users?=?tom,jerry?
  • #設置密碼驗證文件名稱,注意該文件的權限要求為600,僅在設置auth?users參數后有效。?
  • secrets?file?=?/etc/rsyncd.secrets?
  • #設置允許哪些主機可以同步數據,可以是單個IP也可以是網段,多個IP與網段之間使用空?
  • #格分割。?
  • hosts?allow=192.168.0.0/255.255.255.0?
  • #設置拒絕所有(除hosts?allow定義的主機外)。?
  • hosts?deny=*?
  • #客戶端請求顯示模塊列表是本模塊名稱是否顯示。?
  • list?=?false?
  • [root@centos6?~]#?echo?"tom:pass"?>?/etc/rsyncd.secrets?
  • [root@centos6?~]#?echo?"jerry:111"?>>?/etc/rsyncd.secrets?
  • [root@centos6?~]#?chmod?600?/etc/rsyncd.secrets?
  • [root@centos6?~]#?echo?“welcome?to?access”?>/etc/rsyncd.motd?
  • [root@centos6?~]#?rsync?--daemon?
  • [root@centos6?~]#?echo?“rsync?--daemon”?>>?/etc/rc.local?
  • [root@centos6?~]#?iptables?-I?INPUT?-p?tcp?--dport?873?-j?ACCEPT?
  • 由于Rsync默認并不是開機啟動項,如果需要設置Rsync為開機啟動服務可以將rsync –daemon命令寫入/etc/rc.local文件實現開啟啟動。
    2.客戶端同步數據
    現在讓我們開始同步數據吧,在客戶端主機同樣使用rsync命令就可以進行初始化數據傳輸,使用同樣的程序但不需要--daemon選項。

  • [root@centos6?~]#?yum?-y?install?rsync?
  • [root@centos6?~]#?rsync?-vzrtopg?--progress??tom@192.168.0.254::common?/test?
  • rsync命令
    描述:一個快速、多功能的遠程(或本地)數據拷貝工具
    用法:下表較全面地介紹了rsync的語法格式,SRC表示源路徑,DEST表示目標路徑

    本地拷貝

    rsync [選項] SRC… [DEST]

    通過遠程shell拷貝

    下載數據

    rsync [選項] [USER@]HOST:SRC... [DEST]

    上傳數據

    rsync [選項] SRC… [USER@]HOST:DEST

    通過rsync進程拷貝

    下載數據

    rsync [選項] [USER@]HOST::SRC... [DEST]

    上傳數據

    rsync [選項] SRC… [USER@]HOST::DEST

    選項:? -v,--verbose??? ??? ??? 顯示詳細信息
    ??? ??? -q,--quiet??? ??? ??? ? 靜默模式,無錯誤信息
    ??? ??? -a,--archive??? ??? ??? 歸檔模式,主要保留文件屬性,等同于-rlptgoD
    ??? ??? -r,--recursive??? ??? ? 遞歸
    ??? ??? -b,--backup??? ??? ???? 如果目標路徑已經存在同名文件時,將老的文件重命名為
    ~filename,可以使用--suffix指定不同的備份前綴
    ??? ??? --back-dir??? ??? ??? ? 將備份文件保存至指定目錄
    ??? ??? --suffix??? ??? ??? ??? 指定備份文件前綴
    ??? ??? -u,--update??? ??? ???? 如果目標地址中的文件比將要下載的文件更新則不執行同
    步,也就是說不會用舊的文件覆蓋新的文件
    ??? ??? -l,--links??? ??? ??? ? 保留符號連接
    ??? ??? -p,--perms??? ??? ????? 保留文件權限屬性
    ??? ??? -H,--hard-links??? ???? 保留硬連接
    ??? ??? -p,--perms??? ??? ????? 保留權限
    ??? ??? -A,--acls??? ??? ??? ?? 保留ACL權限
    ??? ??? -X,--xattrs??? ??? ???? 保留文件附件屬性
    ??? ??? -o,--owner??? ??? ????? 保留文件所有者屬性
    ??? ??? -g,--group??? ??? ????? 保留文件所屬組屬性
    ??? ??? --devices??? ??? ??? ?? 保留設備文件
    ??? ??? --specials??? ??? ??? ? 保留特殊文件
    ??? ??? -D??? ??? ??? ??? ????? 等同于--devices --specials
    ??? ??? -t??? ??? ??? ??? ????? 保留修改時間屬性
    ??? ??? -W,--whole-file??? ???? 不做增量檢查,直接拷貝全部文件
    ??? ??? -e,--rsh=COMMAND??????? 指定遠程shell
    ??? ??? --existing??? ??? ??? ? 僅同步目標路徑中已經有的文件,不下載源路徑下新的文件
    ??? ??? --delete??? ??? ??? ??? 刪除那些僅在目標路徑中存在的文件(源路徑中不存在)
    ??? ??? -z,--compress??? ??? ?? 傳輸過程中對數據進行壓縮
    ??? ??? --include=PATTERN??? ?? 匹配不排除的文件
    ??? ??? --exclude=PATTERN??? ?? 匹配需要排除的文件
    ??? ??? --progress??? ??? ????? 顯示數據傳輸的進度信息
    ??? ??? --partial??? ??? ??? ?? 保留因故障沒有傳輸完成的文件
    ??? ??? -P??? ??? ??? ??? ????? 等同于--progress --partial
    ??? ??? --password-file=FILE??? 指定密碼文件,將密碼寫入文件,實現非交互式數據同步
    ??? ??? --list-only??? ??? ???? 僅列出服務器模塊列表,需要rsync服務器設置list = true
    實例:

  • [root@centos6?~]#?rsync?-t?*.c?foo:src/?
  • 將本機當前目錄下的.c結尾的文件拷貝至foo主機的src目錄下。?
  • [root@centos6?~]#?rsync?-avz?foo:src/bar?/data/tmp?
  • 從foo主機上以遞歸方式將src/bar目錄拷貝至本機/data/tmp目錄。?
  • [root@centos6?~]#?rsync?-avz?foo:src/bar/?/data/tmp?
  • 從foo主機上以遞歸方式將src/bar目錄下的所有內容拷貝至本機/data/tmp目錄,但在/data/tmp目錄下不會創建bar目錄。?
  • [root@centos6?~]#?rsync?-avz?/src/foo?/dest?
  • 將本機/src/foo目錄拷貝至/dest目錄。?
  • [root@centos6?~]#?rsync?-avz?tom@192.168.0.254::common?/test3?
  • 使用tom賬戶連接遠程192.168.0.254主機的rsync進程,將common模塊定義的path路徑下載至本地test3目錄。?
  • [root@centos6?~]#?rsync?-avz?192.168.0.254::common?/dest?
  • 匿名下載192.168.0.254服務器的common模塊至本地/dest目錄。?
  • [root@centos6?~]#?rsync?--list-only?tom@192.168.0.254::?
  • 顯示192.168.0.254服務器所有的模塊名稱,需要服務端配置list?=?true才會顯示。?
  • [root@centos6?~]#?echo?“pass”?>?rsync.pass?
  • [root@centos6?~]#?rsync?-avz?--delete?--password-file=rsync.pass?192.168.0.254::common?/dest?

  • 創建密碼文件,使用密碼文件進行非交互式數據同步。
    如果客戶端需要定期對Rsync服務器的數據進行備份,可以編寫Shell腳本,通過計劃任務實現數據的定期備份工作。下面的腳本為精簡版數據備份腳本范例:

  • [root@centos6?~]#?cat?rsync_bak.sh?
  • #!/bin/bash?
  • #This?script?does?backup?through?rsync.?
  • #Date:2012-10-1?
  • #Version:1.0?beta?
  • #?
  • export?PATH=/bin:/usr/bin:/usr/local/bin?
  • SRC=common?
  • DEST=/data?
  • Server=192.168.0.254?
  • User=tom?
  • #password?file?must?not?be?other-accessible.?
  • Passfile=/root/rsync.pass?
  • #If?the?DEST?directory?not?found,?then?create?one.?
  • [?!?-d?$DEST?]?&&?mkdir?$DEST?
  • [?!?-e?$Passfile?]?&&?exit?2?
  • rsync?-az?--delete?--password-file=$Passfile?${User}@${Server}::$SRC?$DEST/$(date?+%Y%m%d)?
  • ?http://manual.blog.51cto.com/3300438/1172372 丁丁歷險博客

















    本文轉自丁丁歷險51CTO博客,原文鏈接:?http://blog.51cto.com/manual/1172372,如需轉載請自行聯系原作者



    總結

    以上是生活随笔為你收集整理的部署Rsync服务器-差异化数据同步的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。