rsync同步備份

rsync

rsync是linux系統下的數據鏡像備份工具。使用快速增量備份工具Remote Sync可以遠程同步,支持本地複製,或者與其他SSH、rsync主機同步。
可以鏡像保存整個目錄樹和文件系統。
可以很容易做到保持原來文件的權限、時間、軟硬鏈接等等。
無須特殊權限即可安裝。
快速:第一次同步時 rsync 會複製全部內容,但在下一次只傳輸修改過的文件。rsync 在傳輸數據的過程中可以實行壓縮及解壓縮操作,因此可以使用更少的帶寬。
安全:可以使用scp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接。
支持匿名傳輸,以方便進行網站鏡象。

rsync安裝

  1. 下載 (2018年9月25日13:52:23 最新版本爲3.1.3)
    wget https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz
  2. 解壓
    tar -xvf rsync-3.1.3.tar.gz
  3. 進入解壓後的目錄
  4. 配置
    ./configure --prefix=/usr/local/rsync/
  5. 編譯
    make
  6. 安裝
    make install

配置服務端conf

vi /etc/rsyncd.conf
將以下內容根據自己情況進行修改然後複製進去

# Minimal configuration file for rsync daemon 
# See rsync(1) and rsyncd.conf(5) man pages for help 
# This line is required by the /etc/init.d/rsyncd script 

uid = root
gid = root
use chroot = false #是否限定在該目錄下,默認爲true,當有軟連接時,需要改爲fasle,如果爲true就限定爲模塊默認目錄
read only = yes #是否爲只讀,如果是no的話,客服端推送給服務端的時候不成功,這時候要改成yes

#limit access to private LANs 
hosts allow= #客戶端地址
hosts deny=*
max connections = 5

#This will give you a separate log file 
log file = /mnt/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync 
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 900
ignore nonreadable = yes
dont compress = .gz .tgz .zip .z .Z .rpm .deb .bz2

[nick]
path = /home/wwwroot
comment = mms files backup
list=no
ignore errors
auth users = root
secrets file = /usr/local/rsync/rsyncd.secrets
#exclude =

配置服務端用戶密碼文件

vi rsyncd.secrets
這裏只要和配置文件裏的【mms】模塊裏的secrets file對應的配置項一致即可
內容的格式是 用戶名:密碼
例如root:root123

修改用戶密碼文件的權限

chmod 600 /usr/local/rsync/rsyncd.secrets

啓動服務端程序,以守護進程模式運行

進入bin目錄,執行./rsync --daemon即可啓動
可以通過查看端口號佔用來確認啓動成功
netstat -antp|grep 873
關於重啓服務端守護進程方式
直接kill掉進程然後重新啓動即可,就是如此暴力

客戶端進行同步測試

rsync -vzrtlopg --progress root@服務端IP::模塊名(nick) /path/ --password-file=/etc/rsyncd.passwd
命令解析:
-v, --verbose 詳細模式輸出。
-z, --compress 對備份的文件在傳輸時進行壓縮處理。
-r, --recursive 對子目錄以遞歸模式處理。
-t, --times 保持文件時間信息。
-l, --links 保留軟鏈結。
-o, --owner 保持文件屬主信息。
-p, --perms 保持文件權限。
-g, --group 保持文件屬組信息。
因爲我們做的是冗餘主備,因此千萬不要加 --delete 刪除那些DST中SRC沒有的文件。
如果是需要做完全同步,則需要加上 --delete命令 , 即服務端刪除的文件,客戶端也會進行刪除。

定時備份

將上述命令加入計劃任務,即可實現每天的增備。

踩坑指南

1.守護模式啓動必須得加上 --daemon參數
2.如果客戶端的密碼也是存在文件裏的,如上所示,注意客戶端的密碼文件和服務端密碼文件不一樣,客戶端這裏不需要用戶名,只要密碼就行。

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