在有使用 Software RAID 的情況下重新安裝 GRUB 的方式

前天公司有一台 Linux 出問題,中午的時候莫名的當機,請機房重開機後發現畫面就只出現 "GRUB" 四個字,然後一動也不動的,不得已只好殺到內湖機房趕快緊急檢修。

首先,我先檢查 BIOS 設定沒問題,然後再用 Live CD 開機成功後,原本的硬碟也都可以 mount 上去,所以可見原本的硬碟應該都沒壞,只是 GRUB 不知道什麼原因壞掉了,所以我接下來就是要嘗試重新安裝 GRUB 恢復開機功能。

我使用 grub-install 安裝的結果是失敗的(因為我用的是 SATA 的硬碟,所以設備路徑是 /dev/sda ):

# grub-install /dev/sda
/dev/sda does not have any corresponding BIOS drive.

然後再使用 --recheck 參數還是一樣失敗:

# grub-install --recheck /dev/sda
Probing devices to guess BIOS drives. This may take a long time.
/dev/sda does not have any corresponding BIOS drive.

大概試了一個小時左右,就是無法成功安裝 GRUB。

最後,我在這裡找到了解答,嘗試用 grub 工具直接將我這台主機上使用 Software RAID 1 的兩顆硬碟分別寫入 GRUB:

# grub --batch --device-map=/boot/grub/device.map --config-file=/boot/grub/grub.conf --no-floppy   
grub> root (hd0,0)
grub> setup (hd0)
grub> root (hd1,0)
grub> setup (hd1)
grub> quit

備註:setup 指令就是將 GRUB 寫入硬碟的 MBR 區段,讓硬碟能開機,因為我使用 RAID 1 所以兩顆硬碟都要寫入才行。

寫入 GRUB 到兩顆硬碟,並重開機後,我的 Linux 終於能夠開機了!^_^

  

此文章由 will 發表於 2008/7/6 下午 09:16:24

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Linux | 系統管理

標籤: , ,

收藏:

使用 AWStats 分析 IIS Log 要注意分析 Log 的時間點

因為我的 Blog 有使用 AWStats 進行流量分析,但奇怪的是每天的凌晨 6 點到 7 點的流量都是 0,而且是每個月都出現一樣的狀況(如下圖示):

我的 Blog 有使用 AWStats 進行流量分析,但奇怪的是每天的凌晨 6 點到 7 點的流量都是 0

我一開始曾經嘗試在凌晨 1:00 的時候進行 Log 分析,但卻感覺每天的統計還是會漏資料,之後我改成每天凌晨 5:30 進行流量的分析,過了一段時間還是覺得有漏資料,因此感覺很奇怪,所以我就決定要將問題找出,幸運的,我也找出問題了。

基本上,預設 IIS 每天都會產生一份 Log,如下圖示:

image

這個問題的癥結點就在於「IIS 何時才會產生下一天的 Log 檔」,經我詳細的研究觀察後發現,原來 IIS 的 Log 的分段點是在格林威治時區(GMT) 00:00 時分段的,由於我們在 Windows Server 2003 中設定的時區是 GMT +0800,所以正確的分段點是在台灣時間的早上 8:00 整會產生新一天的 Log 檔!

問題找到之後,我就將執行流量分析的排程時間改成早上 8:30 進行前一天的 Log 分析,分析的結果就很正確了。

  

此文章由 will 發表於 2008/7/4 下午 12:15:34

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: IIS | 系統管理

標籤: , ,

收藏:

調整 IIS 將輸出的內容全部壓縮

有個很簡單的方式可以將透過 IIS 6.0 輸出的網頁內容(包括靜態檔案與程式輸出的內容)全部都自動壓縮過,讓整體網頁的下載速度加快,也節省頻寬耗用。

首先,先開啟「網際網路資訊服務 (IIS) 管理員」,然後在「網站」節點按下滑鼠右鍵,選取「內容(R)」:

 先開啟「網際網路資訊服務 (IIS) 管理員」,然後在「網站」節點按下滑鼠右鍵,選取「內容(R)」

然後切換到「服務」頁籤(Tab)後,勾選 HTTP 壓縮選項中的「壓縮應用程式檔案」與「壓縮靜態檔案」即可。另外有個「暫時目錄」欄位,可以設定這些壓縮的暫存檔要存放在哪個目錄下,如果你 C 磁碟機不夠用的話,可以重新指定一個目錄用來存放這些暫時存放的檔案。

image

