Recent Articles / Archives

變更檔案最後修改時間

如果在 Linux 想想變更檔案的最後修改時間,可以用 touch 指令,格式為 「touch -t 年月日時分秒 檔案」,例如:

touch -t 200507012015.10 readme.txt

以上指令會把檔案 readme.txt 的最後修改時間改為 2005 年 7 月 1 日 20 時 15 分 10 秒。

如果想改成現時的時間,只需輸入 「touch readme.txt」。

December 7, 2007 · Linux / BSD 筆記 · No Comments Yet

Linux 的搜尋技巧

在檔案內搜尋指定文字,search_key 是搜尋字串,/path/to/filename 是檔案名稱:
grep search_key /path/to/filename

功能同上,但不分大小寫:
grep -i search_key /path/to/filename

搜尋檔案:在指定目錄中搜尋檔案,以下是在 /var/www/ 目錄下搜尋 upload.php 的檔案:
find /var/www/ -name upload.php

功能同上,但目標不是檔案,而是目錄:
find /var/www/ -name uploads -type d

還有更多有用的功能,以上只列出較常用的用法。

December 6, 2007 · Linux / BSD 筆記 · No Comments Yet

解決 MySQL 4.1.x 以上的認證問題

因為 MySQL 在 4.1 或以上的版本的認證加密方法更改了,那即是說在 php 程式內即使密碼正確也會連接失敗。解決方法為:

1. 重新編譯 PHP
將 –with-mysql 的選項改為 –with-mysqli=mysql_config_path/mysql_config,其中 mysq_config_path 是 MySQL 的安裝路徑下的 bin 目錄。

2. 修改 my.cnf
打開 /etc/my.cnf,在 "[mysqld]" 下加入一行

old-passwords

然後重啟 MySQL,這樣就會強逼 MySQL 使用舊加密認證。

FreeBSD 開啟 quota 功能

FreeBSD 預設沒有支援 quota 功能,如果需要支援 quota 便要重新編譯 kernel。以下是巨體實現方法:

cd /usr/src/sys/i386/conf
vi GENERIC

加上 options QUOTA(中間分隔的是 TAB 而非空白鍵)。

然後執行:

config GENERIC
cd ../../compile/GENERIC
make depend all install

編譯完成後,修改 /etc/fstab 檔案,例如要在 /home 這個分割區做空間管理,在 /home 的那行將 "rw" 改成 "rw,userquota"。

然後修改 /etc/rc.config,加入:

check_quotas="YES"

完成後輸入 "sync;sync;reboot" 重新開機。

在第一次執行 quota 時,請先執行以下指令:

cd /home
quotacheck -avug

最後建立 /usr/local/etc/rc.d/quota_on.sh 檔案,讓開機時自動執行 quota,以下是 /usr/local/etc/rc.d/quota_on.sh 的內容:

#!/bin/sh
# Check quota and then turn quota on.
if [ -x /sbin/quotacheck ]
then
echo "Checking quotas. This may take some time."
/sbin/quotacheck -avug
echo " Done."
fi

if [ -x /usr/sbin/quotaon ]
then
echo "Turning on quota."
/usr/sbin/quotaon -avug
fi

December 5, 2007 · Linux / BSD 筆記 · No Comments Yet

設定 Linux 對 Ping 指令沒有回應

在 linux 裏,如果想對 ping 指令沒有反應,其實是忽略 icmp 封包,可以用以下指令實現:
echo 1 < /proc/sys/net/ipv4/icmp_echo_ignore_all

想回復原來設定可以用:
echo 0 < /proc/sys/net/ipv4/icmp_echo_ignore_all

December 4, 2007 · Linux / BSD 筆記 · No Comments Yet


OpenOffice.org 加速啟動時間

OpenOffice.org 是目前在 Linux 下的辦公室套件主流,但它的啟動實在太慢了,以下是 OpenOffice.org 加快啟動時間的技巧,我在 Ubuntu 7.10 上裡試驗後十分明顯,而只需更改 OpenOffice.org Word Processor,其他 OpenOffice.org 軟件也會自動生效。

首先開啟 OpenOffice.org Word Processor,然後按 "工具" -> "選項"。

