rsync遠端同步
一、配置rsync源伺服器
在遠端同步任務中,負責發起rsync同步操作的客戶機稱為發起端,而負責響應來自客戶機的rsync同步操作的伺服器稱為同步源。在同步過程中,同步源負責提供文件的原始位置,發起端應對該位置具有讀取許可權。
1.建立/etc/rsyncd.conf配置檔案(同步源中)
該配置檔案需要自行建立,下面將以原目錄/var/www/html、備份賬號backuper為例,介紹其配置方法。
[[email protected] ~]# vim /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = yes //禁錮在原目錄
address = 192.168.1.2
port 873//監聽埠
log file = /var/log/rsyncd.log //日誌檔案位置
pid file = /var/run/rsyncd.pid //存放程序ID的檔案位置
hosts allow = 192.168.1.0/24 //允許訪問的客戶機地址
[wwwroot]//共享模組名稱
path = /var/www/html//源目錄的實際路徑
comment = document root of www.benet.com
read only = yes//僅允許以只讀方式做同步
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z//同步時不再進行壓縮的檔案型別
auth users = backuper
secrets file = /etc/rsyncd_users.db //存放賬戶的資料檔案
注意:同步可以採用匿名方式。只需將”auth users”和”secrets file”配置記錄去掉即可。
2.為備份賬戶建立資料檔案
[[email protected] ~]# vim /etc/rsyncd_users.db
backuper:pwd123 //無須建立同名系統使用者
[[email protected] ~]# chmod 600 /etc/rsyncd_users.db //調整檔案許可權,避免賬號資訊洩露。未調整檔案許可權,會導致認證失敗。
注意:備份使用者
1.啟動rsync服務程式
[[email protected]~]# rsync --daemon //啟用rsync服務
[[email protected]~]# iptables -I INPUT -p tcp --dport 873 -j ACCEPT //為873埠開例外
如果需要結束rsync程序,可以執行:kill $(cat /var/run/rsyncd.pid)
二、使用rsync備份工具(在rsync客戶機,發起端)
1.rsync命令的基本用法
命令格式:”rsync [選項] 原始位置 目標位置”
常用選項:-r:遞迴模式,包含目錄及子目錄中的所有檔案
-l:對於符號連結檔案任然複製為符號連結檔案
-v:顯示同步過程的詳細資訊
-a:歸檔模式,保留檔案的許可權、屬性等資訊,等同於”-rlptgoD”
-z:在傳輸檔案時進行壓縮
-p:保留檔案的許可權標記
-t:保留檔案的時間標記
-g:保留檔案的屬組標記(僅超級使用者使用)
-o:保留檔案的屬主標記(僅超級使用者使用)
-H:保留硬連結檔案
-A:保留ACL屬性資訊
-D:保留裝置檔案及其他特殊檔案
--delete:刪除目標位置有而原始位置沒有的檔案
--checksum:根據校驗和(而不是檔案大小、修改時間)來決定是否跳過檔案
配置源的表示方法:
使用者名稱@主機地址::共享模組名
或者 rsync://使用者名稱@主機地址/共享模組名
注意:在本地使用rsync命令相當於cp命令
2.rsync備份操作
在發起端上發起遠端同步
確認同步結果
加上選項”--delete”選項,會在目標位置中刪除原始位置沒有的檔案。
可以結合crond服務來完成定期同步:
建立密碼檔案
給rsync命令指定密碼檔案,可以在同步過程中不用再輸入密碼。
三、配置rsync+inotify實時同步
將rsync工具與inotify機制相結合,可以實現觸發式備份(實時同步),只要原始位置的文件發生變化,則立即啟動增量備份操作。
這裡將在同步源上進行實時監控,如果有檔案變動,便進行遠端同步,將檔案備份到客戶機上。
注意:實現實時同步需要使用SSH祕鑰對的方式驗證身份
1.調整inotify核心引數
在linux核心中,預設的inotify機制提供了三個調控引數:
max_queued_events //表示監控事件佇列(16384)
max_user_instances //最多監控例項數(128)
max_user_watches //每個例項最多監控檔案數(8192)
當要監控的目錄、檔案數量較多時,建議加大這三個引數值。
2.安裝inotify-tools
inotify-tools軟體包可以提供inotifywait、inotifywatch輔助工具程式,用來監控、彙總改動情況。
“inotifywait”命令格式(監控/var/www/html):
[[email protected] ~]# inotifywait -mrq -e create,delete,modify,move /var/www/html
選項:”-m”表示持續監控;
”-r”表示遞迴整個目錄;
”-q”表示簡化輸出資訊;
“-e”表示用來指定要監控那些事件
3.編寫觸發式同步指令碼
4.配置SSH金鑰對驗證
在同步源上生成公鑰檔案
將公鑰檔案傳到發起端伺服器,”rput”使用者是發起端的使用者,”-i”指定公鑰檔案。
在發起端伺服器上,修改配置檔案/etc/ssh/sshd_conf,允許使用rput連線,並開啟金鑰對驗證。
測試SSH金鑰對連線
最後,便可以在同步源上執行指令碼檔案,實時監控本伺服器上的檔案變化,並進行備份。
轉載於:https://blog.51cto.com/fengjicheng/1880721