2008年10月28日 星期二

quote and unquote 應用


#!/bin/python
#coding: utf-8
# -*- coding: utf-8 -*-
import urllib

str = "測試utf8 編解碼"
str_en = urllib.quote(str).encode('utf-8')
print str_en
print urllib.unquote(str_en)
codeing 指定本文編碼

其他應用
from urllib import quote, unquote

input = u"http://test.net/~admin"
input = input.encode('utf8')
print quote(input) # http%3A//test.net/%7Eadmin
print quote(input, '') # http%3A%2F%2Ftest.net%2F%7Eadmin
print quote(input, '~/') # http%3A//test.net/~admin

2008年10月22日 星期三

取得使用者最後登入日期及密碼最後更改日期

last 使用者名稱 | head -n 1

chage -l 使用者名稱

2008年8月14日 星期四

URL rewrite

今日有人問, 有沒有辦法將某個流量大的用戶把他的網頁導至某個警告的網頁. 搜尋了一下, 發現可以用以下幾個方式實現:

1. proxy, 在squid 中 url_rewrite_program
http://www.cs.nctu.edu.tw/~chwong/course/netadm-2007/slide/10_Web%20FTP%20&%20Proxy.ppt
2. Apache 中的 rewrite modules
http://phorum.study-area.org/index.php?PHPSESSID=08cb468163f6235085b7a319eaffa70b&topic=51611.msg264089#msg264089
3. iptables 不過要搭配以上二種才行, 不知可不可以直接修改封包內容.

2008年6月10日 星期二

Installation google gadgets

Operation System: Ubuntu 8.04
file: google-gadgets-for-linux-0.9.2.tar.gz
download link: http://code.google.com/p/google-gadgets-for-linux/

sudo apt-get install libtool automake autoconf libxul-dev libghc6-mozembed-dev libcurl4-gnutls-dev libxml2-dev zlib1g-dev xulrunner xulrunner-1.9-dev libgtk2.0-dev libcairo2-dev libdbus-1-dev libdbus-glib-1-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libqt4-dev

xulrunner-1.9-dev 若有安裝過xulrunner-lib 會出現衡突,可不安裝
libqt4-dev 和 libgtk2.0-dev 可只選一安裝

./configure --prefix=/usr
make
sudo make install

If sucessful, type ggl-gtk in execute window (ALT+F2)

2008年6月5日 星期四

Linux 下compiler 一覽

Linux 下compiler 一覽


CC++F77F90
GNUgccg++f77N/A
PGIpgccpgCCpgf77pgf90
Intel i368icciccifcifc
Intel x86_64ecceccefcefc

What is MPICH

What is MPICH

MPI(Message Passing Interface) 為一種訊息傳遞標準, 提供一個可靠的傳遞介面, 讓各個node 作資料交換, 主要應用在異質網路叢集電腦系統上。 MPICH 是MPI-1 標準的實作, 包含了MPI 函式庫及編譯環境。

編譯及安裝

目前最新版本為 1.2.7p1, 可以在下方的網頁上找到
http://www-unix.mcs.anl.gov/mpi/mpich1/

作業系統以Linux 為主, MPICH 也有Windows 版本可以在下載網頁上找到。而compiler 以Linux 環境下常見的gcc 為主。

tar zxf mpich.tar.gz
cd mpich-1.2.7p1
./configure --prefix=/opt/mpich/gnu -rsh=ssh
make && make install

Compile MPI program
/opt/mpich/gnu/bin/mpicc -o hello hello.c

2008年5月20日 星期二

Linux 啟動服務管理

ntsysv

Redhat like 的OS 下, 一個用來管理開機時所要啟動的服務的程式 ntsysv.
其實就是控制/etc/rc 開機要啟動或關閉哪些服務一個管理工具, 它提供了一個簡易的介面比起在文字模式下的chkconfig 來管理要方便的多.

