Rsync是一個非常簡單和方便的小工具,而且也非常的適用;不僅可以用來方便的下拉文件,而且也可以用來作爲數據備份的一個工具。下面我自己實驗來搭建一個使用rsync作爲備份工具。
實驗一、
A、 B兩個linux系統服務器,服務器A作爲網站服務器,上面有重要的數據需要實時備份;服務器B作爲備份服務器,需要實時去將A服務器的數據和文件下載下來進行異地備份。
A服務器ip :192.168.5.120
B服務器ip :192.168.5.147
1. rsync的安裝(此步驟非常的簡單,可以忽略不計)
1).下載rsync源碼包:
wget https://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz
2).進行編譯安裝:
tar –zxvf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure
Make && make install
2. 配置rsync (A服務器上配置)
1).簡單配置rsync
Rsync的配置文件爲rsyncd.conf 這個文件默認是沒有的,需要自己手動創建或者去其他地方cp一份,一些全局參數和模塊參數,模塊參數以方括弧開始,配置完畢的配置文件如下:
<在配置文件中最好不要保留後面漢字註釋,這裏僅供參考>
list=no #是否列出模塊 默認是yes
uid=root #守護進程用戶id默認是nobody
gid=root #守護進程組id 默認是nobody
strict modes = yes #是否檢查口令文件權限,yes爲檢查權限,口令文件權限必須爲root用戶權限
max connections=10000 #最大連接數
log file=/data0/logs/rsync/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
#hosts deny=*
[www] #模塊的開始
path=/data/www_root/ #需要備份的路徑
comment=web
ignore errors #忽略一下IO錯誤
read only=no #客戶端可以上傳文件,yes表示只讀
write only = no #客戶端可以下載文件,yes表示不能下載
hosts allow=192.168.5.147
#osts deny=*
secrets file = /root/rsyncd.secrets #密碼文件
2).sync服務:rsync --daemon --config=/etc/rsyncd.conf
3).查看rsync啓動
[root@bogon ~]# ps axuf | grep rsync
root 8387 0.0 0.2 63424 784 pts/1 D+ 22:46 0:00 \_ grep rsync
root 8382 0.0 0.1 61436 616 ? Ss 22:46 0:00 rsync --daemon --config=/etc/rsyncd.conf
或者查看端口是否監聽
[root@bogon ~]# netstat -nap | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 8382/rsync
tcp 0 0 :::873 :::* LISTEN 8382/rsync
4).創建口令文件以及權限
echo “rsync:123456” > /root/rsyncd.secrets
chmod 600 /root/rsyncd.secrets
3. B服務器上不需要做任何設置,只需要rsync執行同步就行。爲了能在B服務器上自動同步需要在B服務器上創建一個密碼文件,文件內容爲指定用戶的密碼。
echo “123456” >/root/rsyncd.secrets
chmod 600 /root/rsyncd.secrets
/usr/bin/rsync -vzrtopg --delete --progress [email protected]::www /data/www_root_back --password-file=/root/rsyncd.secrets
v 詳細模式輸出
z 在傳輸中進行壓縮
r 對子目錄進行遞歸模式處理
t 保持文件時間信息
o 保持文件屬主信息
p 保持文件權限信息
g 保持文件屬組信息
--delete 以服務器端爲基準,保持服務器端和客戶端目錄的完全一致
--progress 顯示同步過程
--exclude 排除不需要傳輸的文件類型
--password-file 指定口令文件路徑
4. 添加計劃任務,定時自動備份
每5分鐘同步一次
crontab –e
*/5 * * * * /usr/bin/rsync -vzrtopg --delete --progress [email protected]::www /data/www_root_back --password-file=/root/rsyncd.secrets