輸出的壓縮預設都是使用 gzip 壓縮格式,而大部分的瀏覽器都是可以支援的,相容性沒有多大的疑慮。

  

此文章由 will 發表於 2008/7/3 下午 07:50:12

永久連結 | 評論 (3) | 此文章的RSSRSS comment feed |

分類: IIS | 系統管理

標籤: ,

收藏:

解說 FTP Protocol 的運作原理

我想 FTP 可能有人每天都在用,但卻很少人知道 FTP 運作原理,更尤其是在連不上 FTP 的時候常常都是一頭霧水,在問別人時也可能會發現有人可以連、有人不能連,有的人連的上可以登入成功但是卻無法列出檔案清單,種種的問題只要能了解 FTP 的運作原理就可以很輕易的了解問題出在哪裡,進而解決問題。

基本觀念

使用 FTP 傳輸時,至少會使用到兩個 Port 來建立連線通道:

  • 一個為指令通道(Command Channel),預設使用 Port 21 建立連線,用來傳輸 FTP 指令,例如:列出檔案清單(LIST)、變更目錄(CWD)、取得目前的目錄(PWD)、......等。
  • 另一個為資料通道(DATA Channel),預設使用 Port 20,但是會因 FTP Client 選擇使用的「連線模式」不同而有所不同。

一般來說,指令通道的連線與下指令都沒有什麼問題,有問題的通常是在資料通道的建立,而資料通道的建立方式是由 FTP Client 所下的指令決定的,以 FileZilla 設定為例(如下圖):

image

FTP Client (e.g. FileZilla) 每次建立連線時都會下 PORT 或 PASV 指令,如下範例:

指令:    PASV
回應:    227 Entering Passive Mode (59,37,124,43,158,251)

而每次下指令傳輸資料時,都會建立一次 data connection,包括取得遠端的檔案清單(LIST)時回傳的檔案列表、下載檔案、或上傳檔案。

連線模式

FTP 的連線模式分兩種:主動模式 ( Active mode ) 與 被動模式 ( Passive mode )

  • 主動模式 ( Active mode )

FTP Client 跟 FTP Server 連線後,會主動利用 PORT 指令提出 DATA Channel 連線的要求,如下:

指令:    PORT 10,18,53,171,17,114
回應:    200 Port command successful.

這裡的 PORT 指令是由 FTP Client 送出的,當需要建立 DATA Channel 時,FTP Server 會主動利用 Server 主機的 Port 20 發出連線到 FTP Client 的主機,而 PORT 指令後的參數說明如下:

  • 前四個數字是 FTP Client 的 IP 位址:10.18.53.171
  • 後兩個數字是 FTP Client 接受連線的 Port 埠號,埠號的計算方式是 (第五個數字 * 256 + 第六個數字),以此範例來說,FTP Client 接受的連線埠號是 17 * 256 + 114 = 4,466

由此可知,如果 FTP Client 處於 NAT 的環境下的話,FTP Server 幾乎無法正常的連線到 FTP Client 的主機,所以現在大部分的連線模式幾乎都建議使用者使用被動模式(Passive mode)。

  • 被動模式 ( Passive mode )

FTP Client 跟 FTP Server 連線後,會主動利用 PASV 指令提出 DATA Channel 連線的要求,如下:

指令:    PASV
回應:    227 Entering Passive Mode (59,37,124,43,158,251)

你可以看到由 FTP Client 送出的 PASV 指令並沒有送出其他的參數,而是在 FTP Server 回應的時候出現了 (59,37,124,43,158,251) 字串,當需要建立 DATA Channel 時,這時就會由 FTP Client 主動連接至 FTP Server 動態開放的 Port 供 FTP Client 連接,其中 (59,37,124,43,158,251) 的說明如下:

  • 前四個數字是 FTP Server 的 IP 位址:59.37.124.43
  • 後兩個數字是 FTP Server 接受連線的 Port 埠號,埠號的計算方式是 (第五個數字 * 256 + 第六個數字),以此範例來說,FTP Server 可接受的連線埠號是 158 * 256 + 251 = 40,699

由此可知,使用被動模式(Passive mode)對 FTP Server 的系統管理員來說,可掌控的部分是比較多的,因為 FTP Server 無法決定使用者是否可使用主動模式連線,但若改使用被動模式連線的話,就幾乎能讓所有人正常的使用 FTP 服務。

