rsync
rsync是linux系統下的數據鏡像備份工具。使用快速增量備份工具Remote Sync可以遠程同步,支持本地複製,或者與其他SSH、rsync主機同步。
可以鏡像保存整個目錄樹和文件系統。
可以很容易做到保持原來文件的權限、時間、軟硬鏈接等等。
無須特殊權限即可安裝。
快速:第一次同步時 rsync 會複製全部內容,但在下一次只傳輸修改過的文件。rsync 在傳輸數據的過程中可以實行壓縮及解壓縮操作,因此可以使用更少的帶寬。
安全:可以使用scp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接。
支持匿名傳輸,以方便進行網站鏡象。
rsync安裝
- 下載 (2018年9月25日13:52:23 最新版本爲3.1.3)
wget https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz
- 解壓
tar -xvf rsync-3.1.3.tar.gz
- 進入解壓後的目錄
- 配置
./configure --prefix=/usr/local/rsync/
- 編譯
make
- 安裝
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.如果客戶端的密碼也是存在文件裏的,如上所示,注意客戶端的密碼文件和服務端密碼文件不一樣,客戶端這裏不需要用戶名,只要密碼就行。