noah: September 2009 Archives

自從裝了Ubuntu後,幾乎每個禮拜,我就會從遠端登入到server然後,下apt-get update/apt-get upgrade作系統更新的動作。
最近呢,愈來愈懶了,幾乎很久沒作更新動作,所以決定一次解決更新的問題。

Linux裡內建有schedule的設定工具稱為cron-table,我喜歡寫好shell script後,並使用 crontab 指令設定到我的 cron-table裡。
如果是以前我的設定方法步驟為:

sudo vi /shell/update-ubuntu.sh    // (shell是我習慣放shell script的資料夾)

在裡面新增以下內容(如果不想清掉下載的archive files,則可以拿掉第四行)
#!/bin/sh
apt-get update
apt-get -y dist-upgrade
apt-get clean

然後按「!wq」存檔後離開,並設定權限
sudo chmod 755 /shell/update-ubuntu.sh

接下來設定 cron-table
sudo crontab -e

新增以下內容,(代表:每個星期日的早上4點15分進行更新)
15 4 * * 0 /shell/update-ubuntu.sh
在Windows下,大家也許會習慣用檔案總管拖拉方式或複製、貼上方式進行檔案的拷貝,如果進階一點的,也許會下copy或Xcopy指令的方式來作檔案的拷貝。如果在您的資料夾下,有比較特殊的檔名或太多層的資料夾深度,那這些常見的拷貝也許就會失敗,尤其一次要拷貝很多檔案時,更容易會因單一檔案失敗而造成需重頭來過。

Microsoft在Windows Server 2003 時,出了一個ResourceKit的Tools,裡面大約有126個命令。
在開始使用前,記得先到Microsoft官網下載ResourceKit(link here),下載完成後,直按安裝下載回來的檔案,
安裝程式會自動將ResourceKit的資料夾加入Path環境變數,所以可以馬上使用。
(這個工具包,同時適用於Windows 2000 及 Windows XP 及後面Win32作業系統)


下面我們看看Robocopy這個超強的檔案複製指令。

Robocopy除了是個資料夾/檔案的複製指令外,基本上已經作到了「同步」的功能及滿足「差異化備份」的需求。
舉個例,在 A 資料夾下,有 A1.txt、A2.txt、A3.txt 等三個檔案,透過 robocopy 複製一份到 B 資料夾。
當A1.txt有修改時,只要再次透過 robocopy 即可同步到 B ,並且不用重新複製 A2.txt 及 A3.txt 。
如果 A2.txt 刪除了,也可以透過 robocopy 去作同步的動作,不需自己再手動去刪除 B 資料夾下的 A2.txt。

這樣的同步有什麼好處?在少量檔案時,可能很難發現他的強大,但是如果檔案數是幾千、幾萬個時,且需要固定時間的備份到另一個地方(如備份硬碟),這時候robocopy的「差異化備份」就可以派上用場,對整體備份而言,提昇不少效能。

如果需求就是差異化備份,那常用的參數為:
robocopy  來源  目的  /e  /xo  /purge
/e :代表複製子資料夾,含空的資料夾
/xo :排除較舊的檔案,意思是來源端沒有比目的端新時,就不複製(差異化備份,很重要的參數)
/purge :刪除來源中,不再存在的資料夾或檔案(這個也是差異化備份,很重要的參數)
麻煩的WindowsXP,分割FAT32時,最大容量限制只有32GB,當有需要分割超過32GB時,則只能透過其他工具的應用。
早期DOS還很流行時,大概會使用SPFDisk來作切割,然後現在使用Windows XP時,使用SPFDisk作切割卻不是那麼方便。

SwissKnife是由CompuApps公司所開發的軟體,可以輕易切割FAT16、FAT32及NTFS檔案系統,完全不受限於32GB的問題。
SwissKnife同時支援內置及外接的Device,目前最大支援到2048GB(2TB)。
只要到官網下載,安裝完成後,直接執行即可使用此軟體。

Awstats是一套簡單而強大的訪客分析統計工具,最重要的是一套Freeware。
於Ubuntu安裝Awstats是一件很輕鬆但又有點麻煩的事。Ubuntu本身有提供套件版的Awstats可以直接安裝,但仍有一些煩人的設定需要處理。下面我們就來看看如何搞定Awstats。

首頁需要確定您的環境擁有 perl 的執行程式。如果沒有 perl 沒關係,只要下「apt-get install perl」即可安裝完成您的 perl 。


接下來就照以下的步驟即可設定好awstats
一、安裝Awstats,指令「apt-get install awstats」。
安裝完成後,進到「/etc/awstats」資料夾,並且複製 config 檔案。指令:
cd /etc/awstats
cp awstats.conf awstats.www.mydomain.tw.conf      (假設要分析的站台為 www.mydomain.tw )


二、編輯config內容:
vi awstats.www.mydomain.tw.conf

修改如下:
1.找到「LogFile=」,修改Apache的Log位置,改成如下範例
LogFile="/var/log/apache2/access.log"

2.找到「LogForum=」,預設為4,請改成 1,
LogFormat=1
1 的意思為 Apache or Lotus Notes/Domino native combined log format (NCSA combined/XLF/ELF log format)
(如果apahce log 的格式沒手動調整過,就需要改成 1,不然分析上,會有些東西分析不了

3.設定網址
SiteDomain="www.mydomain.tw"      (假設要分析的站台為 www.mydomain.tw )
4.為了讓關鍵字能正常顯示,則修改 #LoadPlugin="decodeutfkeys" ,將前面的註解拿掉(#號)
LoadPlugin="decodeutfkeys"
會寫Web Application的人都知道,除非瀏覽器有設定特高的隱私權,否則默認的狀況下可以自由使用Cookie的功能。
但如果頁面使用了iframe,且iframe與主頁面(parent Page)是在不同網域,那在IE6以後的瀏覽器預設是禁止使用Cookie的。
因為Microsoft於IE加了所謂的「P3P為基礎的隱私權保護功能」。所以需動點手腳才能使用iframe下的跨網域Cookie。

方法很簡單:
第一個方法是在IE的隱私權裡將他調低,調到最低,但這種方法有點Stupid,所以推薦第二個方法
第二個方法則從iframe的程式著手,加入適當的Http-Header宣告或則在Web Server 加入宣告。
      Header 內容寫入:變數為:P3P,值為:CP=CP=CAO PSA OUR
      範例如:
      Response.AddHeader("P3P", "CP=CP=CAO PSA OUR");      // asp 語言
      <cfheader name="P3P" value="CP=CAO PSA OUR">      // Coldfusion語言


參考資料:
http://support.microsoft.com/kb/323752/zh-tw
http://it.sohu.com/20010326/file/0086,643,100078.html
http://blog.zol.com.cn/814/article_813888.html

最近為了作滷味要加什麼糖才好,困惑我好久,有些食譜寫加砂糖,也有些是加冰糖。
搞了半天還是不太會分辨,所以決定好好研究一下常見糖的差異。

上網努力爬文及整理後發現,對「食材」來說,砂糖或冰糖其實差異不大,所以除非非常講究口感,否則一般而言加砂糖即可。
至於砂糖與冰糖的差異在那?嚴格來說冰糖是由砂糖高溫提煉而來的。所以冰糖比砂糖純度更高(少了一些礦物質),口感自然會更純。

以前常會聽老人家說,冰糖有特殊的「作用」(台語,可譯成:效果),找了一下本草綱目,並無記載(冰糖似乎是近代的產品),
維基百科裡提到的中藥效為:中醫認為冰糖具有潤肺止咳清痰去火的作用。同時也是泡製藥酒、燉煮補品的輔料 (link here) 。