然後選擇 "記憶體",並根據以下設定:

– 復原 步數: 20
– 圖形記憶體 用於 OpenOffice.org: 20
– 物件數量: 20
– 選取 systray 快速啟動

然後選擇左邊的 "Java",並取消選取 "Use a Java runtime environment"。最後按 "確定"。現在可以嘗試開啟其他 OpenOffice.org 軟件,會發覺啟動速度加速了不少。

December 4, 2007 · Linux / BSD 筆記 · No Comments Yet

透過 shell script 發送 email

如果想用 shell script 發送郵件,可以用 mail 實現:

# echo "email content" | mail -s "email subject" you@emaildomain

以上語句會發送一封標題為 "email subject" 的電郵到 you@emaildomain,其中 "email content" 為電郵內容。

以下簡單的兩行 shell script 便會將檔案系統使用量,透過電郵發送給指定的電郵信箱:

#!/bin/sh
/bin/df -h | /usr/bin/mail -s "server capacity" you@emaildomain
November 6, 2007 · Linux / BSD 筆記 · No Comments Yet

Ubuntu 7.10 兩個微調

轉用 gcin 輸入法
一直也不太喜歡用 SCIM,首先是 SCIM 不太穩定,而且它和 Firefox 有衝突,在 Ubuntu 7.10 轉用 gcin 也很簡單,只要輸入兩個指令便完成:

$ sudo apt-get install gcin
$ im-switch -s gcin

然後按 Ctrl + Alt + Backspace 組合鍵重新啟動 X 便完成了。

vi 的方向鍵及 backspace 鍵
在 Ubuntu 使用 vi 的 insert 模式時,按下方向鍵會出現 ABCD,而 backspace 鍵則不會刪除字符,解決方法是在 home directory 建立 .vimrc 檔案,並加入以下內容:

set nocompatible
set backspace=2

November 5, 2007 · Linux / BSD 筆記 · No Comments Yet

升級 Ubuntu 7.10 Gutsy Gibbon

今天將 laptop 升級為 Ubuntu 7.10,新版本的開發代號為 Gutsy Gibbon,照例 Ubuntu 的開發團隊也沒有令我們失望。主要更新包括 Ubuntu 7.10 將 Linux kernel 更新為 2.6.22,桌面環境建構在 X.org 7.2 上,glibc 及 GCC 的版本分別為 2.6 及 4.2。

印象最深刻的是驅動程式的部份,當我安裝好系統後,系統便自動彈出有新的顯示咭驅動程式,跟著指示很快便更新完成,感覺真的很方便。另外用上一個版本當瀏覽一些較多 client side 語言之類的網站時,會出現很慢的情況,不知是 Firefox 還是其他套件的改進,現在瀏覽頁面較複雜的網頁時也很暢順。其他更新包括:

– 預設已經支援 NTFS 寫入檔案系統,不用手動安裝。
– 內建 Compiz 0.6.0 及 Compiz Fusion 0.5.2,可以實現超炫的 3D 桌面效果。
– 使用 Gnome 2.20,OpenOffice.org 2.3,IMP 2.4 RC 3 及即時通訊軟件 Pidgin 2.2.1。

BIND patch: DLZ

有用 BIND 架設 DNS Server 的朋友都應該知道,當加入 zone 及修改 DNS record 後,需要 reload 或重新啟動 Bind 才可以生效。而且 BIND 的 zone 資料是用文字檔儲存,為避免輸入錯誤格式等問題,所以自己管理的 BIND 也是用 script 來加入 zone。

而 DLZ (Dynamically Loadable Zones) 這個 BIND 9 的 patch 正可以解決以上問題,因為它可以讓 BIND 儲存 zone 資料在資料庫內,那麼便可以減低記憶體的用量及重新啟動時間,而我認為最重要的一點是管理上更加容易。雖然坊間有其他 DNS Servers 用資料庫儲存 zone 資料,但大多數也不支援所有 BIND 的功能,只支援基本的功能。

BIND DLZ Home

November 1, 2007 · Linux / BSD 筆記 · No Comments Yet


編譯 MySQL 的 “Linux thread not found” 問題