底下是從網上收集來的一些Linux 啟動服務說明
===========================================
nacron:執行在 crontab 設定的時間沒有執行到的工作,若是 24 小時開機的機器應該不需要
apmd:Adventage Power Management daemon 的縮寫,偵測系統的電池電量,一般應該是 Notebook 才會用到
acpid:和 Power Management 有關,若覺得有需要可自行開啟
autofs:自動掛載檔案系統與裝置,如光碟、USB 硬碟,若是 Desktop 則建議使用
cups:全名為 Common UNIX Printing System,管理主機上的本機及網路印表機
gpm:記錄一些額外的周邊設備的檔案資料,如滑鼠,它可以讓您在文字模式下能使用滑鼠來進行複製、剪貼等功能
haldaemon, messagebus:如果有要使用 plug and play 的裝置,記得要把這兩個服務開啟
irqbalance:如果系統只有一顆 CPU,可以將它停掉
kudzu:開機時會自動偵測硬體,若發現有異動,會用相關的軟體來作設定,若硬體不常變化建議關閉,以免拖慢開機速度
microcode_ctl:如果系統是 AMD 的 CPU,可以將它停掉
netfs:自動掛載 /etc/fstab 中和網路相關的 file system,如 samba、NFS,如果有用到的話要將此服務開啟
portmap, nfs:如果有裝 NFS Server 的話,記得將它開啟
nfslock:增加 NFS Server 的資料一致性功能,若 Server 端有開啟的話,Client 端也要開啟才有效
smb:如果有裝 Samba Server 的話,記得將它開啟

----------------------------------------------
Ubuntu

acpi-support 這個是關於電源支持的默認是1,2,3,4,5下啟動,我認為你可以把它調整到s級別。
acpid acpi的守護程序,默認是2-5開啟,我認為可以不用管。
alsa alsa聲音子系統,應該不用開啟它。
alsa-utils 這個服務似乎取代了alsa,所以開啟這個就可以了,我在S級別開啟它。
anacron 這是一個用於執行到時間沒有執行的程序的服務,我認為它無所謂,所以關了它,這個可以隨便。
apmd 也是一種電源管理,我認為電腦如果不是很老,它就沒有開啟的必要了。
atd 和anacron類似,我把它關了。
bluez-utiles 傳說中的藍牙服務,然後遺憾我沒有,所以關了。
bootlogd 似乎使用來寫log的,安全期間開著他也許比較好。
cron 指定時間運行程序的服務,所以開著比較好的。
cupsys 打印機服務,所以如果你有,就開啟吧。
dbus 消息總線系統,非常重要,一定要開。
dns-clean 撥號連接用的,如果不用,就關了它。
evms 企業卷管理系統,由於我並不明白什麼叫做企業卷,所以我關了它。
fetchmail 用於郵件守護,我關了它。
gdm gnome桌面管理器,我關了它,然後用startx啟動gnome。
halt 關機用的,不要更改
hdparm 這個我剛才有講,如果沒有ide硬盤也就不用開啟它了。
hotkey-setup 這個是給某些品牌筆記本設計的熱鍵映射,台式機用戶請關了它
hotplug 這個是用於熱插拔的,我已經測試過了,在某些電腦上關閉它會使聲卡無效,請在S級別開啟它。
hplip hp打印機專用的,應該可以關了它。
ifrename 網絡接口重命名,好像沒用,關了。
ifupdown 這個使用來打開網絡的,開著它。
ifupdown-clean 同上。
klogd linux守護程序,接受來自內核和發送信息到syslogd的記錄,並記錄為一個文件,所以請開著它。
linux-restricted-modules-common 這個使用來使用受限制的模塊的,你可以從/lib/linux-restricted-modules下查看,如果沒有什麼,你可以關掉它。
lvm 邏輯卷管理器,如果你沒有請關了它。
makedev 用來創建設備到/dev/請不要動他。
mdamd 管理raid用,如果你沒有請關閉它。
module-init-tools 從/etc/modules 加在擴展模塊的,這個一般開著。
networking 增加網絡接口和配置dns用,將它開啟。
ntp-server 與ubuntu時間服務器進行同步的,關了。
pcmcia 激活pcmica設備,遺憾我有生以來都沒有見過這樣的設備,關了它。
powernowd 用於管理cpu的客戶端程序,如果有變頻功能,比如amd的quite' cool 那麼就開啟它吧。
ppp 撥號用的,我關了它。
ppp-dns 一樣,也關了。
readahead 預加載服務,讓我想起了win的預讀,當然他們不同,它會使啟動變慢3-4妙,所以我關了它。
reboot 重啟用的,不要動。
rmnologin 如果發現nologin,就去除它,在筆記本上不用開啟。
rsync rsync協議守護,請視情況而定。
screen-cleanup 一個清除開機屏幕的腳本,隨便。
sendsigs 重啟和關機時向所有進程發送消息。所以不要管它。
single 激活但用戶模式,不用管它。
stop-bootlogd 從2,3,4,5級別停止bootlogd,不用管它。
sudo 這個不用說吧,不用管它。
sysklogd 用於記錄系統日誌信息,不用管它。
udev 用戶空間dev文件系統,不用管它。
udev-mab 同上。
umountfs 用來卸載文件卷的,不用管它。
urandom 生成隨即數的,不知道怎麼用,不用管它。
usplash 那個漂亮的啟動畫面,但是我關了它,它也存在,所以想關他需要把內核起動參數中的splash一句刪掉。
vbesave 顯卡bios配置工具,不用管它。
xorg-common 設置x服務ice socket。不用管它。