其他資訊

  • 在 IIS 的 FTP 服務中,當使用 Passive mode 時,IIS FTP 會自動開啟短暫的 Port 用以建立 DATA Channel 供 FTP Client 連接,IIS 預設會動態使用 Port 1024 ~ 65535 進行 DATA Channel 的連線,若要修改預設的 Port Range 可以參考我昨天的文章:如何調整 IIS FTP 在 Passive mode 使用的 Port Range
  • 在 Linux kernel 中,若有設定 MASQ 的話,Kernel 已經支援「動態開啟 FTP DATA PORT」功能,也就是說在 FTP Client 端在 NAT 內部也能以 Active mode 使用 FTP,這就是為什麼有些人在公司內部使用虛擬 IP 也能夠使用主動模式(Active mode)傳輸檔案的情形。

相關連結

  

此文章由 will 發表於 2008/6/29 下午 11:55:41

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: IIS | Linux | 心得分享 | 系統管理

標籤: ,

收藏:

如何調整 IIS FTP 在 Passive mode 使用的 Port Range

FTP 有兩種傳輸模式,一種是主動模式(Active mode),另一種是被動模式(Passive mode),不過由於許多公司都是透過 IP 分享器上網,所以不是所有人都能透過 Active mode 傳輸檔案。而現在的 Server 環境也通常有架設防火牆阻擋沒在使用的 Ports,這種情況下也會讓 Passive mode 無法正常運作,因為當 FTP Server 在使用 Passive mode 傳輸資料時,Server 端會動態的使用 Port 1024 ~ 65535 來進行檔案的傳輸,這樣就很有可能被防火牆阻擋掉正常的連線。

所以我今天要教各位如何修改 IIS FTP 在 Passive mode 資料傳輸的 Port Range,這樣你就可以設定好 Firewall 讓這些 Port 開放給 FTP Server 使用。由於各版本的 IIS 設定的方式都不一樣,我假設要開放的 Port Range 從 5000 ~ 5100,以下是修改的方法:

IIS 5.0

  • 開啟 regedit.exe
  • 找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\ParametersPassivePortRange
  • 修改內容為 5000-5100 即可。

IIS 6.0

  • 開啟「命令提示字元」
  • 進入 C:\Inetpub\AdminScripts 目錄
  • 執行 adsutil.vbs set /MSFTPSVC/PassivePortRange "5000-5100"
  

此文章由 will 發表於 2008/6/28 下午 11:40:18

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: IIS | 系統管理

標籤: ,

收藏:

介紹好用工具:Process Explorer

Windows Sysinternals 是一套進階的系統管理工具,原本是由 Sysinternals Inc. 這家公司發產的產品(大多是免費的),可能因為做得太好了,在 2006 年 7 月時被微軟併購成為旗下的一套產品,這套產品中最有名的一個工具程式我覺得應該是 Process Explorer,他可以說是【Windows 工作管理員】的進階版,提供的資訊多到數不完,我想應該很多人都用過這個 Process Explorer 工具,但真的瞭解怎麼用的人我想應該不多吧,因為說明文件也沒寫什麼,我個人也沒有完全看的懂上面的所有欄位的真正意義(大概有上千個吧),我今天就說一些我經常在用的一些功能與查看有用資訊的技巧。

1. 程序之間的階層關係 & 判斷執行檔的類型

Process Explorer Screenshot

如上圖,我用紅色框線框起來的地方就是指我的 notepad++.exe 程式是從 WinKey.exe 執行起來的,但你可能會想,如果我將 WinKey.exe 砍掉,會不會也將 notepad++.exe 也連帶砍掉呢?其實是不會的,而是 notepad++.exe 會自動拉高到自己為主程序。

另外,你也可以很容易的使用顏色來區別執行檔的類型,其中:

  • 黃色:代表此程式是一個 .NET 的應用程式。例如說我用 Process Explorer 就發現原來 Yahoo!奇摩輸入法 就有支程式是用 .NET 寫成的。
  • 紫色:代表此程式是一個 Pack (包裝) 過的程式,也就是說這個程式本身又被包了一層程式,意思也就是說該程式是被「修改過」的程式,並非為原本的程式喔!通常這種程式有兩種可能:
    1. 中毒的程式:病毒讓你的程式還是可以正常運作,讓你覺得程式沒問題,但是私底下可能「多做了一些事」讓你沒感覺。
    2. 壓縮過程式:知名的 UPX (the Ultimate Packer for eXecutables) 工具程式就是專門用來將你製作出來的執行檔壓縮過,讓你的執行檔變小又能正常執行的工具。
  • 粉紅色:此程式為一個 Windows 服務。

