然后運行config或menuconfig,在”文件系統選擇”這部分選擇”Inode Monitor(IMON) support (EXPERIMENTAL)”,編譯內核重啟系統。編譯FAM本身是很簡單的,在FAM的源文件目錄下運行./configure和make all install就大功告成了。
下面我們將要安裝SGI::FAM調用的Perl模塊,我們可以用perl來編寫事件處理程序。
安裝 SGI::FAM Perl模塊
你不會真的要用C/C++來編程吧?我不了解你的情況,但是我很懶惰,而且我這個人也缺乏耐心,所以我用perl編寫復制管理程序。
有關下載安裝SGI::FAM的問題可以找Jesse N.Glick(jglick@sig.bsh.com)聯系。安裝這些模快很簡單,運行CPAN模塊:
|
這樣就安裝了SGI::FAM及全部必須模塊。
用Fam_mirror實現復制
Fam_mirror是我寫的用于自動復制的script程序。要了解Fam_mirror的具體情況,你可以在http://www.linuxfocus.org/common/src/article199/fam_mirror.html去查看,如果要下載Fam_mirror,請到http://www.linuxfocus.org/common/src/article199/fam_mirror。你可以重新編輯這個程序,將$replicaHosts改為當前的主機、$rsh改為當前使用的shell,也可以將$rsync改為實現相同功能的命令。
下面我們來看第一個方案:
有兩臺機器做WEB服務器(web1,web2)。其中一個為主服務器(如web1),另外一個為從服務器(web2)。第一個FTP服務器是web1,web2上根本不能運行FTP服務(否則,系統工作于備份方式時用戶還可能會向文件中寫數據)。
在兩臺服務器中,web文檔都放在/var/www目錄中,在兩臺機器中設置rsh或ssh,使web1無需口令就可以在web2上運行遠程命令。我通常是在復制主機中的authorized_keys中填加我的ssh_key來實現這個要求的。將web1的數據遠程同步到web2上的命令是:
|
編輯Fam_mirror文件,將@replicaHosts改為:
|
在web1上運行Fam_mirror:
|
這樣,如果web1上的文件發生了變化,這種變化也會寫到web2上的文件中。
現在我們來看看方案2:(系統中有多臺WEB服務器)
主機linuxweb1、linuxweb2、linuxweb3和linuxweb4都是web服務器。主機linuxftp 1是ftp服務器(主服務器)。Web主機不向用戶開放FTP服務。
在主機linuxftp1上安裝FAM和IMON、SGI::FAM及Fam_mirror。在每臺主機上置rsh或ssh。linuxftp1無需口令就可以在四臺WEB服務器上運行遠程命令。
編輯Fam_mirror,將@replicaHosts設置為:
|
如果有需要也可以改動$rsh和$rsync,假設WEB文本放在各個機器的/var/www目錄下。
在linuxftp 1上運行:INIT_MIRROR=1 fam_mirror /var/www &
這樣,四臺WEB服務器都能對linuxftp 1上改變的文件進行更新。