參考:
http://gis.nchc.org.tw/lsi/Linux_Basic/discuss/look.asp?id=876&Page=2&ADMIN=1

[2010 05.24新增
http://portable.easylife.tw/1816
http://ikubo.x0.com/unix/CentOS50_stop_Service.htm

2008年5月19日 星期一

clamav in CentOS

vi /etc/yum.repos.d/dag.repo

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
# clamav client
yum install clamav.x86_64

#clamav server
yum install clamav-server

## Error
CentOS-Yum: warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 6b8d79e6

Try:
wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt && rpm -import RPM-GPG-KEY.dag.txt

Reference:
CentOS unofficial repository configure
CentOS virusscan 配置
ClamAV with sendmail
http://dag.wieers.com/rpm/FAQ.php#B

SSH idle timeout

依照sshd_config man 說明, 在設定Client 閒置逾時參數應該是由ClientAliveCountMax X ClientAliveInterval. 但在實際使用下發現ClientAliveInterval 要設為0 (zero) 才會有作用, 目前還不曉得為什麼和man 的說明有差.

Ex. 設定ssh Client 一小時內沒動作就disconnect
ClientAliveInterval 1800
ClientAliveCountMax 0

sshd_config man page
ClientAliveCountMax
Sets the number of client alive messages (see below) which may be
sent without sshd receiving any messages back from the client. If
this threshold is reached while client alive messages are being
sent, sshd will disconnect the client, terminating the session. It
is important to note that the use of client alive messages is very
different from TCPKeepAlive (below). The client alive messages are
sent through the encrypted channel and therefore will not be
spoofable. The TCP keepalive option enabled by TCPKeepAlive is
spoofable. The client alive mechanism is valuable when the client
or server depend on knowing when a connection has become inactive.

The default value is 3. If ClientAliveInterval (see below) is set
to 15, and ClientAliveCountMax is left at the default, unresponsive
ssh clients will be disconnected after approximately 45 seconds.

ClientAliveInterval
Sets a timeout interval in seconds after which if no data has been
received from the client, sshd will send a message through the
encrypted channel to request a response from the client. The
default is 0, indicating that these messages will not be sent to
the client. This option applies to protocol version 2 only.

2008年5月15日 星期四

Erlang install in ubuntu

pre-install

sudo apt-get install libncurses5-dev
sudo apt-get install sun-java5-jdk

untar opt_src_R12B-2.tar.gz
./configure --prefix=[your path]
make && make install

2008年5月6日 星期二

CentOS 5 snmpd failure

root@www ~]# /etc/init.d/snmpd start
Starting snmpd: [ OK ]

[root@www ~]# /etc/init.d/snmpd status
snmpd dead but pid file exists

snmpd dead but pid file exists

[root@www ~]# tail /var/log/messages
Mar 29 18:23:43 www snmpd[4466]: could not open /proc/net/if_inet6
Mar 29 18:23:43 www snmpd[4466]: mibII/mta_sendmail.c:open_sendmailst: could not guess version of statistics file “/var/log/mail/statistics”