至於其他的顏色所代表的意義,你可以從功能選單的 Options -> Configure Highlighting 查得完整的顏色定義,當然你也可以修改掉,如下圖:

    Process Explorer - Configure Highlighting

2. 查看該程序(Process)到底開啟了哪些檔案或使用到哪些 DLL

 查看該程序(Process)到底開啟了哪些檔案或使用到哪些 DLL

如上圖,你可以點選功能選單的 View -> Show Lower Pane 開啟 Lower Pane(或按下 Ctrl + L 快速鍵)查看程序載入了哪些 DLLs 或開啟了哪些 Handles (目錄, 檔案, 事件, 機碼, 執行緒, ..., etc. )

 Process Explorer - Show Lower Pane

如上圖範例,我按下了 Ctrl + H 開啟 Handles View,你可以看到圖中的 KeyKeyServer.exe 開啟了一些檔案,以上圖為例我選取了 D:\Program Files\Yahoo!\KeyKey\zh-TW\Preference.resources.dll 程式,這時如果你想要刪除這個檔就會被通知「刪除檔案或資料夾發生錯誤」的錯誤訊息(如下圖),如果真的想強制刪除的話,可以在該 File Handle 上按下右鍵選擇 Close Handle 強制關閉這個 Handle,你就可以正常刪除檔案了,不過你原有的程式就很有可能會出錯或中斷執行,我是不太建議這麼做。

刪除檔案或資料夾發生錯誤

3. 查看完整的系統資訊

Process Explorer - System Information

當你按下功能選單的 View -> System Information 或按下 Ctrl + I 快速鍵就可以看到這個完整的系統資訊,有時後我們電腦變慢可能跟 CPU 或 Memory 無關,而是 Disk I/O 過高導致拖慢程式執行的速度,透過這個畫面就可以一目了然你整台主機的運作狀況。

4. 瞭解你的 .NET 應用程式的執行狀態

有在寫 .NET 的人對這裡的技巧可能就會很有興趣了,我以 SharpReader 為例說明如何查看 .NET 相關的資料。我先啟動 SharpReader 應用程式,然後在 Process Explorer 上雙擊 SharpReader.exe 出現 Properties 視窗,然後點選 .NET 頁籤。

在 Process Explorer 上雙擊 SharpReader.exe 出現 Properties 視窗,然後點選 .NET 頁籤

你會看見第一個區塊是 AppDomains,他會列出該程序所建立的所有 AppDomain 清單。下方是 .NET Performance Objects 區塊,這裡你就可以選擇不同的效能物件,用以查看該 .NET 應用程式的各種狀態。

.NET CLR Exceptions

  • # of Exceps Thrown:這個程式總共發生了幾次 Exceptions,當你用 try / catch 捕捉到例外事件時,每捉到一次這邊就會加 1,你要知道 Exception 對效能的影響是很大的,對單機程式來說或許沒什麼差別,但是對多人使用的程式(如:ASP.NET)在人多的時候就會有差別了!
  • Throw To Catch Depth / sec:代表他統計你的程式平均每秒捕捉到深度統計,因為 try / catch 是可以很多層的,我是不太知道算出這個數據有什麼意義,不過應該是數據越高越不好吧!

Process Explorer - .NET CLR Exceptions

.NET CLR Interop

  • # of CCWs:所謂的 CCW 是 COM Callable Wrapper 的縮寫,是指這個 .NET 程序中有幾個物件被封送(Marshaled)成 COM 物件。
  • # of Stubs:代表這個 .NET 程序中有幾個成員(Members)被 Export 到 COM 物件供其他程式使用。
  • # of marshalling:代表這個 .NET 程序中被封送(Marshaled)處理的總數。
  • # of TLB imports / sec:所謂的 TLB 是指 Type Library 的縮寫,也就是平均有多少型別(Type)被匯入此 .NET 程序。
  • # of TLB exports / sec:平均有多少型別(Type)被匯出到 COM 物件。

Process Explorer - .NET CLR Interop

.NET CLR Jit

  • # of Methods Jitted:代表到目前為止有多少方法(Methods)被編譯成機械碼(Machine Code 或 Native Code)。
  • # of IL Bytes Jitted:有多少 MSIL 位元被轉譯成機械碼。
  • Total # of IL Bytes Jitted:總共有多少 MSIL 位元被轉譯成機械碼。
  • Standard Jit Failures:轉譯成機械碼失敗的次數。
  • % Time in Jit:轉譯成機械碼所佔的時間百分比(因為可能有些程式寫了很多動態編譯的程式碼)。

