Archive for the ‘Linux’ Category

從 Apache Log 中找出連線前 10 名的 IP

星期二, 六月 9th, 2009

語法如下:

cat httpd-access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -
10

如果要查前 20 名或前 n 名,只要將上述語法中的 10 換成想要的數字便可。

PUD Linux 無法進入 X window

星期日, 六月 7th, 2009

在 VMware 下跑 PUD Linux,常會進不了 X window,在 PUD 的論壇上有網友提出解決方法,原文請見: pud-0.4.8.iso on vmware server 1.0.4 無法進入 Xwindow

操作方式備註如下:
1. 以 PUD Linux 開機之後,最後會跳回黑底白字的 console 畫面。
2. 此時輸入 sudo vim /etc/X11/xorg.conf 進入編輯畫面。
3. 按鍵盤上的上下鍵,將游標移到第 38 行附近,便可以看到 Option "CorePointer" 字樣。
4. 將游標移到該行的行首,按下鍵盤上的字母「i」,輸入一個「#」字號,以便將該行註解掉。
5. 按下「Esc」鍵,此時游漂會跳到畫面最下方,接著再輸入「wq」兩個英文字母,便可存檔、並離開編輯器。
6. 輸入 startx ,便可進入 X window。

[摘錄] UNIX 記憶體管理

星期四, 五月 28th, 2009

摘錄自: Unix 系統管理 Essential System Administration 2/e, by Æleen Frisch. Copyright 1998 O’Reilly Media Inc., 957-98213-4-8. 第七章。

  • 要使系統執行順暢,記憶體不但要足夠應付大工作,還要能讓數量龐大的日常小工作能夠同時進行。
  • swapping: 置換, 是把整個行程寫入磁碟中,再將其記憶體釋出。當要繼續執行被置換完畢(swapped-out)的行程時,必須將其重新載入記憶體。
  • pagging: 切頁, 是將行程記憶體內容的某些節區(單位為 page)搬到磁碟上,以釋放部分記憶體給需要的行程使用。
  • page fault: 切頁錯誤, 是指當行程要使用記憶體某部分的內容時,該部分的內容尚未由磁碟讀出並置於記憶體中。
  • 在虛擬記憶體系統上,除非記憶體嚴重不足,否則很少會進做置換的動作。
  • 虛擬記憶體的原理是「並非所有記憶體都會同時使用」,因此系統內部可以把虛擬位址對應到實體記憶體位址;當行程要用到目前不在記憶體內程式碼和資料時,kernel 會把需要的部分從磁碟上載入記憶體(即進行切頁動作),可能還會把該行程其他不需使用的 page 置換掉。
  • 若系統實體記憶體不足以讓所有執行中的行程使用時,切頁就會有問題。在這種情形下,kernel 會動態分配記憶體:若某行程要讀進一個新 page,但沒有可用或可重複使用的 page 時,作業系統會從其他行程偷來一個 page 以供使用。被偷的 page 叫做被切出(page out),其內容會被寫在磁碟上的切頁區。若某行程再度需要該 page,其內容會被切回來(page in),通常會強迫使用其他的 page 空間。在這種情況下,CPU 會花很多時間在處理切頁錯誤上,因此會讓行程執行的很沒有效率。最嚴重的狀況稱之為「thrashing」,系統所有的時間都在處理虛擬記憶體,而不會進行任何實際的工作。

僅節錄個人覺得重要之處,全文請參見原書。

用 host -al 或 dig axfr 檢查 DNS 設定

星期三, 十月 10th, 2007

基於安全考量, DNS server 不應該讓一般人取得網域的完整設定,也就是不能讓人隨隨便便就能看到整份 zone file。
而取得整份 zone file 的指令,可以用

host -al domain [server]

dig @server domain axfr

其中 domain 是網域名稱,server 是 DNS server。

當 DNS 設定完成後,最好利用上述指令測試一下,看其他未經授權的伺服器能否取得整份 zone 檔,
如果能夠任意取得,就要再進一步檢查 DNS server 的設定是否有誤。

AWStats 用後感想

星期五, 七月 6th, 2007

