1. 利用 ssh+rsync
只須要在服務器端打開 ssh 服務, 並啓動 xinetd 中 rsync 服務則可以使用
a. 增量同步
rsync -av /src-dir/. user@ipadress:/dest-dir/.
b. 鏡像同步
rsync -av --delete /src-dir/. user@ipadress:/dest-dir/.
特色: 配置簡單, 不須要配置 rsyncd.conf 配置文件, 但須要在同步過程當中進行用戶認證
注: 利用 expact + gzipexe 能夠建立自動同步加密腳本
使用: 可手動同步或天天晚上定製時間任務同步
缺點:沒法實現實時同步, 不能夠成爲雙機熱備份方案麼linux
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 = nobash
[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
優勢: 避免顯示主機文件信息絕對路徑, 多種安全設定, 不須要利用ssh 進行用戶驗證, 支持匿名同步
缺點: 沒法主動推送文件工具
3. rsync+lsyncd 數據同步測試
[rsync server ] <------ [ lsyncd ] ---> [ rsync server ]ui
rsync 客戶端須要編譯 lsyncd 軟件,安裝 rsync 工具
rsync 服務器須要配置並啓動 rsync 進程, 如上例子, 匿名共享 share 目錄google
下載最新版
http://lsyncd.googlecode.com/files/lsyncd-2.0.5.tar.gz
依賴: lua >= 5.1.3, rhel6 補丁
ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/6rolling/i386/os/Packages/lua-devel-5.1.4-4.1.el6.i686.rpm
語法需調用 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秒延時 不建議採用大文件進行同步