主服務器:192.168.5.13_ubuntu
從服務器:192.168.5.11_centos
================== 1> 在兩臺主機上分別安裝rsync===================
ubuntu安裝如下:
編譯安裝:下載這個免費的軟件
rsync.samba.org/或者samba.anu.edu.au/rsync
去官方網站下載最新的版本
解壓縮進目錄后執行 #./configure && make && make install
正常情況很快就安裝完畢,rsync 服務器架設比較簡單,可我們安裝好rsync后,并沒有發現配置文件以及rsync服務器啟動程序,因為每個管理員可能對rsync 用途不一樣,所以一般的發行版只是安裝好軟件就完事了,讓管理員來根據自己的用途和方向來自己架設rsync服務器。
=====================2> rsync服務器的配置 =====================
在/etc目錄下創建一個rsyncd的目錄,我們用來存放rsyncd.conf,rsyncd.secrets和rsyncd.motd文件;
rsyncd.conf 是rsync服務器的主配置文件;
rsyncd.secrets是用戶密碼文件;
rsyncd.motd配置一些服務歡迎及說明信息;
a>創建修改 rsyncd.conf
rsyncd.conf 是rsync服務器主要配置文件,我們來個簡單的示例;比如我們要備份服務器上的 /tmp/目錄 ,在/tmp/ 中,我想把test目錄和test.php文件排除在外;
zhouda# cd /etczhouda# mkdir rsyncdzhouda# cd rsyncdzhouda# vi rsyncd.conf
寫入(保證文件中每行沒有空格):
pid file = /var/run/rsyncd.pidport = 873address = 192.168.5.13#uid = nobody#gid = nobodyuid = rootgid = rootuse chroot = yesread only = yes#limit access to PRivate LANs#設置可訪問的主機:如果多個ip則用空格隔開:192.168.5.3 192.168.5.4 192.168.5.5或者設置區間 192.168.5.3/5hosts allow=192.168.5.11 192.168.5.14hosts deny=*max connections = 5motd file = /etc/rsyncd/rsyncd.motd#This will give you a separate log filelog file = /var/log/rsync.log#This will log every file transferred - up to 85,000+ per user, per synctransfer logging = yeslog format = %t %a %m %f %bsyslog facility = local3timeout = 300#方括號中設置模塊名[linuxsirhome]#要同步服務器的目錄路徑path = /www/list=yesignore errors#auth users是必須在服務器上存在的真實的系統用戶,如果你想用多個用戶,那就以,號隔開;比如 auth users = roger,linuxsirauth users = roger#從服務器訪問需要的密碼文件secrets file = /etc/rsyncd/rsyncd.secretscomment = linuxsir tmp#設置不同步的目錄或文件用空格隔開exclude = test/ test.php
b> 創建修改密碼文件rsyncd.secrets
寫入:
退出保存。
修改權限密碼文件的權限:
c> 創建修改rsync.motd文件
rsyncd.motd是定義rysnc 服務器信息的,也就是用戶登錄信息。比如讓用戶知道這個服務器是誰提供的等;類似ftp服務器登錄時,我們所看到的 linuxsir.org ftp……。 當然這在全局定義變量時,并不是必須的,你可以用#號注掉,或刪除;如:
寫入:
===================== 3> 啟動rsync服務=======================
============ 4> 主服務器已經配置好rsync!下面我們設置從服務器============
從服務器只需安裝rsync即可,如果沒有安裝可以yum install rsync 然后運行:
#因為沒有指定密碼文件,所以需要手動輸入主服務器上的設定的密碼
輸入密碼:roger
roger是指定密碼文件中的用戶名
::linuxsirhome 表示在rsyncd.conf中設置的模塊名
/tmp是從服務器目錄(192.168.5.11/tmp)
到此為止,rsync的兩臺主機之間(192.168.5.11/tmp和192.168.5.14/tmp)的rsync同步已經配置完畢,只要在從服務器執行上述命令輸入密碼即可同步。
注:下面這個命令行中-vzrtopg里的v是verbose,
z是壓縮傳輸,
r是recursive,
topg都是保持文件原有屬性如屬主、時間的參數。
u是只同步已經更新的文件,避免沒有更新的文件被重復更新一次,不過要注意兩者機器的時鐘的同步。
--progress是指顯示出詳細的進度情況,
--delete是指如果服務器端刪除了這一文件,那么客戶端也相應把文件刪除,保持真正的一致。后面的[email protected]::linuxsirhome中,之后的linuxsirhome是模塊名,也就是在/etc/rsyncd /rsyncd.conf中自定義的名稱,roger是指定模塊中指定的可以同步的用戶名。最后的/root/www是備份到本地的目錄名。在這里面,還可以用-e ssh的參數建立起加密的連接。
可以用–passWord-file=/root/rsync.pass來指定密碼文件,這樣就可以在腳本中使用而無需交互式地輸入驗證密碼了,這里需要注意的是這份密碼文件權限屬性要設得只有屬主可讀。
zhouda#/usr/bin/rsync-vzrtopg --progress --delete --password-file=/root/rsync.pass [email protected]::linuxsirhome/root/www
==================5> 設置主從服務器定定時自動同步==================
自動同步要用到從服務器上的crond服務,關于crond的介紹請參考:linux定時執行系統
我們在從服務器即192.168.5.11的/root/www目錄下創建兩個rsync.sh文件和rsync.pass文件。
rsync.sh文件是crond要執行的腳本文件。
rsync.pass是保存主服務器密碼的文件。
a>創建rsync.sh文件
寫入:
退出保存。
b> 創建rsync.pass密碼文件
寫入:
退出保存并修改權限:
c> 配置crond服務
添加一行:
*/1 * * * * /root/www/rsync.sh //即每分鐘同步一次
退出保存。
設置完畢,首先自己也手工執行下./rsync.sh,看看是否能正常運行.
以后每隔一分鐘即會把主服務器/www目錄更新至從服務器/root/www.
具體參數:
新聞熱點
疑難解答
圖片精選