星期日, 二月 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 的處理方式.

轉載自: GPG error: for apt-get

錯誤訊息

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 寫的真的是很亂, 還是重新整理一下好了.

  1. 目前的作法如下:
    • 首先在/dev/shm建個tmp文件夾,然後與實際/tmp綁定
    • mkdir /dev/shm/tmp
    • chmod 1777 /dev/shm/tmp
    • mount --bind /dev/shm/tmp /tmp
  2. 方法2:
    • mkdir /mnt/ramfs
    • vi /etc/fstab
    • none /mnt/ramfs tmpfs defaults 0 0
    • mount /mnt/ramfs
    • 這樣就可以用這個 ramfs 來放一些有的沒有的, 可 man mount, man fstab
  3. 方法3:
    • mount -t tmpfs -o size=200m none /mnt/tmpfs
    • 200m 是 200Mb 的意思, 詳情請看 man mount 裡的 tmpfs
  4. 方法4:
    • 設定 /etc/default/tmpfs default shm 大小(系統會自動用此值去當硬碟)
    • 設定 /etc/fstab: tmpfs /tmp tmpfs size=100m,mode=1777 0 0 設讓 RAM 掛 100Mb 在 /tmp
  5. 方法5:(我目前都用此方法)
    • 直接設定 vim /etc/fstab 寫入下面那行
    • tmpfs /tmp tmpfs size=100m,mode=1777 0 0
    • # 設讓 RAM 掛 100Mb 在 /tmp
  6. 其它方法: 可參見下面連結, "有趣的 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 還是都很像的. 只有一些些的差異.

  1. md5 是 128 bits(32 bytes), sha1 是 160 bits(40 bytes)
  2. md5檢測程式 md5sum, sha1 是 sha1sum
  3. 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)

 (閱讀全文)