Process Explorer - .NET CLR Jit

.NET CLR Memory

這裡的物件就很重要了,雖然 .NET 有個很棒的自動記憶體管理機制,但並不代表你就可以完全不管,雖然再怎麼亂用也不會發生 memory leak 的問題,但卻很有可能會發生 OutOfMemoryException 例外狀況,或是因為資源回收器(GC, Garbage Collector)頻繁啟動而導致的程式執行效能降低的情況,因為每次資源回收器啟動時都會將程序中所有執行緒(Threads)凍結,以便讓 GC 檢查受管控的堆積(stack)。詳細的 GC 運作機制可參考 大內高手專欄.NET 的自動記憶體管理 文章、.NET Framework記憶體回收機制 文章或 C# 精要 (C# Essentials) 一書,有意想深耕 .NET 領域的人不能不瞭解 GC 的運作機制,當你瞭解之後就看的懂底下這些欄位的定義代表什麼了。

Process Explorer - .NET CLR Memory

其實還有許多其他相關的物件我沒有介紹,老實說我也不是全部都懂,但是等你越瞭解 .NET 的核心,就越能瞭解這些 Counter 所代表的意義。

其他相關連結:

  

此文章由 will 發表於 2008/6/25 下午 03:43:01

永久連結 | 評論 (1) | 此文章的RSSRSS comment feed |

分類: 介紹好用工具 | 系統管理

標籤: ,

收藏:

使用 VS2008 開發 ReportViewer 在部署時的注意事項

我最近用 VS2008 開發了一組報表,但在部署到測試機的時後發生了【無法載入檔案或組件 'Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其相依性的其中之一。 系統找不到指定的檔案。】的錯誤:

'/' 應用程式中發生伺服器錯誤。
--------------------------------------------------------------------------------

組態錯誤 
描述: 處理服務此要求所需的組態檔時發生錯誤。請檢視下列的特定錯誤詳細資訊,並適當修改您的組態檔。 

剖析器錯誤訊息: 無法載入檔案或組件 'Microsoft.ReportViewer.WebForms, Version=9.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其相依性的其中之一。 系統找不到指定的檔案。

image

因為我們在安裝 Visual Studio 2008 時都已經把所有該安裝的元件都安裝好了,所以部署到沒有 Visual Studio 2008 的主機需要額外安裝 ReportViewer 元件才可以使用。

若您是用 VS2008 開發報表的話,安裝檔可到以下網址下載:

若您是用 VS2005 開發報表的話,安裝檔可到以下網址下載:

  

此文章由 will 發表於 2008/6/16 上午 09:47:40

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET | IIS | 系統管理

標籤: , ,

收藏:

如何讓同一個網域設置兩個不同的ASP.NET應用程式

我們最近開發了一個 ASP.NET 2.0 的網站,在開發的時候沒問題,上測試機的時候沒問題,上正式機的時候卻頻頻出狀況,大致的執行環境如下:

  • 開發機(用 ASP.NET Development Server 執行)
    http://localhost:2938/
  • 測試機(用 IIS 6 執行)
    http://mysite.test.com/
  • 正式機(用 IIS 6 執行)
    http://www.myofficalsite.com/app1/