Reference
http://www.centos.org/modules/newbb/viewtopic.php?topic_id=8777

Disable IPV6 support

vi /etc/modprobe.conf
=============
alias net-pf-10 off
alias ipv6 off
============

vi /etc/sysconfig/network
=============
NETWORKING_IPV6=no
=============

vi /etc/sysconfig/network-scripts/ifcfg-eth0
add
=============
IPV6INIT=no
=============

yum install net-snmp net-snmp-devel net-snmp-utils net-snm-libs

reboot

2008年4月21日 星期一

IPMI採用業者清單

http://developer.intel.com/design/servers/ipmi/adopterlist.htm

目前查到台灣有賣的BMC 卡

宏正 IP1101
http://www.aten.com.tw/products/productList.php?pcid=2006110617512003&psid=20061106175156002&layerid=subClass4

IPMI採用業者清單

http://developer.intel.com/design/servers/ipmi/adopterlist.htm

2008年3月20日 星期四

Global gtags introduction

Global gtags introduction

在Linux 下去瀏覽OpenSouce code 是一件痛苦的事, 怎麼說呢? 因為一個大型的專案中要找到一個struct 的結構或是某個函式的定義是非常不容易的, 當然我們可以使用grep 來搜索, 但是如果有工具可以快速的告訴我們某個函式在那幾個程式中有用到, 不是一件美好的事嗎!

如果你是使用IDE 來寫程式而且用的編輯器有提供函式列表功能的話, 那你就可以跳個今天要介紹的GNU Global (source code tag system) project.

安裝方法:
安裝的話很簡單到Global download 去下載最新的版本, 而我安裝的是glogal-5.6.2
下載後解開tar ball, 然後執行./configure && make && makeinst all

使用:
切換到專案目錄下執行gtags, 之後目錄下分別會產生四個gtags 的檔案
GPATH 路徑名稱的資料庫
GTAGS 物件定義的資料庫
GRTAGS 物件關連的資料庫
GSYMS 其他標誌的資料庫

之後可以用global 這個指令來搜尋, 例如
global func1 #func1 是被定義在那個檔案之中
global -r func1 #那個檔案有呼叫 func1

若是覺得這樣還是太麻煩, 可以再搭配htags 製作HTML 文件喔.

2008年1月16日 星期三

find 使用技巧

尋找5分鐘內修改的檔案並排除 test目錄
find . -path "./test" -prune -o -cmin -5 -print

尋找超過2G 的檔案
find / -size +2000000k



find + md5sum to check file integrity
find . -name '*' -type f -exec md5sum '{}' >checksum.md5 \; 

刪除副檔名為png 的檔案
find . -name "*.png" | xargs -i rm {}
find . -name "*.png" -exec rm {} \;


Recursive update files timestamp
find . -exec touch {} \;

date 應用

顯示前天日期 date -d "2 days ago" +%Y%m%d

顯示後天日期 date -d "2 days ago" +%Y%m%d
..依此類推

2008年1月9日 星期三

Google: Cluster Computing and MapReduce Lecture

從Google codes 上看到, 是講有關Cluster Computing

Lecture 1 - Introduction


slides

Lecture 2 - MapReduce
slides

Lecture 3 - Distributed File Systems
slides

Lecture 4 - Clustering Algorithms
slides

Lecture 5 - Graph Algorithms
slides

原文網址
http://code.google.com/edu/content/submissions/mapreduce-minilecture/listing.html

2008年1月8日 星期二

KOSE ESPRIQUE 廣告

主題曲: 無敵的妳 福山雅治

4-1


4-2


4-3


4-4

2008年1月3日 星期四

Grub 文章匯整

網路上Grub 的交章

Grub manual
http://www.gnu.org/software/grub/

Jamyy's GRUB & LILO 操作備忘http://cha.homeip.net/blog/archives/2006/04/grub_lilo.html

Gentoo 設定開機管理程式http://www.gentoo.org/doc/zh_tw/handbook/2004.3/handbook-x86.xml?part=1&chap=10