發表文章

目前顯示的是有「系統管理」標籤的文章

FreeBSD package - 版本錯亂

在FreeBSD中,常常使用pkg_version -v指令來查看是否有軟體套件需要更新, 有時候會看到如下的狀況: # pkg_version -v autoconf-2.68 ! Comparison failed automake-1.11.1 ! Comparison failed libtool-2.2.10 > succeeds index (index has 2.2.6b) 這代表軟體套件內部資料庫有狀況, 此時可以下pkgdb -F指令來修護之: # pkgdb -F ---> Checking the package registry database [Updating the pkgdb in /var/db/pkg ... - 50 packages found (-0 +7) ....... done] Stale origin: 'devel/autoconf268': perhaps moved or obsoleted. -> The port 'devel/autoconf268' was moved to 'devel/autoconf' on 2010-12-08 because: "Autotools cleanup" Fixed. (-> devel/autoconf) Stale origin: 'devel/automake111': perhaps moved or obsoleted. -> The port 'devel/automake111' was moved to 'devel/automake' on 2010-12-08 because: "Autotools cleanup" Fixed. (-> devel/automake) Stale origin: 'devel/libtool22': perhaps ...

Mail Server 移機(FreeBSD -> FreeBSD)

看到這篇文章,剛好我也在想,萬一我們的郵件主機掛點,要怎麼辦?是不是平常要把使用者帳號備份出來,如果有狀況時,至少不用叫使用者再去重新改密碼。 Acme Evil: Mail Server 移機完畢 : "FreeBSD上的mail及家目錄裡的mail資料" 因為Acme Evil是由FreeBSD移到Linux,所以使用Webmin來滙出滙入使用者帳號, 確實是個好方法! 但是我只是想保留使用者的帳號及密碼資訊, 並不想移到別的作業系統, 還是保留使用相同的FreeBSD系統。所以我想應該不用使用Webmin吧!是不是把/etc/passwd, /etc/group等檔案copy出來就好! Google了一下, 果然是如此!整理如下: 1. 備份三個檔案: /etc/passwd /etc/master.passwd /etc/group 2. 重建密碼資料庫: pwd_mkdb -p /etc/master.passwd 3. 如果想要的話, 也可以搬移/home目錄等, 使用tar指令(如Acme Evil文中所述) fb1# tar zcvf home.tar.gz /home/ fb2# scp someone@fb1:/root/home.tar.gz . fb2# cd / fb2# tar zxvf /root/home.tar.gz 其中scp指令用來跨主機copy檔案。 實作了一下, 並測試結果, 果然可以把帳號資訊完整移到別台主機。 這樣以後我只要備份這三個檔案, 有什麼萬一的時候, 大不了重裝一台主機, 再重建帳號, 就可以了。

在RHEL4或5上設定網卡bonding(team)

在伺服器上總是講求高可用性,方法就是redundant,什麼都要兩套,以防有一個元件故障時,還有一個可以撐著用。就好像人體的器官,也有很多成對的設計一樣。如眼睛是,手腳是,耳朵是,腎臟也是! 伺服器的網路卡也是其中一個重要的元件,也要兩套,以防故障時,就無法連線提供服務了。在PC伺服器,之前HP在Windows平台就提供自家主機網卡雙卡合一的驅動軟體。這個軟體很重要,光是網卡裝兩張,沒有這個軟體,就很難達到故障自動移轉,平時負載相互分攤的功能。因為沒有這個軟體,一張網卡必須有自己的IP位址,這樣一台主機兩個IP位址,使用者難道要自己在連不上線時自己切換連另一個IP位址嗎?沒有使用者會去記得這件事,最好還是由系統自己切換,而使用者完全感受不到有網卡故障。頂多覺得剛才好像頓了一下。 這個功能就是HP所謂的team NIC,可惜那只提供Windows平台使用。現在在資料中心有很多主機都改用Linux了,而RedHat的Enterprise Linux也支援這個功能,由叫做bonding的模組提供。包括Oracle的Enterprise Linux也支援。因為他們都已經將軟體包好,所以我們只要簡單的設定就可以使用了。 NixCraft 有一篇文章介紹,請大家去看看就明白。 我自己有在虛擬機器上設定兩張網卡,使用Oracle的Enterprise Linux 5.5實作過,完全依NixCraft的步驟,只是改成自己要的IP位址及網段,很容易就可以設好。運作起來,也很正常。這台機器上還安裝Oracle的資料庫,連線資料庫的運作都沒問題。 也做過斷線測試,發現把一張網卡斷線時,PING會掉一個封包,如此而以,其他沒有影響。

FreeBSD的ports

最近開始接觸FreeBSD 7.0, 才發現之前去FTP download ports的方式, 在7.0版會碰到很多問題! 所以看了一下FTP上的ports檔案的日期, 居然是2005年的; 想想不太對, 於是在光碟上找看看是不是有附ports檔, 結果真的有, 如下: # ls -l /cdrom/7.0-RELEASE/ports total 40029 -r--r--r-- 3 root wheel 103 Feb 25 04:24 CHECKSUM.MD5 -r--r--r-- 3 root wheel 173 Feb 25 04:24 CHECKSUM.SHA256 -r-xr-xr-x 3 root wheel 300 Feb 25 04:24 install.sh -r--r--r-- 3 root wheel 40990132 Feb 25 04:24 ports.tgz 只要執行install.sh就可以把ports裝好, 之後再使用ports安裝其他軟體, 就正常了!

FreeBSD的軟體更新

我們都知道FreeBSD的軟體安裝很容易, 只要使用ports來安裝, 大部份的軟體都可以只下個make install指令就可以了。但是日後的軟體升級更新要如何做呢? 其實也不難, 我簡單整理如下步驟: 1. 使用cvsup工具來更新ports # cvsup -g -L 2 ports-supfile 2. 利用pkg_version指令檢查是否需要更新 # pkg_version -v arc-5.21o_1 = up-to-date with port arj-3.10.22 = up-to-date with port autoconf-2.59_2 = up-to-date with port automake-1.9.6 = up-to-date with port clamav-0.88.7_1 .... 3. 如果有更新的必要, 則使用portupgrade工具來更新 # portupgrade -a (portupgrade工具同樣可以先使用ports安裝: # cd /usr/ports/ports-mgmt/portupgrade # make install clean ) 當然前提是對外上網的能力要有, 還有更新之後, 要注意軟體本身的設定方式有沒有改變, 讀讀Release Notes, 並做些功能的測試是很有必要的! 否則不要輕易的升級你的系統!