1. 利用 ssh+rsync
隻需要在伺服器端打開 ssh 服務, 并啟動 xinetd 中 rsync 服務則可使用
a. 增量同步
b. 鏡像同步
特點: 配置簡單, 不需要配置 rsyncd.conf 配置檔案, 但需要在同步過程中進行使用者認證
注: 利用 expact + gzipexe 可以建立自動同步加密腳本
使用: 可手動同步或每天晚上定制時間任務同步
缺點:無法實作實時同步, 不可以成為雙機熱備份方案麼
2. 啟用 rsync 服務
需要配置 /etc/rsyncd.conf 配置檔案, 需要啟動 xinetd 中 rsync 服務, 可以不通過 sshd 協調
a. 配置檔案 (參考 man 5 rsyncd.conf , 目錄共享管理參考 smb.conf)
rsyncd.conf 參考
motd file = true # 時間記錄
pid file = /var/run/rsyncd.pid
port = 873
address = 0.0.0.0
log file = /var/log/rsyncd.log # rsync 獨立日志, 記錄每個檔案更新資訊
syslog facility = syslog # 增加同步啟動與結束資訊到 /var/log/messages 仲
uid = nobody # 注: 定義同步時 rsync 程序使用者 id
gid = nobody
use chroot = no
[share]
path=/tmp/test
read only=false
rsyncd.conf 配置安全資訊:
charset 用于設定字元集, 可用字元集參考 smb.conf 标準
max connections 并發連接配接數量
read only 讀寫控制
write only 讀寫控制
list 是否允許用戶端利用 rsync --list-only rsync://192.168.1.11:873 查詢共享目錄資訊
注: rsync --list-only rsync://192.168.1.11:873/share/. 能夠列出檔案資訊, 與 list 參數無關
exclude 同步過程中忽略某個檔案或目錄 ex: = new/ old/ kdump.conf (注:隻需要相對路徑)
exclude from = /etc/rsyncd.list 以檔案記錄同步過程忽略資訊
incoming chmod 檔案目錄權限定義
outgoing chmod 檔案目錄權限定義
auth users 配合 secrets file 使用, 定義使用者認證(明文) = user1 user2 user3
secrets file = filepath 驗證檔案 文法 user:password (必須包含上述user123) 檔案 root 600 屬性
hosts allow 主機 ip 定義
hosts deny 主機 ip 定義
log format 預設格式 %o %h [%a] %m (%u) %f %l 參考 rsyncd.conf
常見同步文法
rsync --list-only rsync://192.168.1.11:873/share/. 能夠列出檔案資訊
rsync --list-only rsync://192.168.1.11:873 查詢共享目錄資訊
rsync --exclude-from=file.txt rsync://192.168.1.11:873/share/. /tmp/test/. 不同步指定資訊
優點: 避免顯示主機檔案資訊絕對路徑, 多種安全設定, 不需要利用ssh 進行使用者驗證, 支援匿名同步
缺點: 無法主動推送檔案
3. rsync+lsyncd 資料同步
[rsync server ] <------ [ lsyncd ] ---> [ rsync server ]
rsync 用戶端需要編譯 lsyncd 軟體,安裝 rsync 工具
rsync 伺服器需要配置并啟動 rsync 程序, 如上例子, 匿名共享 share 目錄
下載下傳最新版
<a href="http://lsyncd.googlecode.com/files/lsyncd-2.0.5.tar.gz">http://lsyncd.googlecode.com/files/lsyncd-2.0.5.tar.gz</a>
依賴: lua >= 5.1.3, rhel6 更新檔
<a href="ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/6rolling/i386/os/packages/lua-devel-5.1.4-4.1.el6.i686.rpm">ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/6rolling/i386/os/packages/lua-devel-5.1.4-4.1.el6.i686.rpm</a>
文法需調用 lua 格式
建立配置檔案 share.lua
settings = {
.. 略
nodaemon = true, # false 成為前台程序, 友善測試
statusinterval = 3, # lsyncd.status 狀态更新時間間隔
...略
}
sync{
.. 略
bash = {
... 略
settings 為主配置, sync 為同步配置, bash 為同步方案
啟動方法
lsyncd share.lua
初次啟動則會自動同步檔案内容, 後發生檔案修改, 增加, 删除都會進行自動同步
如果需要對多台電腦進行同步, 可以利用 lsyncd backup.lua 等腳本多次進行程序啟動
方案優點:
1. 自動對目錄中檔案向 rsync 伺服器進行推送
2. 能夠支援多台 rsync 伺服器
3. 避免人工參與修改
缺點:
同步時間非實時, 約莫具有30秒延時
不建議采用大檔案進行同步