AWStats 是 Advanced Web Statistics 的簡稱,是用 Perl 撰寫的記錄檔分析程式,
可以分析網站伺服器、檔案伺服器、郵件伺服器以及串流伺服器的記錄檔,產生統計報表。
由於程式是以 Perl 撰寫,因此只要系統有裝 Perl,就能夠執行。

照著網友的安裝說明,以及官方網站的文件,不一會兒功夫就能看到伺服器的統計報表:
1. 安裝AWStats 6.1@「酷!學園」精華區:http://phorum.study-area.org/viewtopic.php?t=24569
2. AWStats 官方說明檔:http://awstats.sourceforge.net/docs/awstats.pdf

實際應用上,雖說 AWStats 主要是用來分析網站伺服器,但與 Google Analytics 相較之下,明顯遜色不少。
但因為 AWStats 是分析 Apache 的 Log 檔,比起純以 Javascript 的 Google Analytics 可以多看到一些東西,像是「HTTP 狀態碼」和「找不到的網頁」的統計,就可以知道網站是不是有連結沒設定好或是是否遭人攻擊等。

至於檔案伺服器與郵件伺服器,用 AWStats 來分析記錄檔倒是挺方便的,
照著上述的教學文件,大約只花十多分鐘就看到郵件伺服器的分析報表。

讓 joe 顯示中文

星期日, 六月 10th, 2007

要讓 joe 可以顯示中文,就要將 joe 的 asis 打開。
預設時關閉的,只要將設定檔的 -asis 前面的空白刪掉就可以開啟。

joe 設定檔在
FreeBSD: /usr/local/lib/joerc
Ubuntu: /etc/joe/joerc

如果使用者家目錄有 .joerc 檔,那麼就要改家目錄下的 .joerc。

PUD Linux 製作 iso 檔的指令

星期二, 六月 5th, 2007

今天重新做 iso 竟然想不起來之前下的指令
還好 history 沒有清掉,沒花多少功夫就找到了。
不過為了避免日後忘記,還是記錄一下好了。

在 build-livecd.pl 目錄下輸入以下指令:

perl build-livecd.pl 2>&1 | tee -a /var/log/livecd.log

主要是 2>&1 | tee -a 這段常記不住 *^_^*

PUD Linux 的 ADSL 撥接設定

星期二, 六月 5th, 2007

備註一下 PUD Linux 上 ADSL 撥接的帳號密碼放在哪裡
免得日後要改時漏掉

  • config/etc/ppp/chap-secrets
  • config/etc/ppp/pap-secrets
  • config/etc/ppp/peers/dsl-provider

就這三個檔案要改,前兩個要 ADSL 的帳號跟密碼,最後一個只要帳號就可以了。

MySQL Server 啟動、停止、重開 @Ubuntu 7.04

星期四, 五月 24th, 2007

記錄一下指令,免得搞混

啟動: /etc/rc.d/mysql start
停止: /etc/rc.d/mysql stop
重開: /etc/rc.d/mysql restart

PUD GNU/Linux 的 numlockx 設定

星期五, 五月 18th, 2007

用 PUD v0.4.7 做好的 Live CD 拿到 IBM R51e 上使用時,發現 U、I、O 這幾個鍵按下去變成數字,要打 sudo 變成 s4d6。仔細瞧瞧發現原來是 NumLock 是 on 的關係。

一般 Linux 開機時 NumLock 是 off,但 PUD GNU/Linux 有安裝 numlockx 這個套件,因此進入 X 之後就自動把 NumLock 設定成 on。
PUD v0.4.7 的 numlockx 的設定放在:
config/etc/rc.local
post-config/etc/X11/xinit/xinitrc* (所有 xinitrc 開頭的檔案)

config/etc/rc.local 是針對 PC104 的鍵盤,自動設定 NumLock 為 on,而這段程式的設定方式是去調整 /etc/X11/xinit/xinitrc 裡的 numlockx 設定。

post-config/etc/X11/xinit/xinitrc* 裡的設定,就是簡單地
numlockx on &
前面提到的 rc.local 就是將這裡的 numlockx on & 置換成 numlockx off & (如果不是 PC104 鍵盤的話)

因此如果要將 numlockx 關掉,在製作 Live CD 時,就把這些 xinitrc 裡的 numlockx on & 改成
numlockx off &
或是直接註解掉就可以了
#numlockx on &