今日安裝一台新 Server,系統是 RHEL 5,在編譯 MySQL 4.0.x 的時候出現問題:

# ./configure –prefix=/usr/local/mysql
checking “LinuxThreads”… “Not found”
configure: error: This is a linux system and Linuxthreads was not
found. On linux Linuxthreads should be used. Please install Linuxthreads
(or a new glibc) and try again. See the Installation chapter in the
Reference Manual for more information.

看來 MySQL 4.0 不支援新核心使用了 NTPL 這種新的線程,最後用了這個方法解決:

# cp /usr/include/pthread.h /usr/include/pthread.h.bak
# echo ‘/* Linuxthreads */’ >> /usr/include/pthread.h

然後重新編譯及加入 –with-pthread 及 –with-named-thread-lib 兩個參數:

# ./configure –with-pthread –with-named-thread-lib=-lpthread
# make && make install

這樣就可以正常編譯及安裝 MySQL 4.0 了。

October 31, 2007 · Linux / BSD 筆記 · No Comments Yet

.htaccess 實用範例

以下是一些實用的 .htaccess 範例,可以不改動 php.ini 及 httpd.conf 便設定伺服器變數:

關閉 magic_quotes_gpc

# Only if you use PHP
<ifmodule mod_php4.c>
php_flag magic_quotes_gpc off
</ifmodule>

減少 Bandwidth 使用量

# Only if you use PHP
<ifmodule mod_php4.c>
php_value zlib.output_compression 16386
</ifmodule>

變更 scripts 副檔名

AddType application/x-httpd-php .php4

以上語句會將 .php4 當成 PHP 程式編譯。

禁止 .htaccess 開放瀏覽

<files file-name>
order allow,deny
deny from all
</files>

變更預設頁面

DirectoryIndex myhome.htm index.htm index.php

自訂錯誤頁面

ErrorDocument 403 /forbidden.html
ErrorDocument 404 /notfound.html
ErrorDocument 500 /servererror.html

開放/禁止瀏覽目錄

# 禁止
Options All -Indexes
# 開啟
Options +Indexes

October 28, 2007 · Linux / BSD 筆記 · No Comments Yet

Ubuntu 7.10 (Gutsy Gibbon) released

期待已久的 Ubuntu 7.10 已經發佈,以下為下載連結:

The latest releases of Ubuntu 7.10 for desktop and server are available today for download.

Download Ubuntu

DVD image

October 21, 2007 · Linux / BSD 筆記 · No Comments Yet

文字模式發送帶附件電郵

在 Linux/FreeBSD 的文字模式或 shell script 要發送帶有附件的電郵,可以透過 Mutt 實現,Mutt 是一個功能豐富的文字模式電郵軟件。FreeBSD 可以用 ports 安裝:

# cd /usr/ports/mail/mutt
# make install clean

以下是 mutt 的使用方法:

$ mutt -s "Email Subject" -a attachment.tar.gz to@emailaddress.co

它的參數 -s 是郵件標題,-a 是發送的附件。如要同時發送多個附件,只要每個附件使用 -a:

$ mutt -s "Email Subject" -a file1.tar.gz -a file2.tar.gz to@emailaddress.co
October 6, 2007 · Linux / BSD 筆記 · Comments (2)

用 SaneSecurity 過濾詐騙電郵

ClamAV 是十分受歡迎的開源掃毒軟件,尤其應用在配合 email server 過濾病毒電郵,而且病毒定義檔更新也很頻密。而 SaneSecurity 是 ClamAV 的非官方定義檔,為 ClamAV 加入過濾詐騙及釣魚電郵。對於過濾一些難以用 spamassassin rules 過濾的電郵 (例如 pdf 及 圖片垃圾電郵等) 十分有用,以下使用方法:

1. 到 SaneSecurity 網站 下載最新定義檔。
2. 將定義檔解壓到 ClamAV 資料庫目錄,一般會放在:

/var/lib/clamav/
/usr/local/share/clamav/

3. 下載 phish_sigtest,並以附件的方法發送到電郵伺服器內的電郵帳號,以測試過濾 fhishing email 的功能。

September 20, 2007 · Linux / BSD 筆記 · No Comments Yet


« Previous Page  Next Page »