看出差異了吧!因為我們開發的 ASP.NET 網站被安裝在「虛擬目錄」下,而該網站(http://www.myofficalsite.com/)本身就是一個 ASP.NET 2.0 的網站,所以「根目錄的網站(Root Website)」的 Web.config 影響了「虛擬目錄」下的「子網站」的運作,而導致有些控制項被重複載入,或是因為根目錄的網站要載入某些控制項而到了「子網站」時找不到檔案的問題。

我研究了一下找到了解決方案,其實只要加兩行到根目錄網站的 Web.config 即可取消子網站繼承根目錄網站設定,如下:

<location path="." inheritInChildApplications="false">
    <system.web>
    </system.web>
</location>

也就是先開啟根目錄網站的 Web.config 檔案,找到現有的 <system.web> 區段(Section),將整段的最前面加上一行 <location path="." inheritInChildApplications="false"> 標籤,在整段的最後面新增一行 </location> 標籤就可以了,這等於是宣告 ASP.NET 不要將根目錄網站的設定繼承(Inherit)到子網站應用程式(Child Applications)。

這是個很實用的技巧,不過這真的很難找,感覺很少人會討論到這個問題,而我也是之前在看國外 Blog 的時候無意間發現了,最近終於給我用上了。

相關連結

  

此文章由 will 發表於 2008/6/15 下午 12:46:03

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: ASP.NET | IIS | 系統管理

標籤: ,

收藏:

解決 IIS Admin Service 無法啟動的問題

今天突然有一台主機的 IIS Admin Service 無法啟動,導致無法使用 IIS 管理員管理網站,當我嘗試使用 net start iisadmin 啟動時,也無法正常啟動。

C:\Documents and Settings\Administrator>net start iisadmin
IIS Admin Service 服務正在啟動 .
IIS Admin Service 服務無法啟動。 

發生跟服務有關的錯誤: 2147549465. 

詳細資料,請輸入 NET HELPMSG 3547。

而我最後的解決方法就是先開啟「Windows 工作管理員」將 inetinfo.exe 這支 Process 強制結束,然後再下 iisreset 指令重新啟動 IIS 就搞定了。

參考網址

  

此文章由 will 發表於 2008/6/14 下午 02:26:32

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: IIS | 系統管理

標籤:

收藏:

Ubuntu 8.04 設定 Mail Filtering 的注意事項

最近在看 Ubuntu 線上手冊Mail Filtering 章節,這文章寫的真好,淺顯易懂,以前在設定 Postfix, Amavisd-new, Spamassassin, ClamAV 的時候,都要看一堆文件才安裝的起來,而現在都有人整理好標準作業流程(SOP)了。

我原本想說一步一步照著安裝、設定就會成功的,結果卻發生問題,我從 /var/log/mail.info 查出來的訊息是:

Jun 12 10:04:34 ubuntu804 postfix/smtpd[4705]: connect from unknown[10.0.0.29]
Jun 12 10:04:52 ubuntu804 postfix/smtpd[4705]: 90F9815E27B: client=unknown[10.0.0.29]
Jun 12 10:05:02 ubuntu804 postfix/cleanup[4710]: 90F9815E27B: message-id=<20080612020452.90F9815E27B@ubuntu804>
Jun 12 10:05:02 ubuntu804 postfix/qmgr[4703]: 90F9815E27B: from=<testaccount@yahoo.com>, size=356, nrcpt=1 (queue active)
Jun 12 10:05:02 ubuntu804 amavis[4637]: (04637-03) (!!)ask_av (ClamAV-clamd) FAILED - unexpected result: /var/lib/amavis/tmp/amavis-20080612T100502-04637/parts: lstat() failed. ERROR\n
Jun 12 10:05:02 ubuntu804 amavis[4637]: (04637-03) (!!)WARN: all primary virus scanners failed, considering backups
Jun 12 10:05:02 ubuntu804 amavis[4637]: (04637-03) (!!)TROUBLE in check_mail: virus_scan FAILED: virus_scan: ALL VIRUS SCANNERS FAILED:
Jun 12 10:05:02 ubuntu804 amavis[4637]: (04637-03) (!)PRESERVING EVIDENCE in /var/lib/amavis/tmp/amavis-20080612T100502-04637
Jun 12 10:05:02 ubuntu804 postfix/smtp[4711]: 90F9815E27B: to=<test@test.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=17, delays=17/0.01/0.01/0.1, dsn=4.5.0, status=deferred (host 127.0.0.1[127.0.0.1] said: 451 4.5.0 ERROR in processing, id=04637-03, virus_scan FAILED: virus_scan: ALL VIRUS SCANNERS FAILED:  (in reply to end of DATA command))
Jun 12 10:05:04 ubuntu804 postfix/smtpd[4705]: disconnect from unknown[10.0.0.29]

在文件的 Configuration 小節的 ClamAV 部分有提到要將 amavis 使用者加入到 clamav 群組:

sudo adduser amavis clamav

不過好像也要將 clamav 使用者加入到 amavis 群組才能正常運作,不知道是文件寫反了?還是少寫了這一段?

反正最後只要多下個指令將 clamav 使用者加入到 amavis 群組就可以了:

sudo adduser clamav amavis

最後,還需要重新啟動 ClamAV 與 Amavis-new 服務才會生效:

/etc/init.d/clamav-daemon restart
/etc/init.d/amavis restart

不知道這個問題有沒有人可以反應給 Ubuntu 團隊知道的?

  

此文章由 will 發表於 2008/6/12 上午 10:43:35

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Linux | 系統管理

標籤: , ,

收藏: