使用rsync做一個簡單的異地備份

    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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章