分類彙整: 技術小抄

CentOS 6.x 中把clamav 和 postfix 整合

傳統上都是把 clamav 和 mailscanner 或 amavisd-new 整合後再和postfix 整合。

但是一方面postfix已經能夠擋掉一大堆廣告信了,另一方面不知道為什麼,amavisd與 mailscanner跟CentOS的整合度真的太爛了,三不五時就出現一大堆perl module錯誤,每次都要搞個半死。

所以我這次乾脆不管了,直接把 clamav與 postfix接起來。

作法就是裝起 clamd 與 clamav-milter 

修改一下  /etc/clamav-milter.conf  確認一下 soket 檔案的位置(照說不用修改)

確認一下 /etc/group ,postfix 必須屬於 clamav的群組

 修改 /etc/postfix/main.cf  加上

milter_protocol = 2
smtpd_milters=unix:/var/clamav/clmilter.socket

然後把  clamd clamav-milter postfix都重跑,並且設定為開機自動啟動即可。

繁簡體轉換的問題

這是一個老問題,我們用過很多解法來解,甚至自己做過對照表,最近看到一種比較有效率的作法,利用php的 iconv()函數裡面的 //TRANSLIT//IGNORE 避免沒有對應碼時就中止輸出的問題。

 $word=iconv(‘big5′,’gb2312’,$word);  這樣遇到缺碼就自動停止輸出

  $word=iconv(‘big5′,’gb2312//IGNORE’,$word); 遇到缺碼就保持原輸入碼

  $word=iconv(‘big5′,’gb2312//TRANSLIT’,$word); 遇到缺碼就用替代字(如果有的話)

$word=iconv(‘big5′,’gb2312//TRANSLIT//IGNORE’,$word); 這個最終極,遇到缺碼就用替代字(如果有的話),沒有替代字就保持原輸入碼

 

CentOS 5 與 GPT的硬碟分割

2T以上的硬碟必須用GPT的硬碟分割處理。但是CentOS的 grub 居然沒有辦法支援GTP分割,導致沒辦法安裝開機。

解決方案就是用

 http://www.sysresccd.org

開進去,

把 root paration mount 在 /mnt 裡面,然後

用 grub-install –recheck –root-directory=/mnt /dev/sda 

搞定!

 

可以參考:

 http://www.wensley.org.uk/gpt

製作目錄裡面檔案索引(index.html)的小程式

<?php
if ($argc<=1)
 {
        echo " $argc gen_index.php dir_name Error!\n";
        exit;
 }

  $targetdir=$argv[1];
  echo "target=$targetdir \n";
  $sdp=opendir($targetdir);
  $fp=fopen($targetdir."/index.html","w");
  fwrite($fp,'<html><head><meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>Directory List</title></head><body>’);
  while (false!==($file = readdir($sdp))) {
     if ($file != "." && $file != ".." && $file !=’index.html’) {
        $sd=$targetdir."/".$file;
        if (is_dir($sd))
        {
                system("php gen_index.php ${targetdir}/$file");
                fwrite($fp,iconv(‘utf-8′,’big5′,'<a href="’.$file.’/index.html">’.$file.'</a><br/>’."\n"));
        }
        else
                fwrite($fp,iconv(‘utf-8′,’big5′,'<a href="’.$file.’">’.$file.'</a><br/>’."\n"));
     }
  }
  fwrite($fp,'</body></html>’);
  fclose($fp);
  closedir($sdp);
?>

i7 上 CentOS 5.6的溫度偵測解法

標準的 CentOS 5.x 不能偵測i7  CPU 的溫度,使用以下的手法就可以搞定

yum install lm_sensors
cd /usr/sbin
rm -rf sensors-detect
wget http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
chmod 755 sensors-detect
sensors-detect

全部接受 default

/usr/bin/sensors
就可以取得溫度了