星期日, 二月 05, 2006
unzip 解壓多個檔案
unzip 一直以來都只有在解壓單獨檔案, 遇到 bug 才發現, 解壓多檔的語法是不同的.
- 這樣只會解壓第一個match 的 file:
unzip -j -o *.zip - 這樣子才能解壓多個檔案:
unzip -j -o\*.zip
星期日, 二月 05, 2006
GPG Error for apt-get
apt-get 發生 GPG Error 的處理方式.
錯誤訊息
W: GPG error: ftp://www.hk.debian.org unstable Release:
The following signatures couldn't be verified
because the public key is not available:
NO_PUBKEY F1D53D8C4F368D5D NO_PUBKEY 010908312D230C5F
W: You may want to run apt-get update to correct these problems
解決方法:
$ gpg --keyserver wwwkeys.eu.pgp.net --recv-keys F1D53D8C4F368D5D $ gpg --armor --export F1D53D8C4F368D5D | apt-key add - $ gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 010908312D230C5F $ gpg --armor --export 010908312D230C5F | apt-key add - $ apt-get update
感謝 Range 大師告知, 下述兩個步驟即可解決此問題 :)
(閱讀全文)$wget http://ftp-master.debian.org/ziyi_key_2006.asc $apt-key add ziyi_key_2006.asc
星期日, 元月 08, 2006
拿 RAM 當硬碟來用(RAM Disk)
臨時想要做個 RAM Disk, 就去翻以前寫的文章, 發現以前的 Blog 寫的真的是很亂, 還是重新整理一下好了.
- 目前的作法如下:
- 首先在/dev/shm建個tmp文件夾,然後與實際/tmp綁定
- mkdir /dev/shm/tmp
- chmod 1777 /dev/shm/tmp
- mount --bind /dev/shm/tmp /tmp
- 方法2:
- mkdir /mnt/ramfs
- vi /etc/fstab
- none /mnt/ramfs tmpfs defaults 0 0
- mount /mnt/ramfs
- 這樣就可以用這個 ramfs 來放一些有的沒有的, 可 man mount, man fstab
- 方法3:
- mount -t tmpfs -o size=200m none /mnt/tmpfs
- 200m 是 200Mb 的意思, 詳情請看 man mount 裡的 tmpfs
- 方法4:
- 設定 /etc/default/tmpfs default shm 大小(系統會自動用此值去當硬碟)
- 設定 /etc/fstab: tmpfs /tmp tmpfs size=100m,mode=1777 0 0 設讓 RAM 掛 100Mb 在 /tmp
- 方法5:(我目前都用此方法)
- 直接設定 vim /etc/fstab 寫入下面那行
- tmpfs /tmp tmpfs size=100m,mode=1777 0 0
- # 設讓 RAM 掛 100Mb 在 /tmp
- 直接設定 vim /etc/fstab 寫入下面那行
- 其它方法: 可參見下面連結, "有趣的 tmpfs" 中, 有提供很多更好用的方法
參考文件:
星期日, 元月 08, 2006
停止crontab的寄信通知
Crontab 在執行時, 只要營幕有任何標準輸出, 就會轉成信件寄出通知,初期要 Debug用時還不錯, 但是久了後就很煩, 就想把他丟到 /dev/null 或 改寄到其它地方去, 但是 /dev/null 丟了好多次都沒有用, 才發現到原來是少了 2>&1, 完整命令如下:
於設定時將標準輸出導到 /dev/null
0 * * * * script_name > /dev/null 2>&1
將信件改寄到其它地方, MATILTO="", (不過 "" 的話, 我不知道會寄到哪邊去)
於 Script 最前面加上 MAILTO=""
星期四, 元月 05, 2006
Red Hat Enterprise Linux編號意義
看 Redhat Enterprise 有一堆怪怪的編號: AS、ES...., 都看不懂是什麼意思, 查了一下,從 Red Hat Enterprise Linux 4 說明文件 中看到以下:
Red Hat Enterprise Linux 是開放原始碼運算環境中的最佳作業系統,產品線極為完整,從桌上型到資料中心都有:
- Red Hat Enterprise Linux AS — 為高階與繁重任務的系統所設計
- Red Hat Enterprise Linux ES — 為中小型伺服器所設計
- Red Hat Enterprise Linux WS — 為技術 / 設計導向的工作站用戶所設計
- Red Hat Desktop — 為安全、易管理的用戶端所設計
不過, 果然是誇大了不少, "產品線極為完整"... 就用過的感想 - 實在很難用.
星期二, 元月 03, 2006
設定優先權(nice, renice)
程式要執行很久的話, 可以調一下優先權, 看能不能快點結束~
nice [-20 ~ 19] program (-20 是最高優先權, 19 是最低)
已經執行的程式, 可以用 renice 調整.
renice -19 PID
意外發現不錯的 Linux Commands 介紹的站(可以印出來, 有時後還蠻好用的)
LINUX NEWBIE ADMINISTRATOR GUIDE
星期三, 十二月 21, 2005
SHA1 編碼 使用
md5 已經能夠在很短的時間內被破解(MD5 Collision Source Code Released).
Jserv長輩 的測試: MD5 Collision
破解演算法: MD5 Collision Generation (作者宣稱 45 min 就能破解, 我是跑了 80 min 才破解... :( )
破解程式 Source Code: md5coll.c
暫時先改用 sha1 演算法好了, sha1 使用上, 基本上跟 md5 還是都很像的. 只有一些些的差異.
- md5 是 128 bits(32 bytes), sha1 是 160 bits(40 bytes)
- md5檢測程式 md5sum, sha1 是 sha1sum
- php 的 md5 function 是 md5(), sha1 的是 sha1()
基本上差不多是一樣的意思.
星期六, 十月 15, 2005
找出 MySQL 哪些 Query 速度較慢
MySQL 中有內建的設定, 在 my.cnf 中設定:
log-slow-queries = [slow_query_log_filename]
即可記錄查詢時間花費超過的 10s的 SQL 語法(Default).
若要改 5秒 可設定如: long_query_time = 5 即設定為 5s 記錄下來.
(閱讀全文)
星期五, 十月 14, 2005
\r 於 UNIX 和 DOS 下的差異
\r : return 回這行的最前面的意思.
ex: echo "\r";
DOS 用 \r\n 就是回下一行的最前面,
若只有 \n, 游標會直接往下移一格(游標不會移到最前面).
Linux 下, \n 就是直接 new line, 會到下一行的最前面.
星期二, 十月 11, 2005
要如何同時監看Linux系統的記憶體和CPU使用情況
可以使用vmstat這支程式. vmstat 可以列出目前虛擬記憶體的使用量, 也會依照 user/ system / idle 這三種類別列出目前CPU分配的百分比.
ex.
$> vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 192 4240 135044 16016 0 0 4 1 73 8 0 0 100 0
星期六, 九月 17, 2005
hdparm參數
UDMA3(ATA33)
# hdparm -X66 -c1 -d1 -m16 /dev/hda
UDMA4(ATA66)
# hdparm -X68 -c1 -d1 -m16 /dev/hda
UDMA5(ATA100)
# hdparm -X69 -c1 -d1 -m16 /dev/hda
(閱讀全文)
星期六, 九月 17, 2005
關掉 Beep 聲音
在 Linux 下按 tab 時, 會嗶嗶叫的聲音, 聽起來蠻吵的,
xset b off
就可以把嗶嗶聲關掉了.
星期二, 九月 13, 2005
ifconfig 和 route 設網路位址
雖然是簡單的設定, 但每次設時都看問 man 還是很煩..
還是寫下來比較快....
ifconfig eth0 123.123.123.123 netmask 255.255.255.0
route add default gw 123.123.123.254
星期六, 九月 10, 2005
看port被哪隻程式使用
要查看 port 被使用, 使用 netstat 即可.
netsta -tunl
t: tcp, u:udp, n: don't resolve names, l: listening
但要查看 port 被那隻程式, 就要使用 lsof,
lsof -i
感謝 jclin 教導: netstat -antp 也同樣能看出是哪隻程式佔用著 port.
星期六, 九月 10, 2005
Unix 基本指令操作
IO Redirection: File Descriptors
file descriptor 0 is associated with STDIN, 1 with STDOUT, and 2 with STDERR.
ex: 2>&1 將 錯誤訊息(STDERR) 直接導向 標準輸出(STDOUT)
ex: 2>& > /tmp/output
ex: >& > /tmp/output (標準輸出 輸入都一起導到 /tmp/output file)
< input file : read standard input from file
> output file : write standard output to file
>> output file: append standard output to file
>& error file : write error message to file
| command2 : pipe output as input for command2
ex: ls 2>/dev/null 1>/tmp/output
& => 指定到 &1 的變數(不然會變成 1 的 file)



