來源:賽迪網-開放系統世界
電腦系統是由軟體系統和硬體系統共同組成的。檢測硬體狀態對於保障整個系統的穩定是非常重要的。不論作業系統是使用Linux、還是Windows,一旦硬體出現故障,那麼整個系統的安全就嚴重了。這裡我們主要針對運行Linux的電腦系統的CPU、硬碟、記憶體進行檢測。
中央處理器狀態的檢測
中央處理器是Linux主機的核心硬體。我們看一下Linux根目錄下:/proc目錄的內容。這個目錄中的檔案其實不是存放在磁碟上的。該目錄的檔案系統叫做proc檔案系統,是系統核心的映像。也就是說該目錄裡面的檔案是存放在系統記憶體裡面。它以檔案系統的方式為訪問系統核心資料的操作提供介面。使用者和應用程式可以通過/proc得到系統的資訊,並可以改變核心的某些參數。由於系統的資訊(如進程)是動態改變的,所以使用者或應用程式讀取proc檔案時,proc檔案系統是動態從系統核心讀出所需資訊並提交的。
CPU的資訊存放在“cpuinfo”檔案中。我們也可以使用以下命令來查看:
#cat /proc/ cpuinfo
以下以筆者的AMD Athlon 1100為例:
processor : 0vendor_id : Authentic AMDcpu family : 6model : 7model name : AMD Athlon(tm) Processorstepping : 0cpu MHz : 1100.046cache size : 64 KB #緩衝容量#fdiv_bug : no # 沒有BUG#hlt_bug : no # 沒有BUG#f00f_bug : no # 沒有BUG#coma_bug : no # 沒有BUG#fpu : yesfpu_exception : yescpuid level : 1wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmovpat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnowbogomips : 2195.45
|
一定要確保CPU硬體沒有BUG,並且被系統認別出具體型號。以上只是顯示CPU的基本情況,對於即時情況我們使用mbmon軟體檢測CPU,
1.軟體下載:http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/xmbmon203.tar.gz,http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/README-xmbmon203.html。
軟體下載後先看一下:
README-xmbmon203pl1.html
查看一下軟體是否支援你的主板晶片。
2.安裝軟體:
gunzip xmbmon203.tar.gztar xmbmon203.tarcd xmbmon203./configure;make;make install3.運行軟體:<BR>mbmon可以工作在命令列和X視窗下,首先查看一下筆者的主板:<ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr> <td bgcolor="e6e6e6" class="code" style="font-size:9pt"> <pre><ccid_code> ./mbmon-dUsing VIA686 HWM directly!!* VIA Chip VT82C686A/B found.
|
上面內容表示顯示主板晶片是威盛的VT82C686A/B。下面在命令列下運行。
./mbmon Temp.= 42.1, 33.0, 24.2; Rot.= 5357, 0, 0Vcore = 1.78, 3.11; Volt. = 3.41, 4.93, 12.19, 0.00, 0.00
|
上面顯示了中央處理器溫度為42.1,電源溫度為33.0,主板溫度為24.2;CPU風扇轉速為5357轉/分鐘;CPU核心電壓為1.78伏特,輸入電壓為12.19伏特、3.41伏特, 4.93伏特。預設情況下,以上內容五秒鐘更新一次記錄。
Mbmon在X視窗下運行,運行結果1所示。
./xmbmon
圖1 mbmon在X視窗下運行
4.遠程監控
Mbmon最新版本還提供遠程監控的功能:
./mbmon-p 22
其中“-P 22”表示開啟連接埠22,這樣你就可以使用Telnet、SSH等遠程工具串連Linux主機來檢測CPU狀態了。
硬碟磁軌檢測
硬碟物理壞道是硬碟的所有Linux硬體故障中最讓人頭痛的。它輕則使你的Linux電腦頻頻死機,重則讓你的所有資料化為烏有。現在出廠的硬碟(1993年以後)基本上都支援SMART(Self Monitoring Analysis and Reporting Technology)自動檢測分析及報告技術。SMART技術可以對硬碟的磁頭單元、碟片電機驅動系統、硬碟內部電路以及碟片表面介質材料等進行監測。當SMART監測並分析出硬碟可能出現問題時,會及時向使用者警示以避免電腦資料受損失。SMART技術必須在主板支援的前提下才能發生作用,而且SMART技術也不能保證能預報所有可能發生的硬碟故障。SMART(SFF-8035i)是硬碟生產商們建立的一個工業標準。這個標準就是在硬碟上儲存一個跟執行情況、可靠程度、讀找錯誤率等屬性的表格。所有屬性都有一個1byte(大小範圍1-253)的標準化值,還包含另一個1byte的關鍵階段值。如果屬性工作表格內某個資料接近小於或達到關鍵階段值,表明硬碟工作不正常了。
Smartmontools是一個Linux下硬碟偵查工具,首頁為http://smartmontools.sourceforge.net,下載連結:ftp://fr2.rpmfind.net/linux/sourceforge/smartmontools/smartmontools-5.1-18.i386.rpm。
1.軟體安裝:
rpm-ivh/smartmontools-5.1-18.i386.rpm
軟體安裝後會在/usr/local/ 目錄下產生程式:smartctl,先檢測硬碟和主板是否支援SMART技術(見圖2)。
smartctl -i /dev/hda7
圖2 檢測硬碟是否支援SMART
圖2顯示筆者的硬碟支援SMART,型號是:ST320414A(希捷的酷魚III,72000RPM,2兆緩衝)。
2.全面檢測硬碟
運行以下硬碟檢測命令:
smartctl -A /dev/hda7
圖3 硬碟物理邏輯狀態
圖3是檢測到的硬碟資訊,其顯示的資訊根據你的硬碟廠商不同而不同,其中1-202行代表硬碟的不同物理效能,縱列代表硬碟的邏輯狀態。
FLAG是標記,標準數值(VALUE)應當小於或等於關索引值(THRESH)。WHEN_FAILED 代表錯誤資訊,圖3中的WHEN_FAILED縱行是空行,說明硬碟沒有故障。如果WHEN_FAILED顯示數字,表明硬碟磁軌可能有比較大的壞道。
Smartctl有十幾個參數,詳細情況可以下面的命令查看:
smartctl --help
3.進階應用程式
我們可以用crontab命令實現每天定時的掃描:
(1)首先建立一個檔案,檔案名稱Linuxect(名稱自己設定):
#crontab -e
(2) 檔案內容:
05 16 * * 5 smartctl -A /dev/hda7
用vi編輯後存檔退出。使用crontab命令添加到工作清單中:
#crontab Linuxect
這樣系統內所有使用者在每個星期五的16點05分會自動進行掃描。
記憶體檢測
通常我們會覺得記憶體出錯損壞的幾率不大,並且認為如果記憶體壞了,那麼它是不可能通過主板BIOS的開機自我測試 (POST)程式的。事實上這個自檢程式的功能很少,而且只是檢測容量速度而已,許多記憶體出錯的問題並不能檢測出來。如果你在運行程式時不時有某個程式莫名其妙地失去響應;開啟檔案時偶爾提示檔案損壞,但稍後開啟又沒問題……那你應該考慮檢測一下你的記憶體了。
1.使用Linux命令檢測
(1)在命令列使用“Free”命令可以監控記憶體使用量情況
#free total used free shared buffers cachedMem: 256024 192284 63740 0 10676 101004-/+ buffers/cache: 80604 175420Swap: 522072 0 522072
|
上面給出了一個256MB的RAM和512MB交換空間的系統情況。
(2)使甩vmstat命令監視虛擬記憶體使用方式:
# vmstatprocs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 63692 10704 101008 0 0 239 42 126 105 48 45 7 0
|
Vmstat()命令是一個通用監控程式,是Virtual Meomory Statistics(虛擬記憶體統計)的縮寫。如果使用Vmstat命令的時候沒有使用它的任何命令列參數,你將得到一個一次性的報告。Vmstat命令報諮的主要的活動類型有進程(procs)、記憶體(以KB為單位)、交換分區 (以KB為單位)、來自塊裝置(硬碟)的輸入輸出量、系統中斷(每秒鐘發生的次數)、中央處理單元(CPU)分配給使用者系統和空閑時所分別佔用比例。
2.使用工具軟體檢測
Memtest86是一款免費的記憶體測試軟體,測試準確度比較高,記憶體的隱性問題也能檢查出來。可以到http://www.memtest86.com/頁面下載它的最新3.0版本。
下載連結:http://www.memtest86.com/memtest86-3.0.tar.gz
軟體安裝:
# tar xzvf memtest86-2.5.tar.gz# cd memtest86-2.5# make
|
然後,將一張 3.5 英寸空白磁碟插入到軟碟機,並輸入:
# make install
另外也可以下載http://www.memtest86.com/memtest86-3.0.iso.gz 檔案,解壓後是一個IOS檔案,燒錄到光碟片,再來啟動電腦。
重新啟動電腦,在BIOS中設定用軟碟機啟動即可,軟體運行介面見圖4。
圖4 Memtest86軟體運行介面
圖4中可以看到當前系統所採用的處理器型號:AMD-Duron和頻率:1056,以及CPU的一級緩衝(128k)和二級緩衝(64k),系統實體記憶體的容量(64)和速度(315MB/s)。最後顯示的是主板所採用的晶片集類型。在系統資訊的右側顯示的是測試的進度。“Pass”顯示的是主測試進程完成進度。“Test”顯示的是當前測試專案的完成進度。“Test #1”顯示的是目前的測試專案。“WallTime”顯示測試已經耗費的時間,在這一排資料中“ECC”一欄中,顯示的是當前記憶體是否支援開啟ECC校正功能。“TEST”顯示的是測試的模式,有“標準”和“完全”模式可供選擇。“
設定檢測選項:我們可以單擊“C”鍵開啟Memtest86的設定菜單,接著單擊數字鍵“2”選擇“Test Selection”選項,再單擊數字鍵“3”選擇“All Test”選項開啟完全測試模式(5所示)。
圖5 設定檢測選項
主要的記憶體突發問題(比如“死亡”位)將在幾秒鐘內檢測出來。如果是由特定位元模式觸發的故障,則需要長時間測試才能檢測出來。如果你的記憶體容量比較大,就需要有耐心等待檢測結果。筆者使用的測試記憶體容量是64MB,PC133。使用完全檢測模式使用的時間是24分鐘。
小結
中央處理器、硬碟、記憶體是Linux系統的核心。Linux 負有盛名的特點之一是其非凡的穩定性。如果您的硬體有缺陷或配置不正確,那麼系統內的資料的安全就危險了,所以即時檢測它們的狀態是重要的。