需求:正確,有效的備份方案是保障系統及數據安全的重要手段。服務器中,一般會結合計劃任務,shell腳原本執行本地備份,爲了進一步提升備份的可靠性,使用異地備份也是很必要的。html
rsync的同步示意圖:linux
rsync是一個開源的快速備份工具,能在不一樣的主機之間鏡像同步整個目錄樹,支持增量備份,保持連接,權限。且採用優先的同步算法,傳輸前執行壓縮,所以很是適合異地備份,鏡像服務器等應用。算法
做爲一種經常使用的文件備份工具,rsync每每是linux和unix系統默認安裝的基本組件之一。
shell
遠程同步任務重,負責發起rsync同步操做的客戶機稱爲發起端,負責響應來自客戶機的rsync同步操做的服務器稱爲同步端。同步過程當中,同步源負責提供文檔的原始位置,發起端應對該位置具備讀取權限。
vim
rsync做爲同步源時以守護進程運行,爲其餘客戶機提供備份源。配置rsync同步源須要創建配置文件rsyncdd.conf,建立備份帳號,而後將rsync程序以「--daemon」選項運行。安全
創建/etc/rsyncd.conf配置文件
服務器
rsyncd.conf位於/etc下,默認是沒有的。好比講以源目錄/var/www/html.備份帳號backuper爲例。
ide
vim /etc/rsyncd.conf
工具
uid = nobody
ui
pid = nobody
use chroot = yes
address = 10.0.0.1
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 10.0.0.0/8
[wwwroot]
path = /var/www/html
comment = Document Root of www.baidu.com
read only = yes
dont compress = *.gz *.bz2 *.zip *.rar *.z
auth users = backuper
secrets file = /etc/rsyncd_users.db
可是基於安全性考慮,rsync的同步源最好僅容許以只讀方式作同步,同步能夠採用匿名的方式,將其中的auth users 和secrets file配置記錄去掉就能夠
爲備份帳戶建立數據文件
建立帳號數據文件,添加一行用戶記錄,以冒號分隔,用戶名稱爲backuper,密碼爲123456.因爲帳號信息採用明文存放,應調整文件權限,避免帳號信息泄露。
vim /etc/rsyncd_users.db
backuper:pwd123
chmod 600 /etc/rsyncd_users.db
備份用戶backuper須要對源目錄/var/www/html有相應的讀取權限,實際只要other組有讀取權限,則備份用戶backuper和運行用戶nobody也就有讀取權限。
啓動rsync服務程序,運行參數爲--daemon
rysnc --deamon命令就能夠啓動rsync服務,以獨立監聽服務的方式運行。若要關閉rsync服務,能夠採起kill進程的方式。kill $(cat /var/run/rsyncd.pid)