大陸都稱 M 為兆, 詢問他們為什麼 1兆 = 1百萬, 也說不出所以然,
Google 查到這種說法源自於十進位系統, 十 百 千 万 亿 兆 京 彼此之間都差十倍, 十億為兆, 即 106
一般數學上的兆為 1012, 避免混淆, 1012用「萬億」表達.
科技上所用到的兆都指106, 如百兆網路(100M), 兆赫(MHz)等.
ref. 維基百科 - 兆 | "兆" 有多大
在 DreamHost 看到新服務 Private Servers, 才知道有 Linux-VServer 這個好用的 virtual machine, 於是就拿來試試看.
以下範例環境為 Mandriva 2007.1
由於 Linux-VServer kernel level isolation 的 virtual machine, 效能比 VMware, Virtual PC 等軟體要好很多,
所以 Kernel 必需要 patch, Linux Kernel 2.6.22.29 + vs2.2.04
Patch 完後, 一些 VS 相關的 CONFIG 已經有開啟, 不需額外設置.
編完後使用新的 Kernel 開機
安裝所需的工具
urpmi --auto util-vserver
urpmi --auto util-vserver-build
會安裝 util-vserver* 的相關套件
使用 Guest Image, 這裡用 debian-3.1-i386-minimal.tar.gz
wget -O debian-3.1-i386-minimal.tar.gz http://lylix.net/component/option,com_remository/Itemid,304/func,download/id,21/chk,ad695f2687833170ce7b8f7010843fcc/
建立 virtual machine
vserver debian build -m template --hostname debian.pank.org --interface eth0:192.168.0.11/24 -- -t stage3-i586-20060317.tar.bz2
建立的方式有很多種, -m template 是使用 tarball 方式, 也就是上一步驟抓的 Guest Image, 也可以由現有的系統自己做.
啟動 virtual machine
vserver debian start
出現錯誤訊息 ncontext: vc_net_create(): Invalid argument
根據官網的 FAQ 作修正
echo 101 > /etc/vservers/debian/context
再啟動就可以了
進入 virtual machine
vserver debian enter
最後修改 Host 的 sshd_config, ListenAddress 必需指派 IP, 不能用 0.0.0.0,
如此才能順利連到 virtual machine 的 sshd (ref. 在 VServer 上安裝各種網路服務的注意事項)
因為 VServer 使用 chroot 機制, 會有一些限制.
一些資源, 像網路卡是和 Host 共用(MAC 一樣)
使用 Windows Live Installer 安裝後, 可以在下列路徑取得獨立的 MSI 安裝檔,
%windir%\system32\config\systemprofile\Local Settings\Application Data\WindowsLiveInstaller\MsiSources
例如 Windows Live Messenger 是 Install_{6560D90C-5223-49A3-B78C-A48C31EAEC56}.msi
2007-11-06 Update: 8.5.1302 的路徑改成 %ProgramFiles%\Common Files\WindowsLiveInstaller\MsiSources
有了原始 MSI 檔, 就可以做出 MSI 格式的 Pure Windows Live Messenger 8.5.1288
如果有大量的 csv 格式資料(逗點分隔的文字檔)要匯入資料庫, 可以這樣做
sed -e "s/^/INSERT TABLE_NAME values('/;s/$/');/;s/,/','/g" file.csv > file.sql
如果你的電腦時間一天就差了好幾秒, 想要把網際網路時間調整成每天同步一次
Windows Registry Editor Version 5.00預設是七天(dword:0093a80)[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
"SpecialPollInterval"=dword:00015180
大概從 2007-03-21 開始, 經過 HiNet mail server 的信, 若被判斷是 Spam, Header 會加上兩個 Tag
X-Brightmail-Tracker:
X-HiNet-Brightmail: Spam
這個應該是給 Webmail 用的, 有 X-HiNet-Brightmail: Spam 的就會分類在垃圾信件匣.
把 Mail forward 到自己的 Server, 這個 Tag 也可以拿來用, 例如用 procmail
:0
* ^X-HiNet-Brightmail: Spam
/dev/null
先看看官方的 如何修復錯誤碼 81000365、8100035b 或 80072EFD?
若還是不行, 用 Regsvr32 來重新登錄一些 dll 檔
regsvr32 softpub.dll wintrust.dll initpki.dll dssenh.dll rsaenh.dll gpkcsp.dll sccbase.dll slbcsp.dll cryptdlg.dll
ref. DrLBlogs-寧靜的海豚-MSN 80072efd錯誤的解決辦法
7/21 搭高鐵去台北一日遊, 去程(台中到台北) 50 分鐘, 回程 49 分鐘, 坐下來休息一下就到了, 真快.
行車時還滿穩的, 感覺不出是以 250~290 KM/H 的速度在前進.
可能是因為票價偏高, 雖然是假日, 但是搭的人不多, 約有 3/4 都是空位.
使用具有 SUPER 權限的 User 連資料庫, 寫在 my.cnf 的 init_connect 將不執行,
因為萬一 init_connect 寫錯, 一般 User 無法連線時, SUPER User 還可以連進資料庫,
修正此參數.
ref. MySQL: System Variables
SquashFS 是類似 cramfs 的壓縮式唯讀檔案系統
目前還沒有進 Kernel, 需用 Patch 方式加入 SquashFS 的功能.
SquashFS 的壓縮率明顯比 cramfs 好, 拿 /usr/local/apache (v2.2.4, 28M) 來作測試,
SquashFS size 9207808, cramfs size 11780096, SquashFS 的 size 是 cramfs 的 78%
另外還有 Squash LZMA Patch, 可以有更高壓縮率.
PuTTY 若是遇到軟體是用 alternate screen, 就不會把 buffer 加到 scrollback,
然而 screen 就是用 alternate screen, 所以 PuTTY+screen scrollback 會失效.
有兩種方式可以解決
1. 停用 PuTTY 的 alternate screen
Terminal / Features / Disable switching to alternate terminal screen
2. 停用 screen 的 alternate screen
加一行 termcapinfo xterm ti@:te@ 到 screenrc
ref. A.7.19 Since I upgraded to PuTTY 0.54, the scrollback has stopped working when I run screen.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Keyboard]
"InitialKeyboardIndicators"="2"
ref. InitialKeyboardIndicators
"InitialKeyboardIndicators"="0" NUMLOCK is off.
"InitialKeyboardIndicators"="2" NUMLOCK is on.
Mandriva(Mandrake) RPM Search
URL 指向 Mirror 站 (舊版: 檔案是放 Local, 且只有 i586 的 RPM),
使用 Mirror 站 rsync 過來的 File List, 使搜尋範圍更廣, SRPMS, x86_64, updates 等都可以找到.
搜尋結果指向的 Mirror 站如下:
TW - Taiwan mirror ftp.isu.edu.tw
DE - Germany mirror wftp.tu-chemnitz.de
FR - France mirror fr2.rpmfind.net
JP - Japan mirror ftp.kddlabs.co.jp
US - United States mirror mirrors.usc.edu
ref. Mandriva(Mandrake) RPM Search
AcroRd32.exe /t file.pdf 可以直接把 PDF 檔印出來, 適用 7.0.x 版 (Acrobat Reader 7.0.9 中文版)
若有大量的 PDF 檔要印, 用 /t 參數寫批次檔是最快的.
但是在 Adobe Reader 8 此參數好像拿掉了, 試了沒反應.
mtop 可以列出 MySQL Server 目前有那些 user, 從那邊連過來, 下什麼 SQL 指令
# cat host
140.117.1.77
140.117.11.7
140.1.99.1
# sort host
140.117.11.7
140.117.1.77
140.1.99.1
# sort -t. -nk1,1 -k2,2 -k3,3 -k4,4 host
140.1.99.1
140.117.1.77
140.117.11.7
BIND 8
kill -2 `pidof named`
BIND 9
rndc dumpdb
cache will saved as named_dump.db in named directory.
主機若沒有跑 mail service, 要用 PHP 透過其他 SMTP 來寄信,
Windows 下可以改 php.ini
[mail function]
SMTP = smtp_server
其他 UNIX 環境, 不支援上面的方法, 真怪.
大致有兩種做法:
1. 使用現成 Class, 如 PEAR::Net_SMTP, phpguru.org - SMTP class, 這些 Class 是透過 fsockopen() 的方式寄信
2. 裝 Light SMTP Agent, 如: mini_sendmail
然後改 php.ini 裡的 sendmail_path
sendmail_path = /usr/local/sbin/mini_sendmail -s smtp_server -t
for Linux
0 8 28-31 * * [ `date -d tomorrow +\%e` -eq 1 ] && do-something
for other Unix,BSD
0 8 28-31 * * [ `echo \`cal\` | awk '{print $NF}'` -eq 1 ] && do-something
More, run cron jobs at last workday of the month
0 8 26-31 * * root [ `echo \`cal | cut -d' ' -f2-6\` | awk '{print $NF}'` -eq `date +%e` ] && do-something
ref. 系统管理員工具包: 時間和事件管理
MySQL 在刪除資料時, 並不會釋放出磁碟空間,
當刪除很多資料時, 可以用 OPTIMIZE TABLE 來把資料 defrag 一下, 並且會釋放出磁碟空間.
OPTIMIZE TABLE tbl_name
在 ~/.bashrc 或 /etc/bashrc 加入以下兩行
bind '"\x1b\x5b\x41":history-search-backward'
bind '"\x1b\x5b\x42":history-search-forward'
這樣就可以鍵入 command prefix + 上下鍵做 history search, 很方便.
感謝 zxvc 提供
ref. [心得] 好用的bash history function
BASH 可以藉由存取
/dev/tcp/host/port
/dev/udp/host/port
來作簡單的 socket IO
看實例:
bashget.sh 使用 /dev/tcp/host/80 抓 http:// 檔案, 類似 wget 簡易版
bashmail.sh 使用 /dev/tcp/host/25 發 mail
ref.
Unixjunkie Blog: Two Cool Bash Tricks
Bash tricks | bhaskarvk.info
useradd -p`echo 1234 | openssl passwd -stdin` test
(create user test with password 1111 using default crypt algorithm)
useradd -p`echo 1234 | openssl passwd -1 -stdin` test
(create user test with password 1111 using MD5 algorithm)
會產生這個錯誤的原因是 PHP 所使用的 MySQL lib 和 MySQL 的版本不搭,
解決方式是重新編譯 PHP, configure 時加入 --with-mysql=/usr 指定 MySQL 正確位置.
最後用 phpinfo() 檢查一下 MySQL Client API version 和系統是否一致.
ref: PHP誌:File `NONEXISTENT/charsets/?.conf` not found (Errcode: 2)
MySQL Replication 可以把資料庫即時複製到另一台主機, MySQL 備援、Load Balance 都會用到.
範例: A(Master, IP:10.1.1.1) -> B(Slave)
先把兩邊的 MySQL 停掉, 把 A 的資料庫複製到 B, 用 tar 的就可以了.
A(Master) my.cnf 設定
[mysqld]
server-id=1
log-bin
binlog-do-db=dbname
[mysqld]
server-id=2
log-bin
master-host=10.1.1.1
master-user=root
master-password=password
replicate-do-db=dbname
log-slave-updates
接近聖誕節, 開始促銷各式各樣的聖誕節禮物, Spam 數量會攀升, 稱 Christmas Spam.
附圖是 pank.org 使用 bogofilter 所過濾出的 Spam 統計.
大概11月中, Spam 數量就開始竄高.
ref. Don't let Christmas spam fill your email stocking, Sophos warns
lftp 是少數能做到限速的 ftp client
set net:limit-rate 1048576:102400
表示下載 1M, 上傳100K (bytes per second), 預設是 0:0 (無限制)
也可以把設定加到 lftpd.conf
例:
printf "set net:limit-rate 1048576:102400\nget ls-lR.gz\n" | lftp ftp.isu.edu.tw
若用不到 Windows XP/2003 下的「系統還原」功能, 可以把 System Volume Information 清除,
以節省一些硬碟空間, 僅適用 NTFS 分割區.
關閉系統還原(控制台>系統>系統還原>關閉所有磁碟上的系統還原)
停止 Distributed Link Tracking Client 服務(控制台>系統管理工具>服務)
cacls "c:\System Volume Information" /e /g everyone:f
rd/q/s "c:\System Volume Information"
c: ~ h: 批次處理範例:
for %d in (c d e f g h) do cacls "%d:\System Volume Information" /e /g everyone:f
for %d in (c d e f g h) do rd/q/s "%d:\System Volume Information"
清完後多了不少空間.
會出現這個訊息是在 RedHat9 用 Kernel 2.6 開機, 然後用 rpm -q 或 rpm -qa 做查詢動作.
此問題和 O_DIRECT 有關.
解決方法有兩個:
1. export LD_ASSUME_KERNEL=2.2.5 (Workaround)
2. upgrade RPM to rpm-4.2-1.i386.rpm (need reboot to work fine)
ref. Bugzilla Bug 92247: rpmdb: unable to join the environment - db4 error(11) from dbenv->open: Resource temporarily unavailable
comm 這個指令可以比對兩個已排序的檔案相同的地方
輸出有三個欄位,
column 1 只有出現在 file1
column 2 只有出現在 file2
column 3 兩個檔案相同的地方
參數
-1 不顯示 column 1
-2 不顯示 column 2
-3 不顯示 column 3
如: comm -12 file1 file2 就可以秀出兩個檔案相同的地方
一年前用 Mandriva 2006 時, 就覺得很奇怪, make kernel 2.4.x 都會有問題.
一直到 kernel 2.4.33 出了(2006-08-11 released), 才知道原因:
in init/main.c
/*
* gcc >= 4 is not supported by kernel 2.4
*/
#if __GNUC__ > 3
#error Sorry, your GCC is too recent for kernel 2.4
#endif
有時移除木馬或病毒後, 可能會造成無法上網的狀況.
原因是木馬或病毒在網路服務中加入自己的程式, 並且修改 Registry Keys,
當移除木馬或病毒時, 沒有修復 Registry Keys 反而造成無法上網.
症狀:
無法上網
ping 可以通, 但是會出現嗶聲, 第一行會出現一個問號
Pinging ? with 32 bytes of data:
Reply from 168.95.1.1: bytes=32 time=5ms TTL=243
Reply from 168.95.1.1: bytes=32 time=5ms TTL=243
Reply from 168.95.1.1: bytes=32 time=4ms TTL=242
Reply from 168.95.1.1: bytes=32 time=4ms TTL=242
nslookup 可以查, UDP OK
在 cmd(命令提示字元)下執行 TCP 動作
如: telnet ptt.cc
會出現錯誤訊息「無法載入或初始化所要求的服務提供者」
這種問題可以用 WinsockXPFix (載點2) 來修復.
軟體說明:
This Utility Restores Registry Keys,
that may become Corrupt after Removing the Host Program that Modified them.
如果是 Windows XP SP2 可以使用 netsh winsock reset, netsh winsock reset 的效果和 WinsockXPFix 一樣(2007-06-13)
相關軟體: HijackThis LSP-Fix
ref. 資安論壇 :: 觀看文章 - 是否是病毒or木馬?已經多台電腦網路正常可ping但網頁死掉!!!
如何判定並修復 Winsock2 毀損
準備檔案
wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.4.tar.gz
wget http://www.roaringpenguin.com/penguin/pppoe/rp-pppoe-3.8.tar.gz
wget ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.3.tar.bz2
以下設定
MySQL Server 用 mysql_server 代稱
RADIUS Server 用 radius_server 代稱
實作時請換成您的 Server IP 或 Hostname
MySQL 部分
tar jxf freeradius-1.1.3.tar.bz2
mysqladmin -u root -p create radius
mysq -u root -p radius < freeradius-1.1.3/./doc/examples/mysql.sql
mysql -u root -p radius
先加入一些資料
insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type','=','Framed-User');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask','=','255.255.255.255');
insert into radgroupcheck (groupname, attribute, op, value) values ("user", "Auth-Type", ":=", "Local");
加入使用者
insert into radcheck (username,attribute,op,value) values ('pank','User-Password','==','1111');
FreeRADIUS 部分
tar jxf freeradius-1.1.3.tar.bz2
cd freeradius-1.1.3
./configure && make install
cd /usr/local/etc/raddb
編輯 clients.conf, secret 是 Client 端連 FreeRADIUS 所需的密碼(shared secret)
client 127.0.0.1 {
secret = 1234
shortname = localhost
}client 192.168.0.0/16 {
secret = 1234
shortname = lan
}
authorize {
preprocess
chap
mschap
suffix
sql
...
}accounting {
...
sql
...
}
...
server = "mysql_server"
login = "mysql_username"
password = "mysql_password"
radius_db = "radius"
PPPoE Server 部分
tar zxf ppp-2.4.4.tar.gz
tar zxf rp-pppoe-3.8.tar.gz
cd ppp-2.4.4
./configure && make install
cd ../rp-pppoe-3.8/src
./configure --enable-plugin=../../ppp-2.4.4
--enable-plugin 是必要參數, 才能使用 -k (kernel-mode PPPoE)
make install
cp ppp-2.4.4/pppd/plugins/radius/radius.so /etc/ppp/plugins
cp ppp-2.4.4/pppd/plugins/radius/etc/* /etc/ppp/radius
編輯 /etc/ppp/options
lock
crtscts
nobsdcomp
nodeflate
nopcomp
plugin /etc/ppp/plugins/radius.so
radius-config-file /etc/ppp/radius/radiusclient.conf
auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/ppp/radius/issue
authserver radius_server:1812
acctserver radius_server:1813
servers /etc/ppp/radius/servers
dictionary /etc/ppp/radius/dictionary
login_radius /usr/local/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/ppp/radius/port-id-map
default_realm
radius_timeout 10
radius_retries 3
radius_server 1111
OpenVPN 可以使用任何單一 Port 來建立 VPN Tunnel
Linux Kernel 需要有 TUN/TAP 支援
Network device support > Universal TUN/TAP device driver support
準備檔案
wget http://openvpn.net/release/openvpn-2.0.8.tar.gz
安裝
tar zxf openvpn-2.0.8.tar.gz
cd openvpn-2.0.8
./configure && make install
cd easy-rsa/2.0
編輯 vars 指定變數
. vars (載入 vars)
./build-ca (產生 CA cert, keys/ca.*)
./build-key-server server (產生 Server Key, keys/server.*)
./build-dh (產生 DH parameters, keys/dh1024.pem)
./build-key client1 (產生 Client1 Key, keys/client1.*)
openvpn --genkey --secret keys/ta.key (產生 tls-auth Key)
mkdir /usr/local/etc/openvpn
cp -a keys /usr/local/etc/openvpn
Server 端設定
編輯 /usr/local/etc/openvpn/server.conf
dev tun
port 443
proto tcp # use tcp, could pass by proxy server
server 192.168.2.0 255.255.255.0
push "redirect-gateway" ; 自動將 Client 的 default gateway 設成經由 VPN Server 出去
push "dhcp-option DNS 168.95.192.1"
push "dhcp-option DNS 168.95.192.2"
client-to-client
ifconfig-pool-persist ipp.txt ; 此檔 Server 會自動產生
keepalive 10 120
tls-server
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
comp-lzo
persist-tun
persist-key
status openvpn-status.log
verb 3
client
dev tun
dev-node OpenVPN ; 此名稱需和 TAP-Win32 virtual ethernet adapter 連線名稱一致, 預設應是「區域連線n」, 按 F2 改名為 OpenVPN
proto tcp
remote 218.187.1.1 443 ; 218.187.1.1 為 Server IP
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3
昨天我的 Blog 被留下大量的 Comment spam, 可見目前的 Spam bot 已經進步到可以辨識一些 Captcha.
所以 MT 的 Scode 已經沒什麼作用, Scode 的 Captcha 簡單且具規則性, 被破也不足為奇, 可參考 PWNtcha - captcha decoder
應急之策是修改 lib/MT/App/Comments.pm, 在 my $sscode 那行, 增加自訂的字串,
例如我的 Blog 是要加 A
看到 Security Code 是 7777, 請輸入 A7777
最近添購了一台 HP 740e
LightScribe (光速寫) 是 HP 研發的技術, 出現在 2004 年, 直到最近, 市場上才看到平價的 LightScribe 燒錄機.
現在只支援灰階, 我覺得效果已經不錯了. 將來一定會出現彩色的技術.
目前 LightScribe 的空片價位: CD-R NT 15~20/片. DVD NT 25~40/片
ref. HP台灣 - 數位娛樂新世界 - 如何使用 - LightScribe
距上次 1G 的時候, 大概一年多, 容量又滿了 :(
Gmail 容量上升的速度, 比我 Mail 容量增加的速度還慢.
曾到 Help Center 詢問是否可以經由付費提升容量, 不過還沒有回應.
之前 1G 時, 容量可以超過而不會有退信, 而現在容量達到上限就會有如下的退信
From: Mail Delivery Subsystem <mailer-daemon@googlemail.com>
Subject: Delivery Status Notification (Failure)This is an automatically generated Delivery Status Notification
Delivery to the following recipient failed permanently:username@gmail.com
裝了 WLM 後, 我的電腦裡會多了一個「我的共用資料夾」, 用不到又覺得礙眼? 以下是移除方法:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{FC9FB64A-1EB2-4CCF-AF5E-1A497A9B5C2D}\ShellFolder]
"Attributes"=dword:f0500000
要復原 "Attributes"=dword:f0000000
或是把 Attributes 刪除
Windows Vista 灌好後, 在開機選單有一個 Tools: Windows Memory Diagnostic
這個功能還滿實用的, 很多電腦不穩的狀況都是因為 RAM 的關係.
其實微軟很早就有提供測 RAM 的免費工具: Microsoft Windows Memory Diagnostic,
可做成 Floppy 或 CD 開機測試片.
要先裝 FreeTDS
PHP configure 時加 --with-mssql
編輯 /usr/local/etc/freetds.conf
[mssql]
host = your_mssql_server
port = 1433
client charset = cp950
tds version = 8.0
WLM 竟然可以新增自己為連絡人, 這算是 Bug 嗎?
不過無法和自己聊天, 點進去會進入 Windows Live Mail
2006-06-26 Update: 原來早就可以新增自己為連絡人
Winmail.dat 是 Outlook 寄出的 TNEF 編碼附件, 收到這樣的附件可以用 WMViewer 開啟.
ref.
Outlook 2000 中 Transport Neutral Encapsulation Format (TNEF) 的說明
OL2000:(CW) 收到的郵件內所含的 Winmail.dat 附件
如何避免將 Winmail.dat 檔案傳送給網際網路使用者
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in xxxx.php
原因: MySQL 4.1 以上版本使用了新的密碼驗證機制,
而 PHP 4.x 內建的 MySQL Library 是 3.23, 不支援新的密碼驗證機制.
解決方法:
mysql> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpassword');
mysql> FLUSH PRIVILEGES;
ref. MySQL 5.0 Reference Manual :: A.2.3 Client does not support authentication protocol
MySQL 4.1.7 and PHP 4.3.x 搭配注意事項
把曼陀珠丟進可樂就會出現噴泉效果
影片1 | 影片2
CNN:網路流行蔓陀珠配可樂的噴泉效果
for BASH, set TMOUT variable, unit: seconds
e.g. export TMOUT=300
(auto logout if 5 minutes idle)
for TCSH, set autologout variable, unit: minutes
e.g. set autologout=5
(auto logout if 5 minutes idle)
Mailbox 是全部郵件都放在一個檔
Maildir 是用一個目錄來儲存, 一封郵件一個檔
兩者的比較, 可以參考 Zhiqiang::He: Mbox vs Maildir - 兩者原理和區别
MTA: postfix
修改 main.cf
home_mailbox = Maildir/
MDA: procmail
修改 /etc/procmailrc
MAILDIR=$HOME/Maildir
DEFAULT=$HOME/Maildir/ (後面要加 / )
POP3: dovecot
修改 dovecot.conf
default_mail_env = maildir:/home/%u/Maildir
MUA: mutt
參考 rafan's blog » 從 mbox 到 maildir
轉換工具: mailbox 2 maildir converter
postcat - show Postfix queue file contents
pfcat.sh Shell script to easily display the contents of a queue file.
ref.
Postfix and Email Resources
酷!學園 :: 觀看文章 - postfix's queue 檔的問題?
joe-3.4 [Notes] (2006-05-30 11:22)
這版在 FreeBSD 下 make 時會卡在一個 sed 的步驟, 原因是檔案參數空白, 就卡住了.
Linux 下正常. 可能跟 Shell 有關, 該行用 @< 這個變數, 不曉得什麼意思.
在 configure 後, 做以下修正, 就可以順利 make
perl -pi -e "s/< /@.in /g" `find . -name Makefile`
此版本終於新增 restore cursor position 功能.
syntax highlignt 也改善許多.
例如要打成功, 打完成後, 打ㄍ第一個候選字就是功, 第二個候選字是果.
NOKIA 8250 用了五年多, 竟然最近才發現這個功能, 大概是我太少發簡訊.
UrMap 提供傳地址參數的方式顯示地圖, 非常方便.
http://www.urmap.com/SearchEngine/?qs=地址
http://www.urmap.com/SearchEngine/map.jsp?address=地址
兩種表示法結果是一樣的
買了一個 Aten 4 Port KVM, 包裝與說明書竟然都沒提到 Hot-key,
在官網的 Manuel 找到:
press and release each key in the sequence individually:
[Ctrl] then [Shift] then [Alt] then the Port ID number, then [Enter].
鍵要一個接一個按, 真不人性化.
現在的 KVM 都不用外加電源, 滿方便的.
中華電信市話費率
很少打電話的選網路型或基本型A就對了, 月租費還可以抵 25 元通話費,
若平均通話時間超過三分鐘, 選網路型, 平均不到三分鐘就選基本型A.
基本型B和基本型C的差別在於月租費, 基本型B月租費較便宜, 但是通話費比基本型C貴一點(每五分鐘差 0.1元)
網路轉寄的信件教大家選基本型C, 其實這個費率只對常打電話的有利.
同事給了兩張 Silent Hill (沉默之丘) 試映會的票, 剛剛跟老婆去看了, 還不錯.
這部是電玩改編的電影, 驚悚恐怖的氣氛、場景和去年同樣是電玩改編的 DOOM (毀滅戰士) 有像, 但比毀滅戰士好看多了.
拿到試映會的票真不錯, 可以搶先看電影而且又免費, 有票又沒空去看的人記得丟給我啊!
由於數位相機的平價化, 造成數位相機日漸普及, 出去玩已經很少看到使用底片相機的人.
伴隨而來的是大量的數位相片檔案(以下的數位相片均指數位相片檔案).
其實, 數位相片比傳統相片更難保存
傳統相片放了 50 年, 頂多變黃, 顏色變淡, 數位相片要保存 50 年, 可是一大挑戰, 難度比保存傳統相片要高多了.
現在的沖印技術比以前好, 傳統相片在良好保存下, 可以保存很久.
數位相片呢?
我粗估,
40% 的人只能保存 < 1年 - 數位相片毀於下次電腦重灌
30% 的人只能保存 < 3年 - 良好電腦使用習慣, 但是沒有燒錄備份, 數位相片毀於下次硬碟毀損
20% 的人只能保存 < 10年 - 良好燒錄備份習慣, 數位相片毀於 CD/DVD 無法讀取時
只有少數的人能保存數位相片 > 10年 - 良好的備份習慣, 並定期燒成 CD/DVD 或以 MO 備份, 隨著新儲存媒體的誕生, 轉存到新的儲存媒體
大部份的人可能不會注意到這個問題, 要等到多年的珍貴回憶全部毀損時才會意識到保存數位相片的重要性.
可善用網路相簿(如: flickr), 幫您備份, 但畢竟不是每張相片都適合公開, 私密的照片記得設 Private.
重要的相片還是洗出來比較好, 數位相片是很脆弱的.
看到這篇的同時, 趕快備份您的數位相片吧!
2006-04-03 Update: gslin 指正: 如果你不願意公開,那麼你可以傳到 Flickr 上並設定 Private
有人說: 看完 一升的眼淚(1リットルの涙) 大概會流一升的眼淚 - 這是我看過最感人的日劇.
描述女主角 亞也 罹患 脊髓小腦變性症(SCD), 堅強地面對病魔的故事.
真人真事改編, 只有與麻生遙斗的一段戀情是虛構的.
看完會覺得, 身為正常人實在很幸福.
相關 Blog:
Makoto Rakuen: 一升的眼淚
S小姐的行李:[推薦] [日劇] 一升的眼淚
Just Love For Maple ~ 【日劇】一升の眼淚
不是學壞,只是學不乖: 一升的眼淚 (分集劇情)
2006-03-30 Update: 找不到劇中的 glue 搜尋引擎, 似乎是虛構的.
今天把 Gallery 從 Big5 轉換到 UTF-8
感謝 PipperL 所提供的 轉換程式
如果 albums 目錄不在 gallery 目錄下, 要改一下 $albumdir
執行後, 按最下面的 Convert all file from big5 to UTF-8
zh_TW.utf8 語系檔可以在 Gallery 檔案區 找到
ref. 終極邊疆BLOG: Migration Gallery from Big5 to UTF-8
Server sshd_config 設 X11Forwarding yes, 不需要跑 X
Client 跑 X, 用 ssh -X host 連 Server, 就可以使用 Server 端的軟體, 執行結果傳回秀出來
Client 端連上 Server 後, echo $DISPLAY, 會顯示 localhost:1x.0
localhost:10.0
Server 端的 localhost 會 listen 601x port
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
台式英文只有台灣人聽得懂
Windows XP 念 Windows 叉P
MP3 念 MP三
我不反對這樣的念法(自己平常也是這樣念), 語言是一種溝通工具, 聽得懂就好.
但是不要跟外國人講台式英文, 聽的人大概會三條線.
本來想要去 象山 看101 跨年煙火秀, 不過有點下雨, 於是作罷.
就近去國父紀念館看, 人還是滿多的.
精彩的時刻時間過得特快, 感覺好像不到 2分8秒
SONY 不曉得花多少錢買那個廣告?
(BRAVIA by Sony)
2005-01-02 Update: 原來這次的煙火秀, 是由 SONY 獨家贊助
ASUS S1300N 買了約兩年半, 想買電池卻已經停產, 連副廠的電池也買不到 :(
只能用 換芯維修 的方式.
爾後 NB 買一年後就要買第二顆電池備用, 以免停產.
2005-12-31 Update: 電池換芯回來了, 效果還挺不錯, 跟新的一樣.
I wrote a bash script to add X-Country tag to mail header.
e.g.: X-Country: TW
X-Country tag may be used for basic spam filtering.
Install:
Download xcountry.tgz
tar zxf xcountry.tgz -C /
ip-to-country data in /usr/local/xcountry, xcountry in /usr/local/bin
Usage:
Add following to procmailrc
:0fw
| /usr/local/bin/xcountry
# This example delete any mail from China and Korea.
:0
* X-Country: (CN|KR)
/dev/null
and you can use IP as parameter to get country code.
eg.
# xcountry 168.95.1.1
TW
# xcountry 200.200.200.200
BR
ref. Spamhaus TOP 10 Spam Origin Countries
發信的 Client 端若在 Mail Server 的內部, Header 會出現 Private IP 的資訊
如: Received: from [192.168.1.77] (host77 [192.168.1.77])
這樣會有資訊洩露的安全性問題
在 header_checks 加上
/^Received:.*\[(192\.168|172\.(1[6-9]|2[0-9]|3[01])|10)\./ IGNORE就可以隱藏這些資訊
/^Received:.*\[127\.0\.0\.1/ IGNORE
How to Enable TCP/IP Forwarding in Windows XP
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"IPEnableRouter"=dword:00000001
相當於 Linux 下的 sysctl -w net.ipv4.ip_forward=1
(echo 1 > /proc/sys/net/ipv4/ip_forward)
昨天第一次用 Sonicare 音波振動牙刷
效果果然和傳說中一樣好, 刷完用舌頭舔牙齒就可以感覺明顯差別, 這是傳統牙刷無法達到的清潔效果.
雖然 Gmail Help Center 有提到
As a security measure to prevent potential viruses, Gmail does not allow users to receive executable files (such as files ending in .exe) that could contain damaging executable code.
Gmail does not accept these types of files, even if they are sent in a zipped (.zip, .tar, .tgz, .taz, .z, .gz) format. Any message of this type sent to your Gmail account will be bounced back to the sender.
但是實測 Gmail 只有檔 .zip .rar
.tar .tar.gz .tgz .tar.bz2 .bz2 .gz 都可以通過
另外也可以透過改副檔名或加副檔名的方式成功寄到 Gmail, 如 file.exe -> file.exe.foo
在 數位男女 看到一篇 避開中山高收費站之路徑(需登入) 的文章
我再仔細分析過
避 楊梅收費站、員林收費站、新市收費站 是比較實用的
其他的都是公里數太長(如造橋收費站)、公里數差距過大(如新營收費站)或路不好走(如泰山收費站),
若考慮多花的時間及平面道路油秏較多, 不見得比較划算.
(南下)
避 楊梅收費站: 楊梅交流道下, 台一線, 湖口交流道上. 這一段國道與省道是平行的, 里程差 1.5KM
避 員林收費站: 員林交流道下, 北斗交流道上, 里程差 3.8KM
避 新市收費站: 安定交流道下, 國道8系統交流道上, 里程差 2.1KM
下次走走看避楊梅收費站的路.
Windows 下有些檔案(如安裝程式)的內容會有一些公司名稱、版本等資訊
Linux 下可以用 strings 來取得這些資訊
例: 取得 Skype 安裝程式的檔案資訊
# strings -e l SkypeSetup.exe | grep -A20 CompanyName
CompanyName
Skype Software S.A.
FileDescription
FileVersion
1.4.0.71
InternalName
OriginalFilename
ProductName
ProductVersion
VarFileInfo
Translation
若有檔案想分享給別人, 自己又沒架站, 可以用以下這些站的服務
RapidShare
這家 link 最常看到, 滿多人用的, 可能是因為很多人用, 速度不快
檔案大小限制: 50MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
要等秒數
網址範例: http://rapidshare.de/files/5125227/msnpp.exe.html
SendMeFile.com
檔案大小限制: 30MB
保留時間: 14天
要等秒數
網址範例: http://www.sendmefile.com/00084416
mytempdir.com
檔案大小限制: 25MB
保留時間: 14天
要等秒數
網址範例: http://sr2.mytempdir.com/159383
Savefile.com
檔案大小限制: 60MB
保留時間: 14天
不用等秒數, 經過兩個畫面才下載
不能上傳執行檔(bat, exe 等)
網址範例: http://savefile.com/files/9620290
Upload2.net
檔案大小限制: 25MB
保留時間: 系統會自動刪除超過一年天沒有存取的檔案
要等秒數
網址範例: http://www.upload2.net/download2/06JeYcErSZcvicW/msnpp.exe.html
UltraShare.net
檔案大小限制: 28.6MB (30,000,000 bytes)
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
不用等秒數, 經過兩個畫面才下載
網址範例: http://s5.ultrashare.net/hosting/fs/b26b17fc76032281/
zUpload.com
檔案大小限制: 500MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
不用等秒數
用 wget 不會存成正確檔名
網址範例: http://z11.zupload.com/download.php?file=getfile&filepath=8429
YouSendIt.com
檔案大小限制: 1G
保留時間: 7 天或 25 次下載
不用等秒數
網址範例: http://s27.yousendit.com/d.aspx?id=1JP8X84RJ7DVR2RMG7HSEPATH0
myShareBox.com
檔案大小限制: 100MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
要等秒數
網址範例: http://www.mysharebox.com/dl.php?key=6853783
MegaUpload.com
檔案大小限制: 250MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
要等秒數
網址範例: http://www.megaupload.com/?d=C8M99TOD
UploadSend.com
檔案大小限制: 50MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
不用等秒數
用 wget 不會存成正確檔名
網址範例: http://uploadsend.com/d.php?file=true&filepath=2336
StoreandServe.com
檔案大小限制: 100MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
不用等秒數
網址範例: http://storeandserve.com/download/6644/msnpp.exe.html
mimima.com
BT 檔分享專用
檔案大小限制: 未知, BT 檔都不大, 應該是沒有限制
保留時間: 未知
檔案上傳後, 會自動改為 [0-9A-Za-z]{10}.torrent
立即下載, 不用等秒數
網址範例: http://www5.mimima.com/link.php?ref=6njV6mY6IA
2005-09-18 Update: Savefile.com, Upload2.net, UltraShare.net
2005-10-20 Update: zUpload.com, YouSendIt.com, myShareBox.com
2005-10-28 Update: MegaUpload.com, UploadSend.com, StoreandServe.com
容量最大的是 YouSendit.com(1G), 保留最久的是 Upload2.net(一年)
ref. Free online file storage/sending
free-webhosts.com 有列出一些 Free DNS Hosting
當手邊沒那麼多機器時, 可以用這些服務來設定多台 DNS
推薦兩家
EveryDNS.net 介面簡潔, 設定容易, 可設定 Master/Slave, 免費帳戶最多可管理 20 個 domain, 有四台 name server:
ns1.everydns.net
ns2.everydns.net
ns3.everydns.net
ns4.everydns.net
當 Slave 時, Master 需設定 allow-transfer { 64.158.219.3; };
XName.org 功能強大, 支援 IPv6, 可設定 Master/Slave, 有兩台 name server:
ns0.xname.org
ns1.xname.org
當 Slave 時, Master 需設定 allow-transfer { 195.20.105.149; 193.23.158.13; };
覺得好用的話可以 donate
昨天結識了一位舞者 - 李偉淳, 他是前雲門舞集2舞者,
9月30日至10月2日(五六日三天), 將在 國立台北藝術大學 舞蹈廳推出畢業舞展「尋找另一個自己」
歡迎大家去捧場.
ref. 蕃薯藤新聞: 北藝大畢業舞展 李偉淳尋找另一個自己
據說 Apache 2.0 的效能較好, 一些常用的 Module, 已經內含, 很方便.
準備檔案
wget http://ftp.cis.nctu.edu.tw/data/UNIX/apache/httpd/httpd-2.0.54.tar.gz
wget http://tw.php.net/get/php-5.0.5.tar.bz2/from/tw.php.net/mirror
安裝
tar zxf httpd-2.0.54.tar.gz
tar jxf php-5.0.5.tar.bz2
cd httpd-2.0.54 (Apache2)
./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf \
--enable-module=so \
--enable-ssl --enable-rewrite --enable-proxy
make
make install
cd ../php-5.0.5 (PHP5)
./configure --with-mysql --with-apxs2=/usr/local/apache/bin/apxs \
--enable-module=so --with-config-file-path=/usr/local/etc \
--libexecdir=/usr/local/apache/libexec --with-iconv \
--with-gd --with-zlib --with-jpeg-dir
make
cp .libs/libphp5.so /usr/local/apache/modules (把 PHP5 modules copy 到 Apache modules 目錄下)
SSL
參考 How can I create and use my own Certificate Authority (CA)?
cd /usr/local/apache/conf
openssl genrsa -out server.key
(若要 Apache 啟動時不需密碼, 就不要加 -des3, 若有加 -des3 後, 最後要調整為不要密碼, 可參考 How to remove a pass phrase?)
openssl req -new -key server.key -out server.csr
openssl genrsa -out ca.key
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
./sign.sh server.csr (sign.sh 在 modssl tar ball 內 pkg.contrib 目錄可以找到)
chmod 400 server.*
mv server.crt ssl.crt
mv server.key ssl.key
若覺得上述步驟太麻煩, 也可以這樣來產生自簽 Key
openssl req -new -x509 -nodes -out ssl.crt/server.crt -keyout ssl.key/server.key -days 3650
設定 httpd.conf
LoadModule php5_module modules/libphp5.so
DirectoryIndex index.html index.htm index.php (在 DirectoryIndex 該行後加上 index.php)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
啟動 /usr/local/apache/bin/apachectl startssl
今天 HiNet 使用者可能會發現連不上 Google, 其實是 HiNet DNS 解析有問題,
寫了個 script 把各大 ISP 的 DNS 檢查一下, 發現有一半查出來是不正常的,
查 www.google.com.tw 得到 66.102.7.99, 66.102.7.104, 66.102.7.147 是正常的.
查到 66.249.89.99, 66.249.89.104 是不正常的.
dns.hinet.net 168.95.1.1 failed
hntp1.hinet.net 168.95.192.1 failed
hntp3.hinet.net 168.95.192.2 failed
ksdns.seed.net.tw 139.175.10.20 OK
tcdns.seed.net.tw 139.175.150.20 OK
dns.seed.net.tw 139.175.55.244 OK
dns1.seed.net.tw 139.175.252.16 failed
dns1.giga.net.tw 203.133.1.8 OK
dns2.giga.net.tw 203.133.1.6 OK
dns2.tfn.net.tw 211.78.215.200 failed
dns1.tfn.net.tw 211.78.215.137 failed
ns2.so-net.net.tw 61.64.127.2 OK
ns1.so-net.net.tw 61.64.127.1 OK
若連 Google 有問題的話, 把 DNS 改為上述 OK 的 DNS 即可.
2005-09-12 Update: 現在各 ISP 的 DNS 都可以查到正確的資料了
最近有個 台北牛肉麵節 網路票選台北市牛肉麵, 票選結果出爐.
這種票選只能當參考, 大概有一半以上是比店家所能號召的投票部隊多寡.
個人滿喜歡吃牛肉麵的, 只要是店家有賣有牛肉麵, 我一定會點牛肉麵!
台北的牛肉麵我不熟, 但是台中的牛肉麵我吃過滿多家的, 推薦幾家比較讚的:
六六順 南屯路上, 南屯路與五權路交叉口附近, 由市區往南屯方向, 過五權路, 在左手邊
湖南味 精武路上, 由市區往太平方向, 在左手邊
提督府 復興路上, 復興路與台中路交叉口附近, 台中酒廠對面
同事拿了一台 Acer TravelMate 3002WTCi, 請我幫忙灌一些軟體...
這台強調輕巧靈動, A4 大小, 其廣告是一隻小狗咬著 Notebook, 跳進車裡找主人, 俗稱小狗機或 A4 機.
第一個印象是質感很好!
值得一提的規格: 1.4KG、12.1"鏡面螢幕、Gigabit網路卡、外接式DVDl燒錄機、兩顆電池(3cell+6cell)
鏡面螢幕外表看起來很炫, 但是除了可以照鏡子外, 沒什麼用, 在使用時螢幕仍舊會反射, 看到螢幕中的自己, 我寧願選擇一般的螢幕.
12.1"的螢幕(1280x768), 字看起來略小.
提供的兩顆電池, 3cell 電池和 Notebook 的後面密合, 6cell 則會突出一塊, 6cell 的實際使用時間約四小時, 廣告宣稱的 6.5 小時, 是兩顆電池合計的時間.
右手邊有一個 USB 接頭, 接滑鼠很方便.
我給這台 85 分.
free-webhosts.com, freewebspace.net 這兩個網站提供不少 free hosting 的資料, 有條件搜尋,
大部分都有廣告, 沒廣告的通常空間小或是功能比較少.
WCG 2005 offical games 仍舊有 StartCraft, 已經連續 n 年入選 offical games 了.
不愧是經典遊戲, 我有時還會拿出來玩一下, 現在 Patch 出到 1.13c.
Blizzard 很早就註冊了 starcraft2.com, 或許有出 StarCraft2 的計畫.
Update: 根據 DK 的訊息, Blizzard 不會出 StarCraft2 了 :(
查了一下, 官方的 General FAQ 提到:
Will you be making StarCraft II?
We have not announced any current plans for StarCraft II. We are all very close to the worlds and characters we created in the original game and the expansion set and while we do intend to revisit that universe, we have no plans to do so at this time.
自從用 Bloglines 後, 就發現用 Movable Type 架的 Blog, RSS 會有圖出不來的狀況(我的也是),
不知道是什麼原因, 是本來就這樣還是設定的問題?
另外,
Movable Type 最近出 3.2 版, 授權改回和 2.x 一樣, 付費版本只差在 Service (Expert tech support).
昨天有試用了一下, 2.x 版升級上來, 除了 Plugins 外, 幾乎不用改就能直接用,
MT 3.2 先試一段時間再來換.
安裝 Tomcat
wget http://archive.apache.org/dist/jakarta/tomcat-5/v5.5.11/bin/jakarta-tomcat-5.5.11.tar.gz
tar zxf jakarta-tomcat-5.5.11.tar.gz -C /usr/local
mv /usr/local/jakarta-tomcat-5.5.11 /usr/local/tomcat
下載 JDK 5.0 http://java.sun.com/j2se/1.5.0/download.jsp
chmod +x jdk-1_5_0_04-linux-i586.bin
./jdk-1_5_0_04-linux-i586.bin
mv jdk1.5.0_04 /usr/local/java
解開後放到 /usr/local/java
編輯一個 script for tomcat (/usr/local/bin/tomcat.sh)
#!/bin/sh
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
case $1 in
start)
/usr/local/tomcat/bin/startup.sh
;;
stop)
/usr/local/tomcat/bin/shutdown.sh
;;
esac
啟動 tomcat 用 tomcat.sh start, 關閉用 tomcat.sh stop
註: 在啟動 tomcat 前, JAVA_HOME, CATALINA_HOME 變數是必要的
編譯 mod_jk.so
wget http://archive.apache.org/dist/jakarta/tomcat-5/v5.5.11/src/jakarta-tomcat-5.5.11-src.tar.gz
tar zxf jakarta-tomcat-5.5.11-src.tar.gz
cd jakarta-tomcat-5.5.11-src/jakarta-tomcat-connectors/jk/native
./buildconf.sh
./configure --with-apxs=/usr/local/apache/bin/apxs
make
cp apache-1.3/mod_jk.so /usr/local/apache/libexec
註: 加 mod_jk.so 的用意就是可以用 JkMount 把 webapps 下的目錄 mount 到 DocumentRoot, 使可以不用打 :8080
設定 Apache
在 httpd.conf 加入
LoadModule jk_module libexec/mod_jk.so
AddModule mod_jk.c
JkWorkersFile conf/mod_jk.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
# 指定那些檔案、目錄要用 Tomcat 去跑
JkMount /*.jsp ajp13
JKMount /jsp-examples/* ajp13
註: apache 在編譯時, configure 需加入 --enable-module=so 參數
在 apache conf 目錄下建編立 mod_jk.properties, 內容如下
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
註: ajp13 指 Apache JServ Protocol version 1.3
啟動 tomcat, 重新啟動 apache, 連連看
http://[your host]/index.jsp
http://[your host]/jsp-examples/
若有看到網頁, jsp 範例程式也正常, 大功告成!
rpm2cpio file.rpm | cpio -idv
-i for Extract
-d for Create leading directories where needed
-v for Verbose
Google Talk IM 的部分是用 Jabber/XMPP 協定, 所以用 3rd Party 軟體, 如 Gaim(設定方法) 也可以連.
IM 的功能很陽春, 僅有純文字的聊天功能, 字不能設 Style(大小、顏色等), 沒有表情圖案, 沒有個人圖示.
語音的部分, 和 Skype 比較, 兩者音質非常接近, 反覆測了很多次, 感覺 Skpye 的音質還是比 Google Talk 好一點點.
水餃皮沒包完, 我跟老婆說「把皮切一切, 就變成刀削麵了」
今天中午就吃到了「水餃皮肉燥麵」
看起來和粿仔條差不多, 吃起來麵粉味重了點, 還不錯啦!
Postfix 本身就有虛擬帳號功能, 再加上 vm-pop3d, 使得虛擬帳號使用者可以收 mail
/etc/postfix/main.cf 新增 virtual_maps = hash:/etc/postfix/virtual
user@domain1.com user.domain1.com
herny.pan@domain2.com henry.pan.domain2.com
mydestination 要加上 domain1.com, domain2.com
# postmap /etc/postfix/virtual (更新 /etc/postfix/virtual.db)
/etc/aliases 新增
user.domain1.com: /var/spool/virtual/domain1.com/user
henry.pan.domain2.com: /var/spool/virtual/domain2.com/henry.pan
# newaliases (更新 /etc/aliases.db)
到此 Postfix 部分設定完成(信件已可送到指定的目錄), 裝好 vm-pop3d, 以 inetd 或 xinetd 啟動,
再設定 vm-pop3d, 建郵件目錄及建密碼檔
建郵件目錄
mkdir -p /var/spool/virtual/domain1.com /var/spool/virtual/domain2.com
chown -R mail.mail /var/spool/virtual
目錄的 uid 要跟 Postfix 的 default_privs 一樣
建密碼檔
mkdir -p /etc/virtual/domain1.com /etc/virtual/domain2.com
htpasswd -c /etc/virtual/domain1.com/passwd user
htpasswd -c /etc/virtual/domain2.com/passwd henry.pan
再建立同 domain 的其他 user, 不用加 -c, 如 htpasswd /etc/virtual/domain1.com/passwd user2
Mail Client 端的設定
vm-pop3d 的虛擬帳號登入名稱, 要使用 Email 全名, 如 user@domain1.com
原有的主機帳號使用者不變
ref:
virtualmail-pop3d FAQ
使用 vm-pop3d 建置郵件虛擬帳戶
參考 abelyang 的文章 MSN Alert Testing , 用 tmsnc 0.1.5 版 + expect 弄了個簡單的 MSN bot, 用來做 WEB2MSN (網頁傳訊到 MSN)
想要測試的人, 請新增 MSN 連絡人: msn@pank.org
配合時間排程(crontab), 可以做到行事曆提醒功能
CLI 傳訊方法
wget -O /dev/null "http://pank.org/msn/?msn=MSN帳號&msg=訊息"
或
lynx -dump "http://pank.org/msn/?msn=MSN帳號&msg=訊息"
若 MSN bot 狀態是離線則無法傳訊
ref. Web2Messenger
Update: tmsnc 連得不太順, MSN bot 不定時上線
前不久註冊了 DreamHost 這家 Hosting (Crazy Domain Insane! 方案), 目前作為網站的備援.
使用一段時間後覺得還不錯, 該有的都有了, 最重要的是有 Shell 可以用.
Shell 下工具程式很齊全, 我常用的 joe、wget、ncftp 都有, 也可以用 crontab, 可以 su 到其他帳號,
一般 User 該有的權限都有, 沒有什麼限制, 只差沒有 root 權限.
比上次試用一個月 GoDaddy 的 Hosting 好很多.
從 TANET 抓檔測試, 大概 200~300K/s, 上傳到 DreamHost, 速度不佳, 只有 30~40K/s 左右, 這大概是唯一缺點.
DreamHost 主機 OS: 應該是 Debian 3.0 (/etc/issue, /proc/version)
硬體規格
4 顆 Intel(R) Xeon(TM) CPU 2.80GHz (/proc/cpuinfo)
2G RAM
2 張網卡, 都是 Intel(R) PRO/1000 (/var/log/dmesg), eth0 bind 數十個 IP, eth0 bind 了 2 個 10.3.39.0/24 IP, 內部用 NFS 串起來
Crazy Domain Insane! 方案一年 $119.4, 二年 $190.8
內容含一個 Domain 註冊, 3 個 Full domain hosting, 15 個 Sub-domain hosting, 2.4G 容量, 月流量 120G
(GoDaddy 的 Delux Plan, 一年和 DreamHost 一樣要 $119.4, 一個 Domain hosting, 2G 容量, 月流量 100G)
DreamHost 有推薦制度, 推薦者可以自製 Promo Code, 我做了一個 Promo Code: WELCOME
註冊時填 WELCOME 可以有 $92 (美金)的折扣, 也就是一年 $27.4, 二年 $98.8
SJphone 直接輸入 SIP address 撥打, 效果普通
Jajah 輸入 sip:SIP address 撥打, 撥 SIP address 有嚴重延遲, 在我的環境下大概差 4~5 秒, 似乎有經過中央 Server
Gizmo 號稱使用 SIP protocol, 但是不曉得如何撥打 SIP address
註: 使用 SIP protocol 的網路電話, 會有一個 SIP address, 跟 Email 格式一樣, 例如: pank@sipserver.com
ATX Power 的 Connector, 將兩個●接腳用迴紋針接觸一下即可
卡榫朝上示意圖
□□□●●□□□□□
□□□□□□□□□□
改裝舊的 CD-ROM 為 CD Player 時就會用到啦
Yahoo Messenger 今天出了 7.0 正式版, 7.0 的賣點是 VoIP 功能
立即下載來試試, 和 Skype 比較一下
Yahoo Messenger 的音質比較接近真實狀況, 雜音較多
Skype 似乎對人聲有作特別處理, 人聲很清楚, 雜音較少
結果仍是 Skype 比較優
MMS Ripper is a command line mms:// protocol downloader.
最近台中縣政府在推 兩馬觀光季
昨天到 后豐鐵馬道、東豐自行車綠廊 騎腳踏車, 到了傍晚, 竟然還會塞車(腳踏車)
后豐鐵馬道4.8KM 東豐自行車綠廊12KM, 全線來回 33.6KM
后豐鐵馬道是今年才完工的自行車專用道, 由台鐵舊山線改建, 起點在豐原國道四號線高架橋下方, 終點至后里馬場
Making Firefox Handle Multiline Pasted ("Broken") URLs
網址列打 about:config
然後把 editor.singleLine.pasteNewlines 的值改成 3 (表示 3 行)
如此 Firefox 會把斷行的網址自動接起來, 不用再手動剪貼
ref. gslin's 在 Firefox 上貼網址
MSN Messenger 最近流出 7.5.0160 及 7.5.0162 Beta 版
msnmessenger7.net 有下載點
MSN Messenger 7.5.0162 中文版(中文化+修正 repacked)
msgslang.dll 使用 大野狼 所製作的中文化檔案
主程式經 MSNPP 修正
20050803 Update
MSN Messenger 7.5.0244 中文版(中文化+修正 repacked)
2005-11-04 Update: 上述連結已指向最新的 MSN Messenger 中文版
把一些 GNU 工具 for Win32 蒐集起來, 包裝成 Unix Utilities Collection for Win32 1.0
(非 Cygwin 內的程式)
由以下套件組成
GNU utilities for Win32, winbash, wget, rar, base64, mmencode, vim, strings, bind9,
whois, hexl
在 cmd 視窗就可直接使用
cf. UnixKit (有用到 Cygwin 的程式)
2005-07-25~30 利用蜜月回來還有一星期的休假時間
25晚 台中→台北 22:00 出發
26台北→宜蘭, 本來以為雪山隧道通了, 結果還沒通, 只到石碇, 改走北宜
27宜蘭→台東, 蘇花公路, 台九線
28台東→屏東(墾丁), 台九線
29屏東→高雄, 台一線
30高雄→台中, 二高 15:30到家
總里程1150KM
照片
宜蘭→台東 這一段比較趕, 幾乎整個早上都在開車, 台九線 台東→屏東 路況很差, 沿路有多處坍方,
回來時有經過楓港大橋(被海棠吹倒的萊爾富)
環島大概要一星期左右的時間, 時間才比較充裕
2005-08-02 News
最高速限一百公里 北宜高頭羅段 十月底通車 預估明年三月以前, 台北南港至蘇澳總長五十五公里的國道五號高速公路,將免費開放用路人使用
舊版千元鈔右上角幾何圖案中的三角形, 應該是45度, 卻寫成60度
7/20 發行了新版五百元、一千元鈔券, 大概是中央銀行也發現了這個 Bug, 而刪除了幾何圖案
7/17 是我大喜的日子, 感謝當天前來幫忙的親戚朋友同學們, 使得婚禮能順利進行, 也感謝親臨祝福的每一個人.
Jason 版的照片 | Michael 版的照片
結婚後去 關島 玩了五天, 因此 Blog 才荒廢了一陣子
SkypeIn 是 Skype 的付費服務, 使一般電話能撥到 Skype.
好奇之下, 去買了個美國的號碼來玩玩, 三個月€10, 主要是想試試看買了號碼後 SkypeOut 會不會有 Caller ID 功能. 沒有顯示號碼是 SkypeOut 的致命缺點.
測試結果令人失望, 即使有了 SkypeIn 號碼, SkypeOut 撥出去也沒有 Caller ID, 一般電話撥進則正常(撥打的人要打國際電話).
所以在還沒有台灣號碼之前, SkypeIn 並不實用.
Windows Services for Unix 是微軟提供的免費軟體, 類似 cygwin
要填一些資料才能下載(之前可以直接下載), Search Keyword SFU35SEL_EN.exe 可以找到直接下載位址.
個人認為不怎麼好用, 裡面的程式 rename 為 .exe Copy 到其他電腦是不能用的, 需要 SFU 相依的 dll.
若只是要用一些 GNU 工具推薦使用 GNU utilities for Win32
7.0.0777 版可以經由修改 registry 來接收執行檔, 7.0.0813、7.0.0816 已經不適用了(改了沒用)
修正方法請參考 MSN Messenger Hex Editting Tutorial
即
Find 74 13 6A 68
Edit EB -- -- --
可以直接用 MSNPP 或安裝修改好的版本 Pure MSN Messenger
msnnoad is a small program I wrote for remove MSN Messenger's ad.
now msnnoad rename to MSN Messenger Pure Patch (abbr. MSNPP).
MSNPP's goal is makes MSN Messenger pure and clean.
MSNPP is universal, in other word, MSNPP can apply to any version of MSN Messenger.
Download MSNPP (23K)
Download Pure MSN Messenger (Official MSN Messenger + MSNPP repacked version)
Features:
Allow multi-open (polygamy)
Remove bottom ad
Remove top Messenger title (string) NEW
Remove MSN Today button
Remove left tab
Remove bottom Add Contact button
Remove bottom MSN search bar
Remove text ad at bottom of dialog window
Remove file transfer protection (receive any file type) NEW
(Apply to MSN 6 only first 2 features)
Other similar programs
A-Patch
Clean Messenger
Mess Patch
MSNMSGR Ghost
MSN Messenger No Advertisement
寫了一個 羅馬拼音查詢 程式, 對照表參考 五種華語拼音系統對照表
現在台灣的英譯很亂, 同一個地名、道路, 有好幾種翻法.
個人認為要國際化就用漢語拼音, 漢語拼音在中國推行已久, 又有 ISO 標準, 唯一缺點是有用到 ü 符號, 例如: 女(nü)
政府應該摒除成見, 直接採用漢語拼音當作標準.
現在裝的 Extensions 很少
All-in-One Gestures 滑鼠手勢
Right Encoding 按右鍵可以選編碼, 不用到檢視選單
Tab Mix 提供很多 Tab 加強功能, 如: 把 Tab 移到下方、雙擊 Tab 關閉、滑鼠拖曳 Tab、設定開新視窗到 Tab
新同文堂 網頁簡繁轉換
jsLib Light 新同文堂所需的 Lib
ref. MozTW Firefox 擴充套件 Top 15
愛之味 的健康の油切綠茶最近頗紅, 第一支很白爛的 "油油油, 切 it out" 廣告, 令人印象深刻.
有人說這支廣告很爛, 我倒覺得這支廣告很成功, 不過內容涉嫌誇大誤導消費者, 後來就禁播了(ref. 油切可沿用 廣告須更改).
由於這飲料的出現, 使得「油切」變流行, 「油切」一詞源自於日文.
健康の油切綠茶600公克建議售價35元, 屬中高價位, 賣點是添加膳食纖維, 口味我不太喜歡.
市售的無糖綠茶目前還是覺得 御茶園 好喝.
x11vnc allows one to remotely view and interact with real X displays.
一般的 VNC Server, 需佔用另一個 DISPLAY, 無法與本地的 X 共用 DISPLAY :0
使用 x11vnc 就可以和本地的 X 共用 DISPLAY :0, 即遠端看到的畫面和本地看的畫面一樣, 和 for Windows 的 VNC 類似.
e.g. x11vnc -forever -shared -rfbauth /root/.vnc/passwd
-forever keep listening for more connections
-shared more than one viewer can connect at the same time
-rfbauth use authentication on RFB protocol
x11vnc 還有簡單的 Web Server 功能, 首引檔是 index.vnc
e.g. x11vnc -httpdir /www -httpport 80
w3m 在 X 的 console 下竟然可以秀圖, 真是太神奇了!
記得以前試的時侯沒有圖啊, 可能圖出來的速度比較慢, 沒注意到 (現在是 0.5.1 版)
procmail: Suspicious rcfile "/home/user/.procmailrc"
procmail: Couldn't read "/home/user/.procmailrc"
If your rcfile's permission is not correct, you'll see something error like above.
/home/user/.procmailrc must have permission 644
ref. man procmail
Suspicious rcfile "x"
The owner of the rcfile was not the recipient or
root, the file was world writable, or the direc-
tory that contained it was world writable, or
this was the default rcfile ($HOME/.procmailrc)
and either it was group writable or the directo-
ry that contained it was group writable (the rc-
file was not used).
把 Gmail 當成線上記事簿! 這是我最近發現的用法
撰寫郵件後, 寫上要記的內容, 儲存草稿即可, 也可以套用分類標籤,
如此無論在那裡, 都可以查看 Gmail 記事簿, 挺方便.
另外前不久(20050607) isnoop.net Gmail invite spooler 關了, 原因是 Gmail's Product Manager 再也受不了這種服務.
winbash is a native win32 version of GNU bash without requiring the cygwin DLLs.
Download
bash 1.14.7, 版本有點舊
ref. GNU utilities for Win32
Port to Services (查詢 port.tcp.portsdb.org 或 port.udp.portsdb.org 的 TXT record)
e.g.
# host -t txt 3389.tcp.portsdb.org
3389.tcp.portsdb.org text " Remote Desktop Protocol (RDP)"
3389.tcp.portsdb.org text "ChiliASP"
3389.tcp.portsdb.org text "ms-wbt-server"
# host -t txt 6000.tcp.portsdb.org
6000.tcp.portsdb.org text "x11"
6000.tcp.portsdb.org text "ChiliASP"
6000.tcp.portsdb.org text "eXcursions"
6000.tcp.portsdb.org text "Brick RCAPI"
Servie to Ports (查詢 service.tcp.portsdb.org 的 TXT record)
e.g.
# host -t txt https.tcp.portsdb.org
https.tcp.portsdb.org text "443"
# host -t txt edonkey.tcp.portsdb.org
edonkey.tcp.portsdb.org text "4661"
edonkey.tcp.portsdb.org text "4662"
ref. Ports Database
BASH 中 (( )) 表示數值運算, 介紹一些數值的表示法
((C=A+B)) 等於 let C=A+B 等於 C=$((A+B)) 等於 C=$(($A+$B))
((A++)) 等於 let A++ 等於 A=$((A+1)) 等於 A=$(($A+1)), 其他類似的寫法如 A--, ++A, --A
((B=B+A)) 可以寫成 ((B+=A)), 其他類似的寫法如 ((B-=A)) ((B*=A)) ((B/=A))
條件式
((A>B)) 等於 [ $A -gt $B ]
((A==B)) 等於 [ $A -eq $B ] 等於 [ $A = $B ] (兩數值一樣時, 當作字串比對還是一樣)
((A!=B)) 等於 !((A==B)) 等於 ! [ $A -eq $B ] 等於 [ $A != $B ]
所有 comparison > < >= <= == !=
乘羃 ** 如 let A=2**10
餘數 % 如 let A=100%3
數字前加 0 表示八進位, 如 010
數字前加 0x 表示十六進位, 如 0x10
PS. BASH 數值表示範圍 -(2^63) ~ 2^63-1
即 -9223372036854775808 ~ 9223372036854775807
GNU utilities for Win32 (3.2MB)
不用裝 Cygwin, 即可以在 Windows cmd 視窗使用常用的 GNU utilities
簡易安裝法: 解開把 *.exe 複製到 Windows 目錄(或者 PATH 有指到的地方)
copy usr\local\wbin\*.exe %windir%
An example to build disk image directly
#!/bin/sh
B=16 # cylinders
P1=100 # cylinders
P2=200 # cylinders
dd bs=1k count=16 if=/dev/zero of=0 # Linux disk first 16k stores MBR and partition table
dd bs=1k count=$((P1*64-$B)) if=/dev/zero of=1
dd bs=1k count=$((P2*64)) if=/dev/zero of=2
printf "nn\np\n1\n\n$P1\na\n1\nn\np\n2\n\n$P2\nw\nq\n" | fdisk -H 4 -S 32 -C $(($P1+$P2)) 0
mke2fs -F 1
mount -o loop 1 /mnt
cp files /mnt # copy your files to partition 1
umount /mnt
mke2fs -jF 2
mount -o loop 2 /mnt
cp files /mnt # copy your files to partition 2
umount /mnt
cat 0 1 2 > image.dd
Load image to disk
# dd if=image.dd of=/dev/sda
# fdisk -l /dev/sda
Disk /dev/sda: 32 MB, 32702976 bytes
4 heads, 32 sectors/track, 499 cylinders
Units = cylinders of 128 * 512 = 65536 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 100 6384 83 Linux
/dev/sda2 101 200 6400 83 Linux
macchanger 和 ifconfig [interface] hw ether [MAC] 的功能一樣, 可以變更網路卡卡號,
但並不是實體地修改卡號, 重開機後仍會回復, 嚴格說起來是可以設定網路卡卡號.
另外一個好用功能是可以查詢 vendor
查詢本機 eth0
# macchanger -s eth0
Current MAC: 00:02:b3:9b:b9:ba (Intel Corporation)
查詢 00:e0:4c 開頭是那一家做的
# macchanger -l | grep 00:e0:4c
7079 - 00:e0:4c - Realtek Semiconductor Corp.
列出 D-Link 的 MAC list
# macchanger --list=D-Link
Misc MACs:
Num MAC Vendor
--- --- ------
Wireless MACs:
Num MAC Vendor
--- --- ------
0012 - 00:05:5d - D-Link DWL-650, DWL-650H
0013 - 00:06:25 - Linksys WPC11 v2.5, D-Link DCF-650W, Linksys WPC11 v3
# macchanger --list=D-link
Misc MACs:
Num MAC Vendor
--- --- ------
1374 - 00:05:5d - D-link Systems, Inc.
3426 - 00:0d:88 - D-link Corporation
3863 - 00:0f:3d - D-link Corporation
5340 - 00:50:ba - D-link
5862 - 00:80:c8 - D-link Systems, Inc.
Wireless MACs:
Num MAC Vendor
--- --- ------
指定 keyword 大小寫有差, 資料檔 /usr/local/share/macchanger/OUI.list 的內容, 大小寫並沒有統一,
還是用 macchanger -l | grep -i keyword 比較實用
P7ZIP 是 7ZIP 的 UNIX 版,
Supported formats: 7z, ZIP, CAB, RAR, ARJ, GZIP, BZIP2, Z, TAR, CPIO, RPM and DEB
要下載 source, make 7z 後, 才有解 RAR 的功能,
其解碼模組放在 /usr/local/lib/p7zip
binary package 裡面的 7za, 不能解 RAR
gcin 已比初期好很多(上一次試是 0.6.x)
在 Mandriva Linux LE2005 裝 0.9.7, rpm 已經做好大部分的修改動作,
只要在 /etc/X11/xinit/XIM 前面加一行
XIM_PROGRAM=gcin
就大致 OK
唯一問題是遇到 Firefox、Thunderbird 時, 輸入視窗會卡在左上角,
作者表示, 這是 GTK2 的問題, 修正方法
不過 Firefox 官方版沒有把 libwidget_gtk2.so 分開,Mandriva 自己編的 Firefox 有.
我試了 Mandriva Linux 2005LE 內建的 Firefox 1.0.2 及 cooker Firefox 1.0.4 rpm,
用修正過的 so 檔覆蓋原檔後, over-the-spot 就正常了.
使用 Ext2fsd 可以讓 Windows 認得 Ext2/Ext3 file system, 可以 mount/umount, 而且可以讀寫, 比 Explore2fs 好用.
要有寫入功能, 在安裝時需勾選
Enable write support for Ext2 partitions
Enable force writing support on Ext3 partitions
mount.exe 是放在 %windir%\system32
e.g.
To mount partition 3 of harddisk 0 to x:, then
mount 0 3 x:
To unmount x:, then
mount /umount x:
x: 是要掛載的磁碟
harddisk 0 是指第一個硬碟
partition 3 是指第三個分割區, 是實體的 partition 順序,
並不一定等於 hda3, 若 partition 3 位於 Ext partition, 就可能是 hda5 或 hda6
Nerd 和 Geek
原本是意思不同的字, 隨著時間的變遷, 這兩個字的意思已經相當(根據 Wikipedia 的描述),
都是指: 技術強的電腦狂熱者
Nerd 原本的意思是聰明但是不善於社交的人
Geek 原本的意思是指瘋狂雜耍的人(表演咬下活蛇頭、活雞頭的雜耍演員)
這兩個字是否同義, 至今仍有一些爭議, 有人認為 Geek 比 Nerd 技術高但更不善於社交, 也有人持相反意見.
Why Geeks and Nerds Are Worth It... 這篇文章滿有趣的,
中譯: 找個 Geek/Nerd 當男友 from Night Thoughts
原來 Windows Media Player 10 就內建轉 WMA 或 MP3 的功能了,
工具/選項/擷取音樂, 可選擇 Windows Media Audio 或 MP3 格式,
選擇音訊品質後按確定, 之後點選擷取Label, 再按右上的擷取音樂.
HTB.init is a shell script derived from CBQ.init that allows for easy setup of HTB-based traffic control.
After I test, I think HTB.init is better and easier then CBQ.init.
Documents and examples in head of HTB.init, default HTB directory /etc/sysconfig/htb, put traffic class here.
淺紅 象棋, 有網路對戰及交談功能, 棋力並不強, 目前有兩個 AI plugin, 棋力分別是中與強,
使用 AI plugin, 選最高等級, 電腦都要想很久很久.
ref. Freshmeat 上的象棋軟體
昨天去參加 「2005國際自由軟體產業策略暨應用高峰會」-最佳企業應用實例研討
主要是去聽 GNU 之父 Richard Stallman 的演講,
相關連結:
IBM Linux Portal - Linux at IBM
Novel Linux Desktop
Novel Hula Project
PS. 感謝幫我拍照的不知名朋友
Dropbear is a lightweight SSH2 server and client, it's small and useful for embedded environment.
Server: dropbear (stripped size 110K in Mandrake Linux 10.0)
Client: dbclient (stripped size 99K in Mandrake Linux 10.0)
Server Setup
mkdir /etc/dropbear
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
or
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
or use dropbearconvert to conver openssh key to dropbear key
eg. dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key /etc/dropbear/dropbear_rsa_host_key
Dropbear's sftp support relies on OpenSSH sftp binary or similar
default path /usr/libexec/sftp-server describes in options.h
以前就曾看到這種蟲, 它會貼在牆壁上, 移動很緩慢, 把它的外衣(袋子)撕開, 可看到裡面的幼蟲, 原來它叫衣蛾
它的袋子是由吐的絲和食物內的纖維連接而成
對人類來說, 它是一種害蟲, 會吃紡織品等東西
NOKIA 8250 這支手機已經陪伴我四年又四個多月,
這支當賣得不錯, 可能很多人都曾用過這支手機.
記得買的時候花了 12K 還是 13K, 忘了,
現在叫我花這麼多錢買一支手機, 實在花不下去, 可見年輕時敗家不眨眼.
現在它有一個小問題, 有時候會聽不到聲音, 要壓一下手機的上半部.
因為它實在是耐摔又好用, 使得我還想再買一支備用, 要找二手機或少數店家的庫存新機,
有人要便宜賣我嗎?
我不需要新的彩色螢幕+照相功能的手機啊!
NetCut 這個 arp spoofing 軟體, 可以切斷區網任何一台電腦與 Gateway 之間的連線, 造成該電腦無法上網
這個應該是大陸人寫的軟體, 稱「網路剪刀手」, 英文版的軟體還有一些拼錯的字 XD
原理很簡單, NetCut 負責假造 arp 封包, 提供目標電腦的假 MAC 資訊, Gateway 收到後便把錯的 MAC 記到 arp table, Client 端的返回封包就無法送達, 也就無法上網.
例: 把目標電腦設定為 Off 後, 在 Gateway 上就會發現目標電腦的 MAC 被 spoofing 了
# arp -a
kelly.i (192.168.0.7) at b2:cc:ba:e9:cb:ae on xl0 [ethernet]
NetCut 並不是時時在發假封包, 所以被鎖定的目標多試幾次還是有機會可以通(機率很小, 而且一下子就斷了)
似乎沒辦法查出那一台在用 NetCut, 因為它只發假的 arp 封包
剛剛試了 Bloglines, 還滿好用的!
在 Bloglines 內 RSS 訂閱 blog、news 等, 不需要灌什麼 RSS reader, 統一在 Bloglines 內閱讀.
HiNet 的 Xuite 內也有類似的功能.
發現 Google Web Accelerator 並不是單純的 local cache, 直接連出去
經測試結果, 其出去的 IP 是 64.233.172.*
NetRange: 64.233.160.0 - 64.233.191.255
CIDR: 64.233.160.0/19
NetName: GOOGLE
也就是有經過 Google 的超大型 Proxy Server, Google 可能對 cache 的資料加以分析, 成為 Google Search 的有利資訊
64.233.172.* IP 位置在美國, 繞到美國再去連網頁, 恐怕比不用 Google Web Accelerator 還慢, 可能還有安全性問題
可以看來源 IP 的站 (後面括號內是使用 Google Web Accelerator 後秀出的 IP, 您看到的 IP 可能與我測試時不同)
http://ipid.shat.net (64.233.172.22)
http://77bbs.com/ip/ (64.233.172.17)
http://ecerami.com/servlet/coreservlets.ShowCGIVariables (64.233.172.4)
http://www.mueloliva.es/cgi-bin/variables.cgi (64.233.172.29)
http://curry.edschool.virginia.edu/go/www_uses/demos/cgi-test.html (64.233.172.24)
http://www.mywanip.com
同事買了一台 PSP, 聲光效果十足, 質感也很好, 還內建無線網路. Technical Specs
售價19800円, 台灣買大概 NT 7000~8000
如果還有導航功能, 會考慮買一台
使用 Thunderbird 寫信, 每行前面若有 Space/Tab, 信寄出後前面的 Space/Tab 會不見, 不曉得這是不是 bug?
原本是
aaa
bbb
ccc
寄出後會變成
aaa
bbb
ccc
因為我習慣用純文字來排版, 每次都發現寄出的信每行前面的 Space/Tab 被 trim 掉, 而造成版面亂掉,
即使選單選擇 選項/格式/只有純文字, 也不行, 純文字沒理由把每行前面的 Space/Tab 被 trim 掉.
解決方法: 選單選擇 帳號設定/寄送與通訊錄/編輯 取消 以HTML格式編輯信件.
Method 1
resize > /tmp/out
. /tmp/out
echo $COLUMNS $LINES
(resize command included in xterm rpm)
Method 2
stty -a | awk -F"[ ;]" '{if (NR==1) print $6" "$9}'
ref. tw.bbs.comp.linux - shell script 中,取用COLUMNS 變數的問題
上星期日去挑婚紗照片
拍出來的結果比預期還好, 我們都覺得很滿意, 攝影師真行!
照片很難挑, 因為看起來都很美, 不曉得要刪那一張,
原本是 36 組, 也就是只能挑 36 張, 要把其他美美的照片刪到剩 36 張, 簡直是不可能任務,
於是加組(加組=加錢), 最後選了 66 組, 又買了所有的原始檔, 真是破費.
總共挑了五個小時, 才把所有的照片都決定好.
SMBIOS Kernel Module provides access to the management information of SMBIOS structures in both human readable and binary form via the /proc file system.
Download
edit Makefile, change INCLUDEDIR to your current kernel source include directory
eg. INCLUDEDIR = /usr/src/linux-2.4.30/include
# make (will generate smbios.o)
# insmod smbios.o (load module)
SMBIOS information available in /proc/smbios
ref. Wikipedia - SMBIOS
GoDaddy 的 Economy Hosting, 一個月 USD 3.95
包含 500MB 空間、每個月傳輸量 25G, 100 個 Email, 一個 Database (MySQL or MS SQL),
有 Linux 及 Windows 平台
這個價格實在很吸引人, 於是買了一個月試看看
提供 FTP 上傳檔案, Email 有提供 POP3, SMTP
頻寬表現也不差, 在不同時間用 HiNet 及 TANET 抓檔測試, 都能得到 200-300K/s 的結果,
即 Godaddy 提供 2M 左右的上傳頻寬
MySQL 有提供 phpMyAdmin 給 user 管理
非常物超所值
比較之下, HiNet 的 Hosting 簡直是天價, 最低檔的, 15MB, 每個月還要 NTD 800
DSLR or Digital SLR = Digital Single Lens Reflex, 數位單鏡反光鏡式相機, 簡言之, 就是數位單眼相機
特性和傳統單眼相機一樣, 僅儲存媒體不同
這類的相機, 都是專業級的高檔相機, 價格不斐
在 DSLR 市場, Canon 目前具領導地位
ref. Wikipedia - DSLR | 奇摩知識 - 什麼是 DSLR
Opera 在四天內下載次數超過一百萬, Opera 總裁要準備橫渡大西洋了!
Opera 網頁上的後續報導
上週五去拍了婚紗, 事實上, 已經延了很多次, 都不巧遇到下雨.
大部分的時間都在等 Kelly 化妝, 覺得攝影師的功力不錯, 他用的相機是用 Canon EOS D60
Kelly 的照片應該都滿好看的, 我是覺得自己笑起來很假.
外景在西湖, 還遇到某客家電視台來採訪我們! 節目主持人是小鍾
(後來查到應該是 客家玩透透 這個節目)
還好當天不是很熱, 不然一直流汗很受不了.
早上拍了兩套衣服, 下午拍外景兩套, 回來再拍三套, 7:50 拍完, 拍照過程很順利.
Download | Release Notes
JOE 3.2 上個月出的新版
我覺得好用的新增功能有
Hex edit mode, joe -hex file, hex search, type `xff`x03 to search for FF03
xterm mouse support
http://sourceforge.net/forum/forum.php?thread_id=1270646&forum_id=74215
前幾天我有介紹這個軟體,
今天發現了
1. 可以用 A, S, D, W 旋轉, 切換視角
2. 某些地方會有細部的空照
錄了一段 Demo (XVID MPEG4, zoom in 舊金山金門大橋), 看看吧
Official World's 200 Tallest High-rise Buildings
台灣有四棟入榜
#1 台北101
#13 高雄東帝士85大樓
#106 台北新光人壽大樓(新光三越)
#200 高雄長谷會議中心
做了個小工具使在瀏覽器中選取英文, 按右鍵, 使用 Google 字典翻譯功能
for Internet Explorer | for Firefox
Firefox 要先裝 Context Search Extenstion
ref. Dave's Blog - Google dictionary
Please read prism54 README first, it's very clear.
The following is my notes.
My environment
Kernel: 2.4.25
Card: Corega CG-WLCB-54GT (ref. Chipsets and Wireless cards supported by the Linux prism54 driver)
eth0 as WAN, eth1 as LAN
I chose 2nd way (not patch kernel) describe in prism54 README
wget http://prism54.org/pub/linux/testing/tars/2004-06/prism54-1.2.tar.bz2
tar jxvf prism54-1.2.tar.bz2
cd prism54-1.2
make KDIR=/usr/src/linux-2.4.25 clean modules
Kernel config
CONFIG_EXPERIMENTAL: y
Code maturity level options --->
Prompt for development and/or incomplete code/drivers
CONFIG_HOTPLUG: : y
General setup --->
Support for hot-pluggable devices
CONFIG_FW_LOADER: m/y (either one will work)
Library routines --->
Hotplug firmware loading support (EXPERIMENTAL)
CONFIG_NET_RADIO : y
CONFIG_NET_WIRELESS : y
Network device support --->
Wireless Lan (non-hamradio)
For PCMCIA Cards :
CONFIG_PCMCIA && CONFIG_CARDBUS
General setup --->
PCMCIA/CardBus support --->
PCMCIA/CardBus support (m or y)
[*] CardBus support (Important!)
Make new kernel (make dep && make bzImage)
Get firmware
mkdir -p /usr/lib/hotplug/firmware
cd /usr/lib/hotplug/firmware
wget http://prism54.org/firmware/1.0.4.3.arm
mv 1.0.4.3.arm isl3890
insmod prism54.o
PCI: No IRQ known for interrupt pin A of device 0000:01:00.0.
eth2: could not install IRQ handler
ifconfig eth2 up
iwconfig eth2 mode master
iwconfig eth2 essid default
Use iwpriv to make MAC ACL control (different from hostap)
iwpriv eth2 setPolicy 0 (Accept every client.)
iwpriv eth2 setPolicy 1 (Accept everybody except client whose MAC is in the list)
iwpriv eth2 setPolicy 2 (Reject everybody except clients in the list.)
iwpriv eth2 addMac xx:xx:xx:xx:xx:xx (add MAC in the list)
iwpriv eth2 delMac xx:xx:xx:xx:xx:xx (del MAC in the list)
Note:
prism54 was build in kernel >=2.4.28 or kernel >=2.6.8, you don't need to patch kernel if you use new kernel.
ref. 使用 PCMCIA wireless card + hostap 架設 AP
http://prism54.org/forums/viewtopic.php?t=659&highlight=prism54+pci+device+memory+region+configured
http://prism54.org/pipermail/prism54-users/2004-May/001380.html
prism54: PCI device memory region not configured; fix your BIOS or CardBus bridge/drivers
Firefox user 大概佔一成, IE user 已少於八成
World Wind 是 NASA 出的軟體, 可以從衛星的角度看地球, 1.3 版約 171MB
ref. 竹貓星球 - 地球放大鏡
MSN 7 為了安全因素, 對一些特定副檔名檔案作封鎖, 我覺得這實在是因噎廢食的作法
其副檔名封鎖封是在接收端控制, 只要加入以下 registry 即可再接收已封鎖的檔案
LowRiskFileTypes 可以自行調整
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Associations]
"LowRiskFileTypes"=".bat;.cmd;.chm;.com;.exe;.lnk;.msi;.reg;.scr;.url;.mp3;.mpg;.avi;.wmv;.jpg;.png;.gif"
2005-07-07 更新
經測試新版的 MSN (7.0.0813以後) 已不適用這個方法, 請參考 MSN Messenger 7 Remove File Transfer Protection
Gmail 一週年, 空間再加碼, 空間正漸漸提升中(寫這篇文章時是1350MB)
剛好 我的 Gmail 滿了, 容量來得正是時候.
G is for growth
Storage is an important part of email, but that doesn't mean you should have to worry about it. To celebrate our one-year birthday, we're giving everyone one more gigabyte. But why stop the party there? Our plan is to continue growing your storage beyond 2GBs by giving you more space as we are able. We know that email will only become more important in people's lives, and we want Gmail to keep up with our users and their needs. From Gmail, you can expect more.
再大的容量還是有滿的一天
我沒用 GMail Drive shell extension 放檔案, 都是 mail 的容量
容量滿了還是能收 mail, 它的 buffer 不曉得是多少?
晶片讀卡機 + Web ATM, 實在太方便了,
除了不能領出現金, 其他提款機能做到動作都可以在自己電腦上完成.
目前國內有包括 玉山銀行、萬泰銀行、國泰世華銀行、台灣銀行 和 台北富邦銀行 共五家業者推出 Web ATM
Web ATM 和一般的 ATM 一樣, 可進行跨行作業, 也就是不一定要上述幾家銀行的卡才能用, 郵局的晶片片也可以使用.
IOCCC - The International Obfuscated C Code Contest
國際模糊代碼競賽
上面的 Goals, 似乎是 C 語言另類極限挑戰
看了一些 winner code, 很深奧
剛剛發現, SourceForge 的 mirror site 多了 NCHC, 以後下載檔 SourceForge 的檔案就快多了.
剛剛在 PC home 購物 看到 《Air Power空氣即時電》攜帶型充電器
真是好東西! 用空氣產生電力
問了一下 Google, 大都是購物網站的資料, 有 for Notebook, IPod...
但是找不到技術性的資料, 這種東西應該會很紅才對啊
Giga 最近推出 Web-Amp 網站超頻服務 (產品架構|FAQ), 同事剛好問到怎麼設, 就去試用一下, 申請後後會出現如下資訊
恭喜!您已經完成Giga Web-Amp的申請程序,
您的服務開通日期與到期日期為
開通日期 2005-03-16
到期日期 2005-03-31
請至您的DNS上將網站位置設為203.187.29.180
使用 msi2xml 將 MsnMsgs.msi 轉成 XML 格式,
取用 7.0.0425 Public Beta 的 XML 檔, 複製以下區段(含安裝畫面的中文詞彙)到新版本的 XML 檔
<table name="Control"> 區段
<table name="Property"> 區段到 InstallMode
<table name="RadioButton"> 區段
中文化檔案 msgslang.dll 使用 HENRYLIN 的作品
msnmsgr.exe 經 NoAd 修正
這兩檔案取代 MsgrCore.cab 裡的檔, 再轉 base64, 置換 MsgrCore.cab 的區段,
最後用 xml2msi 轉回 msi 檔
ref. 置換 msi 安裝檔內的檔案
剛剛(00:00 ~ 01:00 左右)看 log, 發現有些從我 HiNet 信箱 FW 過來的信被檔,
原因是 SpamCop 把 HiNet 的一些 mail server 168.95.4.* 中某幾台列為名單,
現已正常.
做了一個小測試, 在同一個 LAN, 弄兩張一樣 MAC 的網卡,
一台 Windows XP, 一台 Linux,
結果如何? (選擇題)
答案是 4
他們各自的網路都通, 可以透過 Gateway 連上網, 但是別人無法連他們,
他們兩台也無法互連
這個結果覺得滿怪的, 封包走得出去說得通, 但是返回的封包呢?
從 Gateway 到 LAN 這一段, 有兩個同樣 MAC 的卡, 怎麼知道走那一邊?
PSPad is a freeware editor
Screen shot
很適合網頁/程式設計者
多國語系(有繁體中文)、提供很多編輯 html 的工具、預覽網頁還可以分三種解析度調整、
程式碼瀏覽器、語法高亮度顯示、可編輯 ftp 上的檔案、HEX 模式編輯,
比 UltraEdit 好用
還有一些不錯的小功能
如:
移除 Email 的引言符號
選擇標籤(選擇 Tag 間的內容)
行號
區塊(增加/減少)縮排
ASCII 表
滴管(取得某個點的色碼)
數值轉換器, 可進行 2/8/10/16 進位換算
方程式計算, 可以輸入這類的計算 10^2+500/(4-2)
檔案比對, 比對後不同處以顏色標記
gnome-display-properties
no need to restart X
xrandr is a powerful tool that can list avaiable mode,
and change resolution and refresh rate without restart X
# xrandr
SZ: Pixels Physical Refresh
*0 1024 x 768 ( 321mm x 241mm ) *70 60
1 800 x 600 ( 321mm x 241mm ) 60 56
2 640 x 480 ( 321mm x 241mm ) 59
3 1024 x 576 ( 321mm x 241mm ) 60
4 720 x 576 ( 321mm x 241mm ) 56
5 856 x 480 ( 321mm x 241mm ) 59
6 800 x 480 ( 321mm x 241mm ) 59
7 720 x 480 ( 321mm x 241mm ) 61
8 512 x 384 ( 321mm x 241mm ) 60# xrandr -s 800x600 -r 60
Thanks Joseph's hint
MSN Messenger 7.0.0632 (English)
MSN Messenger 7.0.0425 (Traditional Chinese)
MSN Messenger 6.2.0205 (Traditional Chinese)
Latest "No Ad Fix" and "No Ad Repacked Version" available here.
今天公司有一封信被擋, 對方 mail server 使用 NJABL.org
dnsbl.njabl.org: the original NJABL zone
dynablock.njabl.org: dynamic IP pool
combined.njabl.org: dnsbl.njabl.org and dynablock.njabl.org in a single zone
dynablock.njabl.org 的資料不是很正確, 像 HiNet 61.220.0.0 - 61.227.255.255 這個 block,
除了 61.222.0.0/16 以外, 其他的 IP 都在 dynablock.njabl.org list 內.
不同的 client 軟體, 使用 sftp 傳檔, 沒想到速度差異如此大
以下是在我環境下測的結果, server 同一台, 抓同一個 20MB 的檔
CuteFTP Pro 6.0 137 KB/s
FileZilla 2.2.11 36X KB/s
WinSCP 3.7.4 3.3 MB/s
SSH Secure File Transfer Client 3.2.5 4.1 MB/s
Linux sftp 4.1 MB/s
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\View Source Editor\Editor Name]
@="notepad.exe"
regedit /e PuTTY.reg HKEY_CURRENT_USER\Software\SimonTatham
PuTTY: A Free Telnet/SSH Client
Example:
Add auth in directory /home/pank/public_html/auth
User pank, password 1111
Original version by Eshen
Repacked version
ref. http://forum.moztw.org/viewtopic.php?t=6243
I think SCode is the best solution to fight comment spam for MT
SCode needs GD and GD.pm
install gd, libpng first (ports/graphics/gd, ports/graphics/png)
./configure --with-png when build GD or cd /usr/ports/graphics/gd; make WITH_XPM=yes
to build GD.pm, needs perl 5.6 or higher
wget http://search.cpan.org/CPAN/authors/id/L/LD/LDS/GD-2.30.tar.gz
perl Makefile.PL
make
make test (optional)
make html (optional)
make install
ref.
防制發廣告機器人的檢核碼
Blog comment spam fighting
An easy way to get rid of MT comment spam
I wrote 77 online dictionary plugin for IE and Firefox
Install page
Dictionary database from pyDict
Virtual Tunnel(VTun) is similar to Softether,
even more powerful for Linux or FreeBSD.
To build VTun, needs following rpms
liblzo1
liblzo1-devel
bison or byacc (byacc build failed in my case, so I install bison rpm)
Working example:
Server config /usr/local/etc/vtund.conf
default {
type tun;
proto udp;
compress lzo:1;
keepalive yes;
}
s2 {
passwd abcd;
up {
ifconfig "%% 10.10.0.1 pointopoint 10.10.0.2";
route "add -net 10.10.1.0 netmask 255.255.255.0 gw 10.10.0.2";
program /sbin/arp "-sD 10.10.0.2 eth0 pub";
};
}
Client config /usr/local/etc/vtund.conf
default {
type tun;
proto udp;
compress lzo:1;
keepalive yes;
}
s2 {
passwd abcd;
up {
ifconfig "%% 10.10.0.2 pointopoint 10.10.0.1";
route "add -net 10.10.0.0 netmask 255.255.255.0 gw 10.10.0.1";
};
}
Before run vtund, both client and server needs to load tun module (modprobe tun), then
Server run vtund -s
Client run vtund s2 140.117.53.147
(140.117.53.147 is server IP)
Result:
Server
tun0 Link encap:Point-to-Point Protocol
inet addr:10.10.0.1 P-t-P:10.10.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:1260 (1.2 Kb) TX bytes:672 (672.0 b)
Client
tun0 Link encap:Point-to-Point Protocol
inet addr:10.10.0.2 P-t-P:10.10.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:672 (672.0 b) TX bytes:1260 (1.2 Kb)
ref. Softether
Linux console shows something like "x.x.x.x sent an invalid ICMP type 11, code 0 error to a broadcast ..."
What's the problem?
Let's see kernel source net/ipv4/icmp.c
if (!sysctl_icmp_ignore_bogus_error_responses)
{
if (inet_addr_type(iph->daddr) == RTN_BROADCAST)
{
if (net_ratelimit())
printk(KERN_WARNING "%u.%u.%u.%u sent an invalid ICMP type %u, code %u error to a broadcast: %u.%u.%u.%u on %s\n
NIPQUAD(skb->nh.iph->saddr),
icmph->type, icmph->code,
NIPQUAD(iph->daddr),
skb->dev->name);
goto out;
}
}
It is because recieve ICMP bogus response,
to ignore this, add net.ipv4.icmp_ignore_bogus_error_responses=1 to /etc/sysctl.conf
ProxyPass allows remote servers to be mapped into the space of the local server
You have to enable mod_proxy during buid apache
e.g.
./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf \
--enable-module=so --enable-module=rewrite --enable-module=proxy
Example:
a FreeBSD server, WAN IP 140.117.53.147, LAN IP 192.168.0.1, with Apache 1.3.33
a Windows IIS server, LAN IP 192.168.0.6, Gateway 192.168.0.1
Example Settings 1: (all can connect iis.pank.org)
<VirtualHost 140.117.53.147>
ServerName iis.pank.org
ProxyPass / http://192.168.0.6/
</VirtualHost>
Example Settings 2: (restrict from, only 140.117.0.0/16 can connect)
<VirtualHost 140.117.53.147>
ServerName iis.pank.org
<Directory proxy:*>
Order deny,allow
Deny from all
Allow from 140.117.0.0/16
</Directory>
ProxyPass / http://192.168.0.6/
</VirtualHost>
note: Setting ProxyRequests to off does not disable use of the ProxyPass directive.
ref.
Apache module mod_proxy
R-Proxy
bash trick: build-in method
A="abcd0123456789"
if [ "${A/1234/}" != "$A" ] ; then
echo yes
fi
grep method
A="abcd0123456789"
if echo $A | grep -q 1234 ; then
echo yes
fi
After I test, 1st method is 40 times faster then grep method
Ctrl + / Ctrl - or CTRL-Mouse wheel to zoom in / zoom out page
Press / to search
Ctrl-T to open new tab
Ctrl + Mouse Click to open URL in new tab
Ctrl-[1-9] to switch tab (Alt-[1-9] under X Window)
Type about:config in location bar for tweaking
My Firefox Extensions
All-in-One Gestures (Linux and Windows)
Auto Copy (Windows)
Context Search (Linux and Windows)
DragToTab (Linux and Windows)
Flash Got (Windows)
ieview (Windows)
Minimize to Tray (Windows)
Paste and Go (Windows)
ref. http://hemiolapei.free.fr/divers/mozilla.html
Note: to use view statements, all zones must be in viewsview "public" { match-clients { !192.168.0.0/16; any; }; recursion no; zone "." { type hint; file "named.root"; }; zone "test.com" { type master; file "db.qmio"; }; }; view "private" { match-clients { 192.168.0.0/16; }; zone "." { type hint; file "named.root"; }; zone "test.com" { type master; file "db.test.private"; }; };
舊版 Postfix-SMTP-AUTH-TLS-Howto
更新一些檔案, 步驟大至相同
取得檔案
wget http://www.openssl.org/source/openssl-0.9.7e.tar.gz
wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.20.tar.gz
wget http://archive.mgm51.com/mirrors/postfix-source/official/postfix-2.1.5.tar.gz
wget ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/pfixtls-0.8.18-2.1.3-0.9.7d.tar.gz
解壓檔案
tar zxf openssl-0.9.7e.tar.gz
tar zxf cyrus-sasl-2.1.20.tar.gz
tar zxf postfix-2.1.5.tar.gz
tar zxf pfixtls-0.8.18-2.1.3-0.9.7d.tar.gz
編譯 openssl
cd openssl-0.9.7e
./config
make
make install
編譯 cyrus-sasl-2
cd ../cyrus-sasl-2.1.20
./configure --enable-anon --enable-plain --enable-login --with-saslauthd=/var/run/saslauthd --with-pam --with-openssl=/usr/local/ssl --with-plugindir=/usr/local/lib/sasl2 --enable-cram --enable-digest
make
make install
(若已有裝 libsasl2 rpm, 需移除, 然後 ln -fs /usr/local/lib/libsasl2.so.2.0.20 /usr/lib/libsasl2.so.2)
[ -d /usr/lib/sasl2 ] && mv /usr/lib/sasl2 /usr/lib/sasl2_orig
ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
printf "pwcheck_method:saslauthd\nmech_list: plain login digest-md5\n" > /usr/local/lib/sasl2/smtpd.conf
編譯 postfix (含 tls patch)
cd ../postfix-2.1.5
useradd postfix
groupadd postdrop
patch -p1 < ../pfixtls-0.8.18-2.1.3-0.9.7d/pfixtls.diff
(仍可套用在 postfix 2.1.5)
make makefiles CCARGS="-DHAS_SSL -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/ssl/include" AUXLIBS="-L/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib -lsasl2 -lssl -lcrypto"
make
make install
(全部用預設值按 enter 即可)
cp /etc/postfix/aliases /etc/
newaliases
mkdir -p /var/spool/postfix/etc
cd /etc
cp localtime services hosts resolv.conf /var/spool/postfix/etc
mkdir -p /var/run/saslauthd
(mux socket file 存放處)
產生 certificate files for TLS
cd /etc/postfix
openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650
編輯 /etc/postfix/main.cf 加入下列
# SASL
smtpd_recipient_restrictions=permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable=yes
smtpd_sasl_security_options=noanonymous
broken_sasl_auth_clients=yes
# TLS
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/smtpd.pem
smtpd_tls_cert_file = /etc/postfix/smtpd.pem
smtpd_tls_CAfile = /etc/postfix/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
啟動 postfix 及 saslauthd
postfix start
saslauthd -a shadow -m /var/run/saslauthd
測試
telnet localhost 25
220 pank.idv.tw ESMTP Postfix
ehlo 0
250-pank.idv.tw
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN DIGEST-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5
250-XVERP
250 8BITMIME
看起來正常, 再測試認證, 使用者名稱 pank, 密碼 test
取得編碼後字串 printf 'pank\0pank\0test' | mmencode
得到 cGFuawBwYW5rAHRlc3Q=
(使用這個方法測試時, 用數字 0-7 開頭的密碼會認證錯誤, 原因不明.
而事實上, 使用上述密碼在 smtp auth 上是沒問題的)
telnet localhost 25
220 pank.org ESMTP Postfix
ehlo 0
250-pank.org
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN DIGEST-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5
250-XVERP
250 8BITMIME
auth plain cGFuawBwYW5rAHRlc3Q=
235 Authentication successful
已正常運作
若是 failed, 就看 log 查原因
ref. Postfix/TLS - A TLS extension for POSTFIX
FAQ
Q: make postfix failed, db* not found
A: install libdb* and libdb*devel (e.g. libdb3.3-3.3.11-17mdk.i586.rpm, libdb3.3-devel-3.3.11-17mdk.i586.rpm)
Q: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
A: 1. 可能用到原本 rpm 的 libsasl2, 需先移除, 然後 ln -fs /usr/local/lib/libsasl2.so.2.0.20 /usr/lib/libsasl2.so.2
2. smtpd run chrooted, There are two ways to fix this:
1. Unset the 'chroot' flag in master.cf for smtpd on port 25
2. Use a Linux bind mount to make the socket accessible within the chroot.
IP 跟 Gateway 完全是不同網段
ppp0 Link encap:Point-Point Protocol
inet addr:218.166.248.109 P-t-P:61.228.96.254 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:14794 errors:0 dropped:0 overruns:0 frame:0
TX packets:14745 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:1544763 (1.4 MiB) TX bytes:740369 (723.0 KiB)
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
61.228.96.254 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.18.43.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 61.228.96.254 0.0.0.0 UG 0 0 0 ppp0
expr1 -a expr2
True if both expr1 and expr2 are true.
expr1 -o expr2
True if either expr1 or expr2 is true.
-a (AND) operation first, then -o (OR) operation
e.g.
there're 3 files, a, c, d
#!/bin/sh
[ -f a -o -f b -o -f c -o -f d ] && echo 0
[ -f a -o -f b -o -f c -a -f d ] && echo 1
[ -f a -o -f b -a -f c -o -f d ] && echo 2
[ -f a -o -f b -a -f c -a -f d ] && echo 3
[ -f a -a -f b -o -f c -o -f d ] && echo 4
[ -f a -a -f b -o -f c -a -f d ] && echo 5
[ -f a -a -f b -a -f c -o -f d ] && echo 6
[ -f a -a -f b -a -f c -a -f d ] && echo 7
result is...
0
1
2
3
4
5
6
連某些服務會頓一下嗎? 可能該服務需要用到 auth (ident)
例如 ProFTPD
有這種狀況的話, 把 auth 加到防火牆例外可以加快連線速度
控制台/防火牆/例外/新增連接埠
名稱: auth
連接埠編號: 113
TCP
昨天嘗試要使用 GRUB 來 load Windows CE, 結果失敗
一般 Windows CE 的檔案如下
-r-xr--r-- 1 root root 16384 4月 29 2004 bldr*
drwxr--r-- 2 root root 2048 6月 1 2001 bmp/
drwxr--r-- 3 root root 2048 3月 30 2005 Documents and Settings/
-rwxr--r-- 1 root root 72491 3月 9 2004 eboot.bin*
-r-xr--r-- 1 root root 18805259 10月 28 20:51 nk.bin*
-r-xr--r-- 1 root root 308316 10月 28 20:55 splash.bin*
一張可開機的 Windows CE CF 卡使用 dd 的方式 copy 到另一張不同的 CF 卡, 是無法開機的.
Windows CE 的 boot loader 似乎是讀固定的位置
改用 GRUB 的話
使用 load DOS 的方法, 失敗
使用 load 整個 image 的方法, 失敗
ref.
http://www.gnu.org/software/grub/manual/grub.html
http://syslinux.zytor.com/memdisk.php
Hosts Disable Movable Type as Comment Spam Slows Servers
This article give me a hint.
MT comment spam bot target mt-comments.cgi to post comment spam,
Why not rename it!
1. mv mt-comments.cgi mt-comments_something.cgi
2. edit mt.cfg, uncomment CommentScript, and fill with mt-comments_something.cgi
3. rebuild all pages
After few days test, it works! (see 404 log)
This way get rid of most comment spam.
Some bot reference form action=filename, This trick will fail.
由於微軟的細明體有字型碎裂及字距的問題
可以改用螢火飛所釋出內嵌點陣字的文鼎新宋字型
wget http://firefly.idv.tw/apt/firefly-font/fireflysung-1.3.0.tar.gz
or
wget http://www.study-area.org/apt/firefly-font/fireflysung-1.3.0.tar.gz
#下載內嵌點陣字的文鼎新宋字型
tar zxf fireflysung-1.3.0.tar.gz
#解壓縮
ttfm.sh --add fireflysung-1.3.0/fireflysung.ttf
# 用 ttfm 工具安裝
fc-cache -f -v (Build font information cache)
裝完重新啟動 X, 把字型設為 AR PL New Sung
ref. 螢火飛相關套件安裝
I wrote a small program to show your IP info and location with IP to Country mapping database and my bbs domain_name_query file.
${parameter:-word} Use Default Values.
e.g.
echo ${A:-1}
A=2
echo ${A:-1}
result is
1
2
${parameter:=word} Assign Default Values.
e.g.
echo ${A:=1}
echo $A
A=2
echo ${A:=1}
result is
1
1
2
${parameter:?word} Display Error if Null or Unset.
equals [ -z $parameter ] && echo word && exit 1
${parameter:+word} Use Alternate Value.
equals [ -z $parameter ] || parameter=word
e.g.
echo ${A:+1}
A=2
echo ${A:+1}
result is
1
${parameter:offset}
${parameter:offset:length}
e.g.
A=string
echo ${A:1}
echo ${A:2:3}
result is
tring
rin
${!prefix*} Expands to the names of variables whose names begin with prefix
e.g.
A=test1
A1=test2
A2=test3
B=test4
echo ${!A*}
result is
A A1 A2
${#parameter} The length in characters of the value of parameter
e.g.
A=string
echo ${#A}
result is
6
${parameter#word} Head cut
${parameter##word}
e.g.
A=file.tar.gz
echo ${A#*.}
echo ${A##*.}
result is
tar.gz
gz
${parameter%word} Tail cut
${parameter%%word}
e.g.
A=file.tar.gz
echo ${A%.*}
echo ${A%%.*}
result is
file.tar
file
${parameter/pattern/string} Pattern replacing
${parameter//pattern/string}
e.g.
A=linux_linux
echo ${A/linux/freebsd}
echo ${A//linux/freebsd}
result is
freebsd_linux
freebsd_freebsd
ref. man bash, / Parameter Expansion
${parameter:-word}
Use Default Values. If parameter is unset or null, the expan-
sion of word is substituted. Otherwise, the value of parameter
is substituted.
${parameter:=word}
Assign Default Values. If parameter is unset or null, the
expansion of word is assigned to parameter. The value of param-
eter is then substituted. Positional parameters and special
parameters may not be assigned to in this way.
${parameter:?word}
Display Error if Null or Unset. If parameter is null or unset,
the expansion of word (or a message to that effect if word is
not present) is written to the standard error and the shell, if
it is not interactive, exits. Otherwise, the value of parameter
is substituted.
${parameter:+word}
Use Alternate Value. If parameter is null or unset, nothing is
substituted, otherwise the expansion of word is substituted.
${parameter:offset}
${parameter:offset:length}
Substring Expansion. Expands to up to length characters of
parameter starting at the character specified by offset. If
length is omitted, expands to the substring of parameter start-
ing at the character specified by offset. length and offset are
arithmetic expressions (see ARITHMETIC EVALUATION below).
length must evaluate to a number greater than or equal to zero.
If offset evaluates to a number less than zero, the value is
used as an offset from the end of the value of parameter. If
parameter is @, the result is length positional parameters
beginning at offset. If parameter is an array name indexed by @
or *, the result is the length members of the array beginning
with ${parameter[offset]}. Substring indexing is zero-based
unless the positional parameters are used, in which case the
indexing starts at 1.
${!prefix*}
Expands to the names of variables whose names begin with prefix,
separated by the first character of the IFS special variable.
${#parameter}
The length in characters of the value of parameter is substi-
tuted. If parameter is * or @, the value substituted is the
number of positional parameters. If parameter is an array name
subscripted by * or @, the value substituted is the number of
elements in the array.
${parameter#word}
${parameter##word}
The word is expanded to produce a pattern just as in pathname
expansion. If the pattern matches the beginning of the value of
parameter, then the result of the expansion is the expanded
value of parameter with the shortest matching pattern (the ``#''
case) or the longest matching pattern (the ``##'' case) deleted.
If parameter is @ or *, the pattern removal operation is applied
to each positional parameter in turn, and the expansion is the
resultant list. If parameter is an array variable subscripted
with @ or *, the pattern removal operation is applied to each
member of the array in turn, and the expansion is the resultant
list.
${parameter%word}
${parameter%%word}
The word is expanded to produce a pattern just as in pathname
expansion. If the pattern matches a trailing portion of the
expanded value of parameter, then the result of the expansion is
the expanded value of parameter with the shortest matching pat-
tern (the ``%'' case) or the longest matching pattern (the
``%%'' case) deleted. If parameter is @ or *, the pattern
removal operation is applied to each positional parameter in
turn, and the expansion is the resultant list. If parameter is
an array variable subscripted with @ or *, the pattern removal
operation is applied to each member of the array in turn, and
the expansion is the resultant list.
${parameter/pattern/string}
${parameter//pattern/string}
The pattern is expanded to produce a pattern just as in pathname
expansion. Parameter is expanded and the longest match of pat-
tern against its value is replaced with string. In the first
form, only the first match is replaced. The second form causes
all matches of pattern to be replaced with string. If pattern
begins with #, it must match at the beginning of the expanded
value of parameter. If pattern begins with %, it must match at
the end of the expanded value of parameter. If string is null,
matches of pattern are deleted and the / following pattern may
be omitted. If parameter is @ or *, the substitution operation
is applied to each positional parameter in turn, and the expan-
sion is the resultant list. If parameter is an array variable
subscripted with @ or *, the substitution operation is applied
to each member of the array in turn, and the expansion is the
resultant list.
Linux: nmblookup -A IP
e.g.
# nmblookup -A 192.168.1.238
Looking up status of 192.168.1.238
WIN2003 <00> - B
WIN2003 <20> - B
WORKGROUP <00> -
WORKGROUP <1e> -
Windows: ping -a IP
GRANT ALL PRIVILEGES ON *.* TO YourUserName@YourPublicIP IDENTIFIED BY "YourPassword";
YourUserName is the username that you would like to create.
YourPublicIP is the public IP address of your PC (can be IP range or use % to allow any host).
("211.72.20.%" = 211.72.20.0/24, quote IP range if with %)
YourPassword - You can setup a password for your account.
Don't forget flush privileges;
e.g.
mysql> grant all privileges on *.* to pank@"211.72.20.%" identified by "1111";
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
只要在 make php 時, enable gettex support
./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs \
--enable-module=so --with-config-file-path=/usr/local/etc \
--libexecdir=/usr/local/apache/libexec --with-gd --with-zlib --with-jpeg-dir --with-freetype-dir --with-gettext
使用 IE 看 Gallery, 相簿的 counter 都變成 1, 怪怪
用 Firefox 倒是正常
"ERROR: recv: Connection reset by peer"
(return value 141)
This error occured because license problem, maybe expired.
workaround: change another hostname by -n parameter
PS. If server is windows 2003, return value 0, no such error message
環境: 內部的一台機器 listen tcp port 135,139 供測試
測試工具: nmap, 設好 rule 後作多次 port scan 動作, 觀查 open port
135-139 對 135-139 (一對一 mapping)
結果: port 135,139 open
235-239 對 135-139 (一對一 shift mapping)
結果: 動態 port 對應
(在 235-239 中動態分配 2 個 port 分別 mapping 到 135,139)
100-150 對 135-139 (多對少 mapping, --dport 在 listen port 範圍內)
結果: 動態 port 對應, 135 對 135, 139 對 139 的機率很高
150-200 對 135-139 (多對少 mapping, --dport 不在 listen port 範圍內)
結果: 動態 port 對應
130-140 對 120-150 (少對多 mapping, --dport 在 listen port 範圍內)
結果: 固定 135,139 open
140-150 對 120-140 (少對多 mapping, --dport 不在 listen port 範圍內)
結果: 動態 port 對應
有掃到 0 個 port, 1 個 port , 2 個 port 均有出現
因為 10 個 port 無法一一 mapping 到 20 個 port
結論: 當 port 無法直接 mapping 時, 會動態 mapping
rad.msn.com 是 MSN 的存放廣告的 Server
由 Ethereal 觀察, MSN Messenger 會送出像如下的 URL
http://rad.msn.com/ADSAdClient31.dll?GetAd?PG=IMSTWN?SC=HF?ID=000201000251651a
Just install Microsoft Windows Journal Viewer
寫了一個轉址服務 http://url.77bbs.com/
此服務類似 http://tinyurl.com/
不同點在於 77BBS URL 使用 sub domain 的方式做處理
If you want to restrict someone's shell access, use rbash.
chsh -s /bin/rbash username
ref. man bash
RESTRICTED SHELL
If bash is started with the name rbash, or the -r option is supplied at
invocation, the shell becomes restricted. A restricted shell is used
to set up an environment more controlled than the standard shell. It
behaves identically to bash with the exception that the following are
disallowed or not performed:
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed (see COM-
MAND EXECUTION above), rbash turns off any restrictions in the shell
spawned to execute the script.
Gaim 的個人大頭貼已在 1.0.1 版支援, 只是設定的地方不明顯, 到今天才發現!
工具 / 帳號清單 / 選擇MSN帳號 / 修改 / 好友圖示
ref. Gaim ChangeLog
在 FreeBSD 下用 root 直接跑下面的指令(已和 host 建好 authorized_keys)
rsync -avz -e ssh host:/remotedir /localdir
正常
放到 crontab 使用 root 執行, 卻會出現如下錯誤
WARNING: RSA key found for host somehost.com
in /root/.ssh/known_hosts:16
RSA key fingerprint 12:34:56:78:90:92:02:5d:e5:bb:9b:c2:0e:cb:00:ff.
Host key verification failed.
rsync: connection unexpectedly closed (0 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(348)
查了許久, 終於找到答案: console 下用的 ssh 和 crontab 下用的 ssh 不一樣
由於我有另外裝 OpenSSH
在 console 下 /usr/local/bin 的 path 排前面, 使用 /usr/local/bin
crontab 下 /usr/local/bin 的 path 排前面, 使用 /usr/bin
在我的環境下
freebsd 內建的 /usr/bin/ssh 會使用 DSA key fingerprint
OpenSSH 會使用 /usr/local/bin/ssh 會使用 RSA key fingerprint
所以才會產生 Host key verification failed. 的問題
許久之前有用過這套, 今天又裝來玩玩, 功能已經變得滿強的了, 還有多國語系
安裝也很容易.
參照 安裝說明 , 手動或用 awstats_configure.pl 改好, 再把更新的指令加入 crontab 即可
這兩個 MT plugin 不錯
bayesian 用 bayesian 的方式訓練, 使 MT 能識別 comment spam
scode 在 post comment 時, 會出現一張被干擾的數字圖片, 必須輸入輸入裡面的數字才能 post
剛裝了 bayesian plugin, 步驟如下面的 script
最後再用 http://your.host/path_to_mt/bayesian-init-db.cgi 設定一下即可, 設完後刪除 bayesian-init-db.cgi
使用 http://your.blog.com/path_to_mt/mt-bayesian.cgi 來 train MT
#!/bin/sh
MTDIR=/home/pank/public_html/mt
cp mt-bayesian.cgi bayesian-init-db.cgi cleandb* $MTDIR
cp mt-bayesian.pl $MTDIR/plugins
cp Bayesian.pm BayesianBlog.pm BayesianToken.pm $MTDIR/lib/MT
cp BayesianTrain.pm $MTDIR/lib/MT/App
cp bayesian_menu.tmpl bayesian_list_blog.tmpl bayesian_list_comments.tmpl bayesian_list_pings.tmpl $MTDIR/tmpl/cms
sed -i s/aaa/bbb/ file
=
perl -pi -e s/aaa/bbb file
backup as .bak
sed -i.bak s/aaa/bbb/ file
PS.
-i [suffix] is wrong under Linux (space not allowed between -i and [suffix])
sed in Solaris not support this parameter
samba 3.x default charset=utf-8
add following settings to smb.conf to change charset to big5
display charset = big5
unix charset = big5
dos charset = big5
man -t bash > bash.ps
man -t bash | ps2pdf - bash.pdf
ref.
-t Use /usr/bin/groff -Tps -mandoc -c to format the manual page,
passing the output to stdout. The output from /usr/bin/groff
-Tps -mandoc -c may need to be passed through some filter or
another before being printed.
只要使用 dhcp server 及 tftp server, 就可以架 PXE Server
環境: pxelinux.0(from the SYSLINUX distribution), kernel, initrd file, image 等檔案放在 /tftpboot, tftp server 目錄指向這裡
使用 dhcp 3.0, dhcp.conf 範例
ddns-update-style none;
default-lease-time 86400;
max-lease-time 86400;subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.11 192.168.1.50;
filename "pxelinux.0";
next-server 192.168.1.233;
option time-offset 3600;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.253,168.95.1.1;
option domain-name "i";
}
使用 udhcp 0.98, udhcpd.conf 範例
start 10.1.1.10
end 10.1.10.254
interface eth0
lease_file /var/dhcpd/udhcpd.leases
option dns 168.95.1.1 139.175.55.244
option subnet 255.255.0.0
option router 10.1.1.1
option lease 600
siaddr 10.1.1.1
boot_file pxelinux.0
使用 inetd, /etc/ined.conf 範例
tftp dgram tcp wait root /usr/sbin/tftpd tftpd -s /tftpboot
使用 xinetd, /etc/xinetd.d/tftp 範例
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
/tftpboot/pxelinux.cfg/default 範例
default dos
timeout 50
prompt 2label linux
kernel systemk
append initrd=systemz ramdisk_size=65535 root=/dev/ram0label dos
kernel memdisk
append initrd=psetup.img
ref.
PXE Spec
PXE daemon
http://phorum.study-area.org/viewtopic.php?t=19192
我不曉得有什麼好用的工具可以做到類似的動作,
以下的例子算是土法煉鋼 (以 MSN 7.0.0425 為例)
執行 Install_MSN_Messenger.exe, 在 %TEMP% 目錄可找到 msi 檔,
copy 出來成 msn7.0.0425.msi
然後用 msi2xml 轉換成 xml 檔
msi2xml msn7.0.0425.msi (在 windows 下執行)
會產生 msn7.0.0425.xml
傳到 linux 下, 使用 base64 來解檔
MSN 的檔案大都存在 MsgrCore.cab 裡
tail +$((`grep -n MsgrCore.cab msn7.0.0425.xml | tail -1 | cut -d: -f1`+2)) msn7.0.0425.xml > MsgrCore.cab.b64
抽出 MsgrCore.cab 的 base64 編碼部分, 存到 MsgrCore.cab.b64
base64 -d MsgrCore.cab.b64 MsgrCore.cab
將 MsgrCore.cab 解出
找一套能處理 cab 的壓縮程式, 例如 zipzag,
將修正過的 msnmsgr.exe 及中文化的 msgslang.dll (由 March Fun 製作),
覆蓋裡面的
msnmsgrexe.ADEB440D_7847_4F65_80BD_899870ED2EC9
msgslangdll.ADEB440D_7847_4F65_80BD_899870ED2EC9
(不清楚為什麼是這種檔名)
接下來要把 msn7.0.0425.xml 後半的 MsgrCore.cab md5 及 base64 部分, 用新的取代
XML=msn7.0.0425.xml
NEWXML=msn7.0.0425cht.xml
CAB=MsgrCore.cab
NEWCAB=new.cab
N=`grep -n $CAB $XML | tail -1 | cut -d: -f1`
head -$N $XML > $NEWXML
let N++
OLDMD5=`sed -n "$N"p $XML | cut -d\" -f4`
NEWMD5=`md5sum $NEWCAB | cut -d' ' -f1`
sed -n "$N"p $XML | sed s/$OLDMD5/$NEWMD5/ >> $NEWXML
mimencode $NEWCAB >> $NEWXML
tail -4 $XML >> $NEWXML
上面這段 script 會產生新的 xml 檔, 再回到 windows 用 xml2msi 轉
xml2msi msn7.0.0425cht.xml
最後產生 msn7.0.0425cht.msi, 直接安裝就是中文版!
簡單地說, 先用 msi2xml 轉成 xml 檔, 再把裡面檔案的 md5 及 base64 編碼部分置換,
再用 xml2msi, 轉回 msi 檔
http://ftp.77bbs.com/bbs/77delegate.exe
77delegate 是使用 delegate 8.10.2版, 再加以包裝設定而成
有時利用晚上時間下載東西, 又不想讓電腦開整晚, 可以用 shutdown 來預約關機
-i 顯示 GUI 介面,必須是第一個選項
-l 登出 (不能和 -m 選項一起使用)
-s 電腦關機
-r 關機並重新啟動電腦
-a 中止系統關機
-m \\\\computername 從遠端進行關機/重新啟動/中止
-t xx 將關機等候時間設定成 xx 秒
-c "comment" 關機註解 (最多 127 個字元)
-f 強制關閉執行中的應用程式,不顯示警告
-d [u][p]:xx:yy 關機原因代碼
範例:
shutdown -s -t 3600 -f (一小時鐘後關機)
shutdown -a (取消關機)
ddcxinfo 或 ddcxinfos 這個工具可以列出顯示卡的一些 X 參數資訊, ModeLine 等
在 KNOPPIX 裡有功能類似的程式, 參數更完整
# ddcxinfo
syntax: ddcxinfo [-hsync] [-vsync] [-modelines]
# ddcxinfo-knoppix
syntax: ddcxinfo-knoppix [-hsync] [-vsync] [-modelines] [-monitor] [-modes] [-firstmode 1024x768]
GnuPG is a complete and free replacement for PGP
一開始先要造公/私金鑰
gpg --gen-key
對文件加簽
gpg --clearsign file.txt
會產生 file.txt.asc
範例: (Mandrake Linux Community ISO MD5)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
1ea7433e24eb6a3d9491128708a8e0e3 Mandrakelinux-10.1-Community-Download-CD1.i586.iso
5b66d05d03ed2830ce6d09a7e4930b24 Mandrakelinux-10.1-Community-Download-CD2.i586.iso
4815820ca0ff6a5c91525363889bc7bb Mandrakelinux-10.1-Community-Download-CD3.i586.iso
d41d8cd98f00b204e9800998ecf8427e Mandrakelinux-10.1-Community-Download.md5
9bbc6e07fcfc75dfef935e8673d3a5b1 Mandrakelinux-10.1-Community-Download.md5.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
iD8DBQFBUaXK54mK4HB3H/MRAgwWAKC1UYRdMR1XDt19/tk850KDnRENKQCeO1k4
hjWxIi4FZoc5h8df4Z4xKEk=
=RFQ2
-----END PGP SIGNATURE-----
檢查已加簽文件
gpg --verify test.asc
gpg: 由 西元2004年11月10日 (週三) 10時19分38秒 CST 建立的簽章,使用 DSA 金鑰 ID A8C4CEBC
gpg: 完好的簽章來自於 "Henry Pan
ISC DHCPD 的 IP pool (range) 並不會自動排除已 fixed-address 的 IP
舉個例子:
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.200;
option routers 192.168.0.1;
option domain-name-servers 168.95.1.1,168.95.192.1;
}
host test { hardware ethernet 00:90:dc:02:45:88; fixed-address 192.168.0.10; }
這就是有問題的設定, 有可能有其他電腦會佔了 192.168.0.10 這個 IP,
而 00:90:dc:02:45:88 這台電腦就無法取得 IP.
正確的做法應該要把固定 IP 區段畫開,
如:
192.168.0.10 ~ 192.168.0.20 為固定分配 IP
192.168.0.21 ~ 192.168.0.200 為動態分配 IP
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.21 192.168.0.200;
option routers 192.168.0.1;
option domain-name-servers 168.95.1.1,168.95.192.1;
}
host test { hardware ethernet 00:90:dc:02:45:88; fixed-address 192.168.0.10; }
#!/bin/bash
STRING=aaa.bbb
echo ${STRING/bbb/ccc}
result is aaa.ccc
這個字在大部分的字典都查不到, 但是在技術文件滿常見的.
我是查了 Google 網上論壇 workaround group:tw.bbs.lang.english 得到結果, 整理如下:
中文解釋
英文解釋
ref.
http://en.wikipedia.org/wiki/Workaround
http://whatis.techtarget.com/definition/0,,sid9_gci868091,00.html
2006-07-17 Update: 把上述中文解釋加到中文維基百科
Use ImageMagick (this way keep EXIF data)
convert DSCN0001.JPG -resize 800x600 small.jpg
Use netpbm (this way lose EXIF data)
jpegtopnm DSCN0001.JPG | pnmscale -width=800 -height=600 | pnmtojpeg > small.jpg
ref. EXIF
PKBrowser 是個簡單的 IE base 的瀏覽器, 方便網頁設計者不用切換解析度就能觀看在不同解析度的效果, URL 會記憶.
有三種解析度版本, PureBasic 寫的, 附 Source
640x480版
800x600版
1024x768版
PS. P stand for Pank, K stand for Kelly :)
diff -uNr file.old file.new > file.patch
http://www.cs.auc.dk/~fleury/bug_cms/
這個問題是造成日本客戶 F1 問題的原因, 這是怎麼也料想不到的
回來後陸續作了一些測試, 都沒有找到主要的原因, 後來我根據 Error Message 找了很多相關討論, 終於找到這篇 report
簡單地說這個問題是因為 Transmeta CMS Bug 所致
有兩個解決方式
1. 更新 CMS 至 4.4.x 以上
2. 軟體修正, X window 時不使用一些最佳化的參數, 避免去觸發這個 bug
更新 CMS 有困難, 所以需採用軟體修正方式
更新 X 後, 經測試證實, 的確是這個問題
ref.
http://lists.debian.org/debian-x/2004/02/msg01000.html
http://lists.debian.org/debian-x/2004/07/msg00915.html
http://lkml.org/lkml/2004/8/10/80
10/11(一)
五人大陸團成員: 黃同學、胖子學長、吳Sir、Kelly跟我
搭下午二點多的華航班機, Delay 了約半個小時,
華航整體看來比長榮的差, 這次所搭的飛機沒有個人娛樂系統, 長榮的空中小姐比較漂亮,
到香港機場轉機, 香港機場的免稅商店街滿大的, 果然是購物天堂.
乘坐中國國際航空公司的班機前往北京, 老外並不多, 大都是東方人.
航程大約 3:30. 到達北京首都機場, 很多人要通關, 花了 20 分鐘才通關,
有一些司機在拉客, 喊價 150RMB (黃同學說和打車差不多, 就搭了),
分乘兩台車到下榻的東交民巷飯店, 換了 300USD + 7000円 (我去日本用剩的) 的人民幣,
=2988.18RMB.
東交民巷飯店是家四星級飯店, 離天安門很近, 步行約十分鐘.
到王府井小胡同吃宵夜, 此時大部分的店家都關了,
吃完後搭黃包車(沒想到現在還有人力拉車)回飯店(10RMB).
10/12(二)
今天的行程是故宮(紫禁城).
先去買了個中國移動的神州卡(100RMB)+50元儲值, 方便聯絡.
步行至天安門, 天安門廣場外的遊客超乎想像地多,
大概和尖峰時段的台北車站差不多, 旁邊的毛澤東紀念館也是人超多,
排隊延伸了約五百公尺, 聽說每天都是這麼多人.
故宮的門票 60RMB, 算是貴的, 故宮和預期差不多, 中國宮殿建築代表,
可惜大部分的殿都無法進入參觀, 或是進去還要購票
(大陸的景區都是這樣, 門票進去後, 還要另外購票才能看到全部的東西)
裡面有個珍寶館, 門票 10RMB, 還滿值得進去的, 包含了故宮右半邊大部分的東西,
還有一些展. 花了三小時才走馬看花看完故宮, 要細看的話大概要一整天的時間.
在故宮後門附近的一家餐館吃飯, 這家店並不便宜, 吃完飯後打車到秀水街,
這裡真是個購物的有趣地方, 是一個除了風景名勝外的一個必到之處,
若您的議價功能夠高的話, 可以買到很便宜的東西,
有仿名牌包包、服飾、配件、藝品等, 根據當天的經驗,
成交價大概是牌價的 2-3 折左右, 可以從 2 折開始喊, 若您喊的價格很低,
當場老闆並未接受, 別急, 若價格尚有賺頭, 老闆會在你走幾步路後叫你回來喔.
買了兩件襯衫(50RMBx2)、十雙襪子 30RMB.
晚上至老舍茶館吃飯兼喝大碗茶看戲, 我們坐中間的位置, 門票 120RMB, 滿貴的,
裡面有戲曲、雙簧、雜耍、魔術等表演.
10/13(三)
今明黃同學等三人去看展, 我們就睡得比較晚, 先到玉淵潭, 玉淵潭門票 2RMB,
其對面就是大陸中央電視台, 要找到八一碼頭, 由此搭船到頤和園, 玉淵潭也滿大的,
花了一個小時才找到八一碼頭, 到頤和園的船下午只有一班 3:00 的, 就先吃個麵,
套票 90RMB(船票 60RMB+頤和園門票 30RMB),
結果這一班只有 Kelly 跟我兩人, 坐快艇到頤和園, 20分鐘, 由水路直達,
第一個感覺是: 頤和園真漂亮.
我們一直走到太陽下山, 還是沒有逛完小圈的, 要全部逛完大概要一天的時間,
下次有機會一定還要再來.
晚上預定是吃全聚德烤鴨, 很貴, 這一餐是黃同學的廠商請客, 我們點了十人套餐,
1744RMB, 合台幣七千多, 好不好吃呢? 算不錯吃, 餐後還給你烤鴨紀念卡,
上面記錄著烤鴨的序號.
搭地鐵到王府井再逛一下.
北京地鐵 3RMB, 人工驗票, 還有很多要改進的地方,
我想在 2008 北京奧運前就能搞得很好了.
今天腳滿痠的, 去做足療+搥腿, 68+38RMB, 還不錯, 做完腳就比較不痠了.
10/14(四)
步行至天壇, 快到天壇前發現有小吃店, 一籠小籠包、餛飩、酸辣粉才 7.5RMB,
天壇門票 15RMB, 聯票 35RMB, 門票只能進大門,
天壇三景點祈年殿、皇穹宇、圜丘都不能進去看, 使用聯票才能看全部,
我們只有買門票, 只能在外圍看天壇三景點, 從北門走到南門, 走馬看花, 需要
2-3 小時, 若有進三景點, 大概需要一個下午的時間.
出天壇, 打車至大觀園, 門票 60RMB, 大觀園是根據紅樓夢所打造的庭園, 不是古蹟,
晚上有一些表演(比老舍茶館的還差)及水幕電影, 感覺不值得花 60RMB 進來看,
回王府井吃麥當勞1號餐, 17.5RMB, 來這兒吃的用意是比較台灣的和大陸的有何不同,
大陸的套餐大致上和台灣的差不多, 可樂比較小杯, 漢堡和薯條的口感都一樣.
在屈臣氏買了東西, 及買了狗不理包子(非湯包), 2兩, 六個, 7RMB, 包子不怎麼好吃.
10/15(五)
參加了 100RMB 遊長城、十三陵的旅行團, 含車錢、長城、十三陵的門票、午餐.
走在街上有很多在發這種 100RMB 的行程宣傳單, 看似不錯, 但是下次有機會再來的話,
應該不會再跟這種小團了, 缺點有
1. 跟台灣一樣, 會帶你到藝品店、名產店、賣藥的, 浪費時間
2. 會帶你到不想去的地方, 如這次的老北京
3. 時間綁死, 你想再逛久一點也不行
4. 有些部分還是要自費的, 並不是 100元打死
當然也是有優點
1. 便宜
2. 有隨車導遊, 講解還滿詳細的
今天的行程依序是
十三陵-長陵, 長陵是十三陵中最大的陵, 目前也只有這個開放參觀, 人滿多的
名產店
11:00 左右吃飯, 這邊的廁所有人在收錢, 要五毛
玉石店
老北京燕京城, 門票 45RMB(自費, 不含在 100RMB 裡), 這邊有點像中影文化城,
由舊有的城加以修復, 變成拍戲觀光的場所, 裡面有老天橋特技表演,
吞劍、吞鐵珠、鼻穿鋼釘
八達嶺長城, 搭乘簡陋的滑車要 30RMB, 這個錢可以省下來, 用走的,
長城下的廁所要三毛, 最高點的 888M 碑拍照要 2RMB
回程還到一家賣藥的, 真氣人
晚餐到簋街吃火鍋, 辣的部分都很辣, 火鍋並沒什麼特別好吃的地方.
10/16(六)
今天行程是世界公園, 它有點像台灣的小人國, 有世界各國的景點, 只是比例都比較大,
門票 65RMB, 在裡面玩機械式遊樂設施還要另外付費.
出園後打一輛大車到蘆溝橋(到蘆溝橋再回西單, 喊價100RMB)
蘆溝橋兩旁的石獅子, 每隻都不同, 非常逗趣.
西單市區很熱鬧, 不輸台北東區, 幾天前在秀水市場買的襪子買貴了,
因為這邊看到很多 5 雙 10RMB 的地攤.
打車到便宜坊烤鴨(哈德門飯店旁), 這裡和全聚德一樣, 是國家五星級的烤鴨,
可能是因為名氣不如全聚德, 這邊的價位大概是全聚德的一半左右, 各有風味.
10/17(日)
Kelly 昨天在地下道樓梯扭到了腳, 腳痛.
黃同學他們先去清華大學及圓明園, 我們則去毛主席紀念館, 結果週日下午沒有開,
真可惜, 毛主席紀念館五六日下午是沒開的, 不用門票.
打車去燕沙商場(本來要直接去秀水市場, 司機說燕沙商場及女人街也不錯),
是個百貨公司, 應該去先女人街的, 吃完飯後, 因為時間的關係, 就打車至秀水市場,
買了個小包包(50RMB)裝相機跟一個皮夾(40RMB).
等黃同學來會合, 他今天又買了一些東西, 真是血拼王.
晚餐到北京飯店後面的一家店吃, 點了小籠包及綜合包套餐, 不好吃,
(心得: 市區的餐廳都不太好吃)
又到王府井小吃街吃了爆肚, 爆肚就是是羊肚的料理, 我們點了炒的跟湯的, 吃起來感覺普通.
回飯店時, 看到路邊小攤在賣香酥蛋捲, 三個 1RMB, 買了六個, 真是便宜又好吃.
10/18(一)
包了兩台車(110RMBx2)至北京首都機場, 中國國際航空 12:55 CA109 班機,
在機場免稅商店買了二瓶酒(二鍋頭 6USD+清蒸酒 6USD)、巧克力(5USD)、
六大名茶(14USD)
在香港轉機華航 18:35 CI-616 班機, 我們坐到機尾的位置, 起飛跟降落都很晃,
我差一點就要吐了.
後記:
Patch program for all version Download
(Include 6.x and 7.x version)
// Multi-Open
Find 0F 85 B5 01 00 00 6A
Edit 90 E9 -- -- -- -- --
// No-Search
Find 1st idSearchContainer (ASCII)
look forward for bottom, edit as none
// No-Tab method 1
Find 1st tabmanager (ASCII)
look forward for left, edit as none
// No-Ad
Find 62 6F 74 74 6F 6D 20 6C 61 79 6F 75 74 3D 76
Edit 6E -- 6E 65 20 20 -- -- -- -- -- -- -- -- --
ASCII
Find bottom layout=v
Edit none
// No-Tab method 2 (registry)
regedit
[HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger\PerPassportSettings\YOUR_ID_NUMBER]
"DisableTabs"=dword:00000001
YOUR_ID_NUMBER is a number according your MSN account
newfs -b4096 -i2048 -m0 最適合
newfs -b4096 -i1024 -m0 inode 會稍微不夠
放在 crontab 裡排程的程式, 若發現沒有跑,
可在指令後加 > /tmp/stdout 2> /tmp/stderr
再看 /tmp/stdout /tmp/stderr 即可查出問題
根據我的經驗, 通常是路徑問題、程式執行有錯、參數有誤
Firefox 裝了 Sage 這個 extension 就有 RSS reader 功能,
這功能還滿好用的, 可以用來訂閱有支援 RSS 的網站
Blog 通常有支援, 例如我的 Blog 用 http://pank.org/blog/index.rdf
Screen Shot
PS. Yahoo 新聞 RSS
OPML: http://tw.news.yahoo.com/rss/opmlNew
即時新聞: http://tw.news.yahoo.com/rss/realtime
政治: http://tw.news.yahoo.com/rss/politics
社會: http://tw.news.yahoo.com/rss/society
國際: http://tw.news.yahoo.com/rss/international
兩岸: http://tw.news.yahoo.com/rss/twoshore
財經: http://tw.news.yahoo.com/rss/finance
影視: http://tw.news.yahoo.com/rss/entertainment
體育: http://tw.news.yahoo.com/rss/sports
生活: http://tw.news.yahoo.com/rss/leisure
休閒: http://tw.news.yahoo.com/rss/relaxation
科技: http://tw.news.yahoo.com/rss/technology
健康: http://tw.news.yahoo.com/rss/health
新奇: http://tw.news.yahoo.com/rss/oddlyenough
最多人瀏覽: http://tw.news.yahoo.com/rss/mostviewed
最多人轉寄: http://tw.news.yahoo.com/rss/mostemailed
My notebook partitions and boot loader settings
fdisk -l /dev/hda
Disk /dev/hda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
/dev/hda1 1 1020 8193118+ b W95 FAT32
/dev/hda2 1021 1530 4096575 7 HPFS/NTFS
/dev/hda3 * 1531 2040 4096575 a5 FreeBSD
/dev/hda4 2041 4864 22683780 f W95 Ext'd (LBA)
/dev/hda5 2041 2550 4096543+ 83 Linux
/dev/hda6 2551 3060 4096543+ 83 Linux
/dev/hda7 3061 4782 13831933+ 7 HPFS/NTFS
/dev/hda8 4783 4864 658633+ 82 Linux swap
default=0
timeout=5title Windows
rootnoverify (hd0,0)
chainloader +1title FreeBSD 5.0
root (hd0,2)
makeactive
chainloader +1title Red Hat 9.0
root (hd0,4)
kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/ vga=791
initrd /boot/initrd-2.4.20-8.imgtitle Mandrake 10.0
kernel (hd0,5)/boot/vmlinuz root=/dev/hda6 devfs=mount quiet vga=791
initrd (hd0,5)/boot/initrd.img
font: 12pt "字型";
scrollbar-face-color: 主體色
scrollbar-shadow-color: 陰影色
scrollbar-track-color: 背景色
eg.
<style>
body {
font : 12pt "新細明體";
scrollbar-face-color : #EEEEFF;
scrollbar-shadow-color : #EEEEEE;
scrollbar-track-color : #FFFFFF;
}
</style>
http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html
準備下列檔案
http://umn.dl.sourceforge.net/sourceforge/avf/fuse-1.3.tar.gz
http://richard.jones.name/google-hacks/gmail-filesystem/fuse-python.tar.gz
http://umn.dl.sourceforge.net/sourceforge/libgmail/libgmail-0.0.8.tgz
http://richard.jones.name/google-hacks/gmail-filesystem/gmailfs.tar.gz
安裝 fuse, 開機 kernel 所用的 gcc 需和 compile fuse 所用的版本一致
(參考README-2.4, 我的環境使用 Mandrake 10, kernel 2.4.26)
# tar zxf fuse-1.3.tar.gz
# cd fuse-1.3
# ./configure --with-kernel=/usr/src/linux
# make install
載入 module, 若無法載入, 重編 kernel, 再用那個 kernel 開機試試
# insmod fuse
安裝 python FUSE module, 需先安裝 libpython2.3-devel rpm
# tar zxf fuse-python.tar.gz
# cd fuse-python
# python setup.py build
# python setup.py install
安裝 libgmail
# tar zxf libgmail-0.0.8.tgz
# cd libgmail-0.0.8
# cp libgmail.py constants.py /usr/lib/python2.3/site-packages
安裝 gmailfs
# tar zxf gmailfs.tar.gz
# cd gmailfs
# cp gmailfs.py /usr/local/bin
# cp mount.gmailfs /sbin
# ln -s /sbin/mount.gmailfs /sbin/mount.fuse
修改 /usr/local/bin/gmailfs.py 中的 DefaultUsername, DefaultPassword
mount GmailFS!
# mount -t fuse /usr/local/bin/gmailfs.py /mnt
# df
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/hda6 3938 3462 276 93% /
gmailfs 1000 56 944 6% /mnt
完成, 在 /mnt 會看到一個空的目錄, 可以作檔案存取動作, 由於網路速度上的限制,
我覺得實用性不大
Skype 聯絡人存放位置
「Documents and Settings」,找到登入Windows系統時的帳號名稱檔案夾,再利用滑鼠點進去,點選透明的「Application Data」後,找到Skype的檔案夾,點進去後,可以看到Skype帳號名稱,複製下來,再依同樣的方式備份到新電腦中
ref.
http://www.ettoday.com/2004/08/25/754-1676943.htm
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q157172
若印表機裡沒有自訂紙張大小, 用這個方法可以造出自訂大小格式
in mdk
tcl-8.3.3-21mdk
tk-8.3.3-21mdk
itcl-8.3.3-21mdk
itcl is incr tcl that includes many useful widgets
edit master.cf
smtp inet n n n - - smtpd
-o content_filter=filter:
filter unix - n n - - pipe
flags=Rq user=filter argv=/path/mailfilter.sh ${sender} ${recipient}
# file mailfilter.sh
# this sample script add http://pank.org at the bottom of message
TEMP=/tmp/temp-$$.eml
cat > $TEMP
RCPT=`echo $@ | cut -d' ' -f2-`
{
cat $TEMP
echo -e "\n--\nhttp://pank.org\n"
} | $SENDMAIL -i $RCPT
rm $TEMP
Joe 是我習慣用的編輯器, 最近出了 3.x 版
http://sourceforge.net/projects/joe-editor/
Download
好用新功能
3.0 部分
- Syntax highlighting
這個功能對寫程式很好用
- Auto detect CR-LF (MS-DOS) files
若是 DOS format file, 不會看到最後的^M, 編輯後的格式仍是 DOS format, 可以用 ^T, Z 關掉
- File selection window is now 4 lines instead of 1
^KE, 選擇編輯檔案新增為4行(3.1版是多行)
3.1 部分
- Use ^T E to set character set of file (hit
prompt for a list of available character sets).
可以設文件的 charset
- TAB completion is now more "bash"-like
選擇編輯檔時按 tab 表現
- Added -icase option for case insensitive search by default.
忽略大小寫的搜尋參數
- Added status line sequence %x: shows current context (function
name if you're editing C).
第一行狀態列顯示目前在那個 function (寫程式好用)
- Added tab completion at search prompts and ESC-Enter for tab
completion within text windows.
在搜尋時, 按 tab 自動補齊可能 keyword
在內文打字時, 參照內文自動補齊, 例如在編輯程式時, 打了 inc 再按 ESC-Enter 會自自補齊變成 include
- Added Ctrl-space block selection method
按 Ctrl-space 選取區塊, 可惜這功能鍵在 Windows 下和切換輸入法衝突, 無法在 Winodws 下使用
- ^K E asks if you want to load original version of the file
再編輯同一個檔尚未存檔時會問要不要載入原檔
其他新增功能
^@ insert 這功能名為 insert, 但是試的結果和 Ctrl-space 差不多, 可用來選取區塊
^K, ^K. 左右平移一次動2格
I-SEARCH ^[R Backwards ^[S Forwards 立即落點至搜尋字串
環境: 兩條對外網路, 兩個 ATU-R 均接到 Hub, 電腦接 Hub
IP1 100.100.100.100/24 Gateway 100.100.100.254
IP2 200.200.200.200/24 Gateway 200.200.200.254
ifconfig eth0 100.100.100.100 netmask 255.255.255.0
ifconfig eth0:0 200.200.200.200 netmask 255.255.255.0
由於 default gateway 只能設一個, 所以會有其中一個 IP 不通
必需用 ip route2 來解決這個問題
kernel option 中的 IP: policy routing 必需勾選(CONFIG_IP_MULTIPLE_TABLES)
否則在使用 ip rule 時會出現如下錯誤訊息
# ip rule list
RTNETLINK error: Invalid argument
dump terminated
先在 /etc/iproute2/rt_tables 下建兩個 table
echo "100 line1" >> /etc/iproute2/rt_tables
echo "200 line2" >> /etc/iproute2/rt_tables
# 設定 line1 的 gateway
ip route add default via 100.100.100.254 table line1
# 設定 line2 的 gateway
ip route add default via 200.200.200.254 table line2
# 指定從 100.100.100.100 進來的連線走 rule line1
ip rule add from 100.100.100.100 table line1
# 指定從 200.200.200.200 進來的連線走 rule line1
ip rule add from 200.200.200.200 table line2
設完後, 從外面連兩個 IP 都可以通
連外負載平衡
kernel option 中的 IP: equal cost multipath 必需勾選(CONFIG_IP_ROUTE_MULTIPATH)
指定 multipath
ip route add default scope global nexthop via 100.100.100.254 dev eth0 weight 1 \
nexthop via 200.200.200.254 dev eth0 weight 1
設完後就達成 line1 line2 路由平衡, 可以調整 weight 參數來決定 line1 或 line2 的比重
ip route list 會看到 default 如下
default
nexthop via 100.100.100.254 dev eth0 weight 1
nexthop via 200.200.200.254 dev eth0 weight 1
ref. http://lartc.org/
http://dominia.org/djao/limitipconn.html
這個 mod 可以用來檔 flashget, net transport, netants 之類的多線程下載程式,
開太多線, 對 server 造成負擔, 又不會比較快
FreeBSD
cd /usr/ports/www/mod_limitipconn && make install
編輯 httpd.conf
LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
AddModule mod_limitipconn.c
ExtendedStatus On
新增
<IfModule mod_limitipconn.c>
<Location />
MaxConnPerIP 2
</Location>
<Location /cgi-bin>
MaxConnPerIP 2
</Location>
</IfModule>
若有 VirtualHost, 請加到對應的 block
apachectl restart 後, 測試一下
log 裡面會發現 503, 就是被限制的線程
220.130.142.100 - - [20/Aug/2004:01:32:43 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:32:49 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:32:55 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:33:02 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:33:08 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:33:14 +0800] "GET /test.rar HTTP/1.1" 503 395
http://idesk.sourceforge.net/
可以把 icon 放到 root desktop 上(eg. IceWM's desktop)
原始網站上的 0.3.5 版的檔案壞了(已發信通知作者)
正確檔案可到這裡下載
要 make idesk, 需要下面的 rpm
freetype2-devel
libtiff3-devel
libungif4-devel
libimlib1-devel
作如下 link
ln -fs /usr/include/freetype2/freetype /usr/include
make 的時候, /usr/include/pngconf.h
__png.h__ already includes setjmp.h;
__dont__ include it again.;
這兩行會出現錯誤, 不曉得為什麼, mark 掉即可 make, make 出的來檔案也正常
idesk 需要 /etc/fonts/fonts.conf
這個檔是給 Xlib 看的
The X-specific library 'Xft' uses fontconfig along with freetype to specify and rasterize fonts.
若沒這個檔, 會出現如下錯誤
FontConfig error: Cannot load default config file
idesk 需要 /usr/X11R6/lib/modules/extensions/libextmod.a
若沒這個檔, idesk 可以跑, 但是有 mouse 動作時會出現如下錯誤, 而且 icon 透明的部分會變成黑色
Xlib: extension "SHAPE" missing on display ":0.0".
設定檔 $HOME/.ideskrc
範例
table Config
FontName: tahoma
FontSize: 8
FontColor: #ffffff
PaddingX: 35
PaddingY: 25
Locked: false
HighContrast: false
Transparency: 150
Shadow: true
ShadowColor: #000000
ShadowX: 1
ShadowY: 2
Bold: false
end
設定目錄 $HOME/.idesktop (內存 icon link file)
範例:
table Icon
Caption: mozilla
Command: /usr/bin/mozilla
Icon: /usr/share/icons/mozilla.png
X: 60
Y: 200
end
WinRAR 可以在註解加入 icon 建立參數來製作簡易的安裝程式
Delete 解壓縮前先刪除檔案
License 顯示程式的使用授權協定
Overwrite 選擇檔案的覆寫模式
Path 設定預設目標路徑
Presetup 指定解壓縮前執行的程式
SavePath 儲存目的地路徑(儲存路徑在 registry, 當下次再執行自解檔時會自動帶入, Path 參數存在時才有效)
Setup 指定解壓縮後執行的程式
Shortcut 建立解壓縮檔案的捷徑
Silent 跳過開始時的對話方塊
TempMode 解壓縮檔案到暫存資料夾
Text 加入純文字到自解檔對話方塊純文字視窗
Title 設定自解檔對話方塊標題
範例
Title=MSN Messenger 7.0.0225簡單的自解範例, 解完執行 msnnoad.exe
Path=%temp%
Setup=msnnoad.exe /i
Overwrite=1
Silent=1
Title=MSN Messenger 7.0.0332 中文化解壓前秀一對話視窗, @後面接標題
Overwrite=1
Path=MSN Messenger
Silent=1
TempMode=安裝前請先結束 MSN Messenger\n進行安裝?@MSN Messenger 7.0.0332 中文化
Setup=msnmsgr
Title=Maxthon 繁體中文版Shortcut=D 建立桌面 icon
Text
{-
網際暢遊(Maxthon)是一個完全免費的綠色軟體,無需註冊,
不附加任何廣告,無需安裝,解壓到資料夾後可以直接使用,
並且容許以任何形式傳播該軟體。
}
Path=Maxthon
SavePath
Overwrite=1
Shortcut=D, Maxthon.exe,,, "Maxthon"
Shortcut=P, Maxthon.exe, Maxthon,, "Maxthon"
Shortcut=P, MaxthonUINST.exe, Maxthon,, "Uninstall"
Setup=Maxthon.exe
Setup 程式有加參數時需留一空白
參數說明: (資料來自 WinRAR 說明檔)
Delete=<檔案名稱>在解壓縮到目標資料夾之前刪除指定的檔案,允許數個 Delete 命令。
如果在此指定的檔案被鎖定而無法刪除,自解檔模組在解壓縮前會試著將它臨時重新命名,並在 Windows 重新啟動時刪除它,這能不能成功則取決於 Windows 版本的差異。
範例:Delete=winrar95.exe
Delete=rarlng.dll
License=<使用授權協議對話方塊標題>{-
使用授權協定純文字 1
使用授權協定純文字 2
…
}當開始自解檔時,顯示軟體的使用授權協定,使用者可以接受,並繼續解壓縮,或拒絕並離開。
License 可以是 HTML 格式或純文字格式。後者自解檔模組會配合對話方塊將指定純文字字串結合和重新格式成最佳狀態,因此如果您希望開始新段落的話,您必須在之前加入一個空字串。
使用 HTML 可以控制顯示的字形、顏色及格式。關於 HTML 的語法在一般網際網路都找得到,或者您也可以用 HTML 編輯程式製作。
範例:License=最終使用者使用授權協議書
{-
所有版權於 RAR 均屬於作者所專有。此程式是共享軟體,任何人在測試期限內均可以使用此軟體。
在測試期限過後,您必須註冊。
}
Overwrite=[n]如果 [n] 為 0,在覆寫檔案之前使用者將先被詢問。這是 覆寫 命令的預設動作,可以不需要指定。如果 [n] 不存在或是等於 1,檔案將在沒有確認的狀況下全部覆寫。如果 [n] 等於 2,所有已存在的檔案將不會被覆寫。
範例:
Overwrite=1
Path=<路徑>設定預設的目標路徑。路徑的絕對使用起始點在預設下為 <磁碟機號>:,如果 <路徑> 只包含名稱,它將會被附加到 Program Files 資料夾下,如果您不希望這麼做,請從 '.\' 字元開始定義起始 <路徑>。
範例:
設定 [Calc 3.05 beta] 為資料夾名,位置在 [Program Files] 下,當成預設路徑:Path=Calc 3.05 beta
設定 [C:\Calc] 當作預設路徑:
Path=C:\Calc
設定 [Calc] 在根目錄下當作預設路徑:
Path=.\Calc
Presetup=<程式>自解檔在解壓縮之前將試著執行 <程式>,在執行 <程式> 之前必須先指定目標資料夾。您可以使用此命令,比如說,當安裝新版本於舊版本上面時,用以移除先前的程式版本。
範例:
Presetup=uninstall.exe /clean
Setup=<程式>在成功解壓縮之後自解檔將會試著執行 <程式>。在執行 <程式> 之前,包含已解壓縮檔的資料夾將會設為目前資料夾
範例:
Setup=setup.exe注意
1) 如果您在使用自解檔執行 InstallShield setup.exe 有問題的話,請試著執行 [setup.exe /SMS] 來代替簡潔的 [setup.exe]。此選項允許自解檔檢測安裝程式的離開。
2) 全部在自解檔命令列所指定的選項都會從 Setup=<程式> 命令提交給程式,自解檔它自己則只認得 -s 選項,也就是強制背景安裝模式而不顯示開始對話方塊。
3) 自解檔模組在安裝之前先設定 sfxname 環境變數。這個變數包含自解檔名稱,所以安裝程式可以預先讀取這類的資訊。
shortcut=<目標類型>,<來源名稱>,<目標資料夾>,<敘述>,<捷徑名稱>為解壓的檔案建立一個捷徑。
目標類型 是目標區域種類,可以有下列值:
D 在桌面建立捷徑
S 在 [開始] 功能表建立捷徑
P 在 [開始] 功能表/[程式集] 中建立捷徑
T 在 [啟動] 功能表中建立捷徑
來源名稱 是壓縮檔名稱。目標資料夾 是建立捷徑的資料夾,如果它不存在,將被自我解壓縮檔建立。
敘述 是敘述捷徑的字串。
捷徑名稱 是由自解檔建立的 .lnk (捷徑) 檔案的檔案名稱。
所有選項用逗號分隔。如果您需要在選項內加入逗號字元,就把整個選項加上引號。如果您要顯示引號,則必須打兩次引號。只有目標類型和來源名稱是必需的,其他選項選用。
範例
在桌面建立在 WinRAR 資料夾中連接到 winrar.exe 的捷徑,帶有 [WinRAR 執行檔] 的敘述和 [WinRAR 壓縮軟體] 的名稱:Shortcut=D, winrar.exe, WinRAR, "WinRAR 執行檔", "WinRAR 壓縮軟體"
Silent[=選項]開始解壓縮時不顯示開始對話方塊。
選項 可以是 1 或 2。如果 選項 是 1,開始解壓縮對話方塊會完全隱藏,包含進度顯示和檔案名稱。如果 選項 是 2,則跳過開始解壓縮的確認,但使用者仍然可以看到壓縮檔案的解壓縮進程。
範例:
Silent=2
TempMode=[問題?述][@視窗標題純文字]此命令強制自解檔建立一個臨時目錄,將全部檔案解壓縮至此,然後開始執行 Setup 命令所指定的程式,並在完成 Setup 程式之後將臨時目錄中的內容全部清除。當執行這些操作時,自解檔會自動設定為 安靜模式。如果 TempMode 命令存在的話,?述中將有 Setup 命令且不得使用 path 命令。
TempMode 命令可以有字串選項的選項,在解壓縮之前可用以定義問題和問題的標題。這樣的範例,僅在當使用者選擇 [是] 按鈕時才會開始解壓縮。
範例:a) TempMode
b) TempMode=您希望繼續安裝 Calculator 3.05 嗎?@Calculator 安裝程式
Text=<字串>b)
Text
{-
字串 1
字串 2
…
}加入指定純文字或 HTML 字串到自解檔模組的文字輸出視窗。當自解檔模組第一次遇到 Text 命令時,它會重置此視窗在加入 <字串> 之前的預設內容,後續命令則附加 <字串> 到已存在的純文字後。
這種命令語法可以一次加入單行字串或數行字串。
如果使用純文字語法時,自解檔模組會配合對話方塊將指定純文字字串結合和重新格式成最佳狀態,因此如果您希望開始新段落的話,您必須在之前加入一個空字串。
使用 HTML 可以控制顯示的字形、顏色及格式。關於 HTML 的語法在一般網際網路都找得到,或者您也可以用 HTML 編輯程式製作。範例:
a) 加入單一字串到對話方塊視窗
Text=這是我的新程式b) 加入指定純文字到對話方塊視窗 [Text
{-
此程式最有趣的特性是:
- 支援 Windows 剪貼簿;
- 每一個處理的檔案大小最大為 10KB;
}
Title=<標題>設定自解檔的視窗標題。
範例:
Title==Calculator,版本 3.05
Step 0: SP2 整合
將 Windwos XP CD 解開到 x:\xpcd, 然後 xpsp2.exe/integrate:x:\xpcd
(xpsp2.exe 是完裝的 SP2 升級檔)
Step 1: 準備 winnt.sif (在 i386 目錄內), 設定好參數. winnt.sif 參數說明
範例:
[Data]
AutoPartition=0
MsDosInitiated="0"
UnattendedInstall="Yes"[Unattended]
UnattendMode=FullUnattended
OemSkipEula=Yes
OemPreinstall=No
TargetPath=\WINDOWS
Repartition=No
UnattendSwitch="Yes"
WaitForReboot="No"
DriverSigningPolicy=Ignore
CrashDumpSetting=0
NtUpgrade=No
[GuiUnattended]
AdminPassword=*
EncryptedAdminPassword=NO
OEMSkipRegional=1
TimeZone=220
OemSkipWelcome=1[SystemFileProtection]
SFCQuota=0[UserData]
ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
FullName="Windows XP"
OrgName="Microsoft"
ComputerName=*[RegionalSettings]
LanguageGroup=7,9,10[Identification]
JoinWorkgroup=WORKGROUP[Networking]
InstallDefaultComponents=Yes[Branding]
BrandIEUsingUnattended=Yes[Display]
BitsPerPel=32
Xresolution=800
YResolution=600
Vrefresh=75[Components]
msmsgs=off[URL]
Home_Page=www.google.com.tw
Step 2: 建立 $OEM$ 相關目錄
md $OEM$
cd $OEM$
md $1 $$ $Docs $Progs install
如下(用不到的目錄可以省略)
$1 下的所有檔案及目錄, 會複製到 %SystemDrive%
$$ 下的所有檔案及目錄, 會複製到 %SystemRoot%
install 是用來放 OEM 軟體的地方
Step 3: 在 $OEM$ 目錄下建立 cmdlines.txt, 寫入預定執行的指令
範例:
[COMMANDS]
install.bat
Step 4: 編輯 cmdlines.txt 內的批次檔, 軟體安裝需採用 quiet 或 silient 安裝模式, 才能自動安裝, 並不是所有軟體都支援這種參數, 參考應用程序的全自動安裝
範例:
@ECHO OFF
ECHO.
ECHO 系統優化
regedit /s tweak.reg
ECHO.
ECHO 安裝 MSN Messenger 6.2
start/wait install\msn.msi /qn
install\msn6xnoad.exe /s
Step 5: 使用 WinISO 將異動的檔案, 塞到 Windows XP 的 ISO 檔
Step 6: 完成, 可以使用 Virtual PC 或 VMWare 測試一下, 最後可燒成 CD
ref.
Windows XP Unattended Installation, Part II
MSFN's Unattended Windows
無人值守Windows XP安裝光盤
cramfs default maximum file size is 16M (16777215)
if file size > 16M, you'll get this message when mkcramfs
warning: file sizes truncated to 16MB (minus 1 byte).
it's possible to make limit larger!
modify to value CRAMFS_SIZE_WIDTH in kernel source
include/linux/cramfs_fs.h
(default #define CRAMFS_SIZE_WIDTH 24)
after I tested, maximum value is 28, in other word,
file size limit 268435455 (256MB)
don't forget to modify mkcramfs, get cramfs tools and
change the value as above (modify /usr/include/linux/cramfs_fs.h and rebuid mkcramfs), use modified mkcramfs to make cram files.
note. CRAMFS_SIZE_WIDTH in kernel and mkcramfs must be the same,
or cramfs will not work.
pank 是一般 user, home 在 /home/pank
先以 root 權限做下列動作
cd /home/pank
touch file1 file2
chmod 644 file1
chmod 0 file2
mkdir dir1 dir2 dir3 dir4
chmod 755 dir1
chmod 0 dir2
chmod 777 dir3
chmod 1777 dir4
cp file1 file2 dir3
cp file1 file2 dir4
然後再以 pank 權限執行下列指令, 請說明會有什麼反應及動作
1. cat file1
2. cat file2
3. ls dir1
4. ls dir2
5. rm file1
6. rm file2
7. rd dir1
8. rd dir2
9. rm dir3/file1
10. rm dir3/file2
11. rm dir4/file1
12. rm dir4/file2
解答如下
1. cat file1 可以 cat
2. cat file2 Permission denied
3. ls dir1 可以 ls
4. ls dir2 Permission denied
5. rm file1 可以 rm
6. rm file2 可以 rm
7. rd dir1 可以 rd
8. rd dir2 可以 rd
9. rm dir3/file1 可以 rm
10. rm dir3/file2 可以 rm
11. rm dir4/file1 Operation not permitted
12. rm dir4/file2 Operation not permitted
您答對了幾題呢?
# 範例: 周大拍的2004台北電腦應用展 URL="http://www.pbase.com/albertjou/show16&page=all" for i in `lynx -dump $URL | awk -F'[] ]' '/http.*image/ {print $NF}'` do wget `lynx -source $i | awk -F\" '/IMG.*upload.*jpg/ {print $6}'` done
kernel is 2.4.25
至 http://sourceforge.net/projects/poptop/ 取得 kernelmod-0.8.4.tar.gz, ppp-2.4.3-0.cvs_20040527.1.src.rpm
解開 kernelmod-0.8.4.tar.gz 至 /tmp
因為 package 裡的 script 寫得不是很好, 所以手動安裝
cd /usr/src/linux-2.4.25
apply patch
patch -p1 < /tmp/kernelmod-0.8.4/2.4/linux-default-bsd-mppe.patch
cp /tmp/kernelmod-0.8.4/src/linux-default-bsd-mppe/*c drivers/net
cp /tmp/kernelmod-0.8.4/src/linux-default-bsd-mppe/*h drivers/net
make menuconfig 勾選 PPP MPPE compression (encryption)
(in Network device support ---> )
make dep && make bzImage
編譯 ppp
(不要用 http://www.samba.org/ppp/ 上的 package, 要用 http://sourceforge.net/projects/poptop/, 因為有加入 MPPE 的 support)
rpm --rebuild ppp-2.4.3-0.cvs_20040527.1.src.rpm
安裝
rpm -ivh /usr/src/RPM/RPMS/i586/ppp-2.4.3-0.cvs_20040527.1.i586.rpm
設定
# cat /etc/pptpd.conf
option /etc/ppp/options.pptpd
localip 192.168.0.1
remoteip 192.168.0.240-249
# cat /etc/ppp/options.pptpd
lock
auth
debug
name pptpd
proxyarp
nobsdcomp
require-mschap-v2
require-mppe
另外有看到類似的 module http://www.polbox.com/h/hs001/#AEN221, 看了一下, 也是差不多, kernel 也要 patch
ref.
http://www.poptop.org/
http://www.chinaunix.net/jh/4/308230.html
MPPE
grep 也有支援 regex 功能, 加 -E 參數或用 egrep
[:alnum:] 英文字母及數字, 即 [0-9a-zA-Z]
\w = [[:alnum:]]
\W = [^[:alnum]].
[:alpha:] 英文字母, 即 [a-zA-Z]
[:cntrl:] 控制碼
[:digit:] 數字, 即 [0-9]
[:graph:] 除了 space 以外的可印字元
[:lower:] 小寫英文字母, 即 [a-z]
[:print:] 可印字元含 space
[:punct:] 除了 space, 英文字母及數字外的符號
[:space:] space, form-feed ('\f'), newline ('\n'), carriage return ('\r'), harizontal tab ('\t'), and vertical tab ('\v').
[:upper:] 大寫英文字母, 即 [A-Z]
[:xdigit:] Hex 字元, 包含 [0-9a-fA-F]
包含 ] 必須放在最前面
包含 ^ 不能放在第一個, 因為放第一個代表除...之外
包含 - 要放在最後
. 代表任何一個字元
「定位」 功能, 但本身不吃掉任何字元 anchor
^ 及 $ 分別表示行首及行尾
\< 及 \> 分別表示字首及字尾
\b 表示字的邊緣
\B 表示不是字的邊緣
計數用, 表達 「前面那個東西重複出現多少次」 的 quantifier
? 可有可無 (0 次或 1 次)
* 重複出現任意次, 包含 0 次
+ 重複出現任意次, 至少 1 次
{n} 重複 n 次
{n,} 重複 n 次(含)以上
{n,m} 重複 n 次到 m 次
ref. man grep
輩子受用的 Regular Expressions -- 兼談另類的電腦學習態度
龍門少尉的窩
鳥哥的 Linux 私房菜 -- 正規表示法
ip route add 192.168.0.0/24 dev eth0 (add 可以簡寫成 a)
= route add -net 192.168.0.0/24 dev eth0
ip route del default (del 可以簡寫成 d)
= route del -net 0
ip route replace default via 192.168.0.1 (replace 可以簡寫成 r)
= route del -net 0; route add -net 0 gw 192.168.0.1
<body onLoad="window.open('white.html','Main','toolbar=0,location=0,status=0,menubar=0,
scrollbars=0,resizable=0,directories=0,left=0,top=0,width=1024,height=768');">
dec2hex
#!/bin/sh
printf "%X\n" $1
hex2dec (bash only)
#!/bin/sh
echo $((0x$1))
startx
xinit
X (Xwrapper -> XFree86)
/etc/X11/Xsession (in /etc/X11/xinit/xinitrc or ~/.xinitrc)
run window manager in Xsession finally
MRTG 需要兩個數值來畫圖,
第一個值是 in
第二個值是 out
第三個值是 uptime (非必要)
第四個值是 device name or hostname (非必要)
例: BBS 線上人數統計(這裡只用到第二個值來畫圖)
/home/bbs/bin/mrtg 會產生 output 如下
0
60
11 days, 3:54
77bbs.com
mrtg.cfg 內容
WorkDir: /home/bbs/public_html/num
Language: big5
Target[localhost]: `/home/bbs/bin/mrtg`
MaxBytes[localhost]: 200
Options[localhost]: gauge, nopercent
YLegend[localhost]: BBS online number
LegendO[localhost]: 線上人數
Title[localhost]: 77bbs.com 線上人數
PageTop[localhost]: <h1>77bbs.com 線上人數</h1>
若 MRTG 圖表畫出來 in/out 和預期相反
在 Target 第二個欄位的數字前加上負號即可
如
Target[192.168.1.1_1]: 1:public@192.168.1.1:
改成
Target[192.168.1.1_1]: -1:public@192.168.1.1:
tac = reverse cat
Linux 下有 tac, FreeBSD 沒有
FreeBSD 用 tail -r 有相同效果(Linux 下的 tail 沒有 -r 參數)
偶爾用, 但常忘了怎麼用, 記下來參考
Ctrl+a c : 開新視窗.
Ctrl+a space : 切換視窗.
Ctrl+a w : 顯示目前有幾個視窗, 以及正在哪個視窗.
Ctrl+a 0-9 : 切換 0-9 號視窗 .
Ctrl+a k : 解決一個視窗 (強迫離開)
Ctrl+a d : 離開 screen , 但保持所有視窗的資訊. (有連線的還是保持連線.)
screen -r : 進入 screen, 並繼續上次 Ctrl+a d 所保持的視窗.
http://ppsc.pme.nthu.edu.tw/~dino/man/bsd/sys/howto/w48laksjdf.html
早上收信發現收不下來, 看 log
Jul 13 10:31:00 tecoia qpopper[3314]: I/O error flushing output to client pank at devel.i [192.168.0.7]: Operation not permitted (1)
在 server 端查了半天, 查不出所以然,
最後發現原來是 norton 的問題
Backup
dd bs=512 count=1 if=/dev/hda of=backup-hda.mbr
sfdisk -d /dev/hda > backup-hda.sf
Restore
dd if=backup-hda.mbr of=/dev/hda
sfdisk /dev/hda < backup-hda.sf
ref.
http://www.partimage.org/doc/index-3.html#ss3.7
使用 gnome-session-properties 設定, 存在 ~/.gnome2/session-manual
登出時, 選擇儲存目前工作, 存在 ~/.gnome2/session
也可以寫在 /etc/gnome/gnomerc
在 exec gnome-session 前
VMware
release cursor -> ctrl+alt
full screen toggle -> ctrl+alt+enter
nic -> pcnet32, multiple virtual nic ability, Good
Virtual PC
release cursor -> alt-shift
full screen toggle -> right alt+enter
nic -> same as physical one
FreeBSD
stat -f %z file
Linux
stat -c %s file
sure, you can use
ls -l file | awk '{print $5}'
but I think stat is better
若沒有 who 及 w 指令, 要如何知道連線 FROM 的位址?
ssh 使用 echo $SSH_CLIENT
telnet 使用 echo $REMOTEHOST
postconf mail_version
ref. Postfix FAQ
一個功能完整的 AP, 必須具備以下五種 mode
* AP
* Point to Point bridge
* Point to Multi-Point bridge
* Repeater
* AP Client
* AP
這個大概不用多做解釋, 每台 AP 都具有的功能, client 使用 Infrastructure 方式連接 AP
* Point to Point bridge
點對對橋接
應用實例: 兩棟大樓間的網路橋接
設定: 兩台 AP 必需設定對方的 MAC, 及使用相同的頻道, 同一個 ESSID
* Point to Multi-Point bridge
點對多對橋接
應用實例: 兩棟以上大樓間的網路橋接
設定: 設定點對多點的 AP 必需設定基他連線 AP 的 MAC, 其他 AP 也必需設定主 AP 的 MAC
所有 AP 需使用相同的頻道, 同一個 ESSID
* Repeater
延續 AP 的訊號
應用實例: 中間有阻隔的兩間辦公室, 在走郎處架設 Reapter, 延續 AP 的訊號
設定: Repeater 需設 root AP 的 MAC
* AP Client
AP Client 可接在傳統的 ethernet device, 使之能以無線方式連接
應用實例: AP Client 連接 Hub, 讓另一區的 LAN 能透過無線方式串接
設定: AP Client 需設 root AP 的 MAC, 使用同一個 ESSID
ref.
http://www.big5.tomshardware.com/howto/03q1/030129/wireless-02.html
這個版本加入新增兩項重要功能
MSN 傳檔
MSN 大頭照, 目前並不會自動更新, 只有對方傳訊過來時才會顯示大頭照, 或者手動按更新好友圖示
其他
修正 Yahoo protocol 異動, 使能 login Yahoo Messenger
把一個 gzip file 前 10 bytes dump 下來
1f 8b 08 00 b8 8e ea 3f 00 03
+---+---+---+---+---+---+---+---+---+---+
|ID1|ID2|CM |FLG| MTIME |XFL|OS |
+---+---+---+---+---+---+---+---+---+---+
ID1 ID2 固定是 1f 8b, 作為 gzip format 的識別
CM 是壓縮方式, 需填 08
FLG 是一些參數的 flag, 一般為 0, bit 5-7 reserved (Reserved FLG bits must be zero.)
MTIME 是最後異動時間, 單位秒, 相當於 date +%s
XFL 是其他參數, 一般為 0
OS = 03 = Unix
使用 cat << EOF > file 時, 結束的 EOF 要獨立一行, 後面也不能有 space, tab
REALbasic is a cross-platform VB like language
http://www.realsoftware.com/realbasic/indepth/
REALbasic is the powerful, easy to use tool for creating your own
software for Windows, Macintosh and Linux.
http://stardict.sourceforge.net/
最近裝了 stardict 才知道, 它有 highlight 即時翻譯的功能, 真好用!
以 Mandrake 10 為例, 至少要裝主程式, 英翻中檔, 中翻英檔
stardict-2.4.2-5mdk.i586.rpm
stardict-xdict-en-zh_TW-2.4.2-1mdk.noarch.rpm
stardict-xdict-zh_TW-en-2.4.2-1mdk.noarch.rpm
有一個檔的內容是
掃
曲線
在 linux 下, LC_CTYPE 設 en_US 的話
grep 掃 file 的結果, 兩個都能找到, 因為"曲"的後半+"線"的前半剛好等於"掃"
只要設 LC_CTYPE=zh_TW 就能讓 grep 認得中文
grep 掃 file 的結果, 就不會出現"曲線"
但是在 FreeBSD 下我試不出來, setenv LC_CTYPE zh_TW 還是 zh_TW.Big5 後,
還是沒效果
Mozilla, Firefox 支援滑鼠手勢, 工具/擴充套件 線上安裝 All-in-One Gestures
http://optimoz.mozdev.org/gestures/installation.html
Options of All-in-One Gestures screen shot
常用的和 MyIE 大致相同
按右鍵上 開新 tab
按右鍵下 開新視窗
按右鍵左 上一頁
按右鍵右 下一頁
按右鍵上左 上一個 tab
按右鍵上右 下一個 tab
按右鍵下右 關閉視窗
在link上, 按右鍵上, 開在新的 tab
這個設定找好久, 原來中文翻譯翻得不好, 容易讓人誤解
Mandrake Linux
系統/設定/GNOME/進階/面板
取消 抽屜及面板可平滑移動
最近 GoDaddy 提供 domain 的免費附加服務: Email forward
可以把 user@domain 的 mail 轉到其他地方
MX 設定
IN MX 0 smtp.secureserver.net.
IN MX 20 mailstore1.secureserver.net.
再到 Godaddy 的網頁上設定 Email forward, 沒有先做好上面的 MX 設定, 檢查 MX 時就會 pending
自架 mail server 時, 可利用此功能, 等於是有備援的機制
在設定 MX 時, 要先照上面的設定, Email forward 設完後再來改 MX
如
IN MX 0 mx1.pank.org.
IN MX 5 mx2.pank.org.
IN MX 10 smtp.secureserver.net.
IN MX 20 mailstore1.secureserver.net.
如此 mail 會先 try mx1, mx2 (自架的 mail server), 若掛了, 會 try godaddy 的 server,
進而 forward 到你指定的 mail, 這樣一來, 就不用擔心自架 server, 而 mail 收不到的情形
內部網路環境 192.168.0.0/24, 要阻檔內部連外的 tcp port 2000-20000
使用下面這個 rule , 看似正確, 而嚴格說起來這樣的 rule 是有問題的
iptables -A FORWARD -p tcp --dport 2000:20000 -j DROP
為什麼?
因為有可能誤檔回來封包的連線, 有一個連線 sport 3000, dport 80
這封包就出得去, 但是回不來, 因為回來的封包符合上面的 rule
正確的做法應該用
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 2000:20000 -j DROP
disable webcrawler (ex. googlebot) access your page
http://www.robotstxt.org/wc/norobots.html
http://www.google.com.tw/intl/zh-TW/faq.html#robots
dos2unix, unix2dos 用在 DOS <=> UNIX text file 轉換
DOS 格式 0d 0a
UNIX 格式 0a
有時手邊無此工具, 可用功能相同的指令組合
dos2unix:
sed -i "s/\r//" file
or
cat file | col -b > newfile
or
cat file | tr -d "\r" > newfile
cat file | tr -d "\015" > newfile
unix2dos:
sed -i "s/$/\r/" file
sed -i "s/$/\x0d/" file
以上適用 GNU sed, FreeBSD 下的 sed 不適用
while read i
do
echo $i
done < file
和下列效果一樣
for i in `cat file`
do
echo $i
done
(expression?"string when expression=true":"string when expression=false");
ex.
echo ($a=="yes"?"YES":"NO");
當 $a = yes 時, 會秀出 YES, 否則會秀出 NO
zip
50 4b 03 04 0a
tgz
1f 8b 08 00
bz2
42 5a 68 39 31 41 59 26 53 59 | BZh91AY&SY
當 samba 有設密碼時
(security = user, encrypt passwords = yes, smb passwd file = smbpasswd)
這個參數要 yes, Windows 9x 才能連
lanman auth (G)
This parameter determines whether or not smbd will attempt to
authenticate users using the LANMAN password hash. If disabled,
only clients which support NT password hashes (e.g. Windows
NT/2000 clients, smbclient, etc... but not Windows 95/98 or the
MS DOS network client) will be able to connect to the Samba
host.
Default : lanman auth = yes
getopt 是 shell 裡抓參數的好工具
例: getopt abc:d: 容許參數 -a -b -c -d, -c and -d 後面要接參數
#!/bin/sh
set - `getopt abc:d: $*`
while true
do
case $1 in
-a)
echo option -a
shift
;;
-b)
echo option -b
shift
;;
-c)
echo option -c=$2
shift 2
;;
-d)
echo option -d=$2
shift 2
;;
--)
shift
break
;;
*)
echo "error!"
exit 1
;;
esac
done
執行結果
# ./go -a
option a
# ./go -c jack
option -c=jack
# ./go -b -c jack
option -b
option -c=jack
# ./go -b -c test -d
getopt: option requires an argument -- d
option -b
option -c=test
(使用後面要加參數的 option 會提示)
# ./go -b -c test -f
getopt: invalid option -- f
option -b
option -c=test
(使用未支援的參數會提示)
cd 個人目錄/.mozilla/設定檔名稱/
cd *
rm lock
如
cd /root/.thunderbird/default
cd 6srdw22r.slt
rm lock
這個表格重寫 user@somesite 成 other@othesite
在 main.cf 加入 canonical_maps = hash:/etc/postfix/canonical
例一:將 alias name 重寫成 canonical name
test@mail.teco-ia.com.tw test@teco-ia.com.tw
(From: To: 均會重寫)
例二: 當成 forward 使用
test other@othesite
postmap /etc/postfix/canonical 更新 canonical.db
postfix reload 後生效
ref: http://www.laushu.idv.tw/apple/teach/mail_server/postfix_b.html
format
username new location Taichung
add this line to main.cf
relocated_maps = hash:/etc/postfix/relocated
to take effect
postmap /etc/postfix/relocated
postfix reload
then mail to username, system will sned a returned mail said
User has moved to new location Taichung
http://www.clamav.netdownload http://prdownloads.sourceforge.net/clamav
command line scan tool
/usr/local/bin/clamdscan
command line scan tool, use with clamd, scan speed fast
/usr/local/bin/clamscan
virus pattern update tool
/usr/local/bin/freshclam
clamav daemon
/usr/local/sbin/clamd
lib
/usr/local/lib/libclamav.so.1 -> libclamav.so.1.0.4
/usr/local/lib/libclamav.so.1.0.4
config
/usr/local/etc/freshclam.conf
/usr/local/etc/clamav.conf
virus pattern
/usr/local/share/clamav/daily.cvd
/usr/local/share/clamav/main.cvd
use clamassassin for mail scan
http://drivel.com/clamassassin/
To pass your mail through clamassassin, add the following command to your
procmail rc file:
:0fw
| /usr/local/bin/clamassassin
If you installed the program elsewhere, change the path. The above will
scan the mesage for viruses and add the headers X-Virus-Status and
X-Virus-Report as appropriate. Procmail then continues processing the
message as normal. Nothing else will happen unless you add additional
rules to sort or discard detected viruses. To do this, you might do the
following:
:0:
* ^X-Virus-Status: Yes
IN.virus
ps. http://monkey.org/openbsd/archive/misc/0310/msg00002.html
The following are the open source antivirus solution:
(a) Open Antivirus
http://www.openantivirus.org
(b) Clam AV
http://clamav.elektrapro.com
(c) Trophie
http://www.vanja.com/tools/trophie/
(based on Trend Micro Virus scanning engine library)
(d) Sophie
http://www.vanja.com/tools/sophie/
(based on Sophos SAVI AV interface)
Google 最近改用 UTF-8 編碼
以前可以用
http://www.google.com/search?q=XXX 查詢
現在直接用這樣使用中文會有亂碼
現在要改成
http://google.com/search?hl=zh-TW&ie=Big5&q=%s
or (搜尋繁體中文)
http://google.com/search?hl=zh-TW&ie=Big5&lr=lang_zh-TW&q=%s
有用 MyIE2 的人可以到設定中心/快速搜尋裡面修改 * 的對應
*.test IN A 140.117.53.147
就這麼簡單
試過 bind, maradns 都可以適用
Patch program for version 6.2.x download
Patch program for version 6.x all version download
// Multi-Open
Find 0F 85 9C 00 00 00 6A
Edit 90 E9 -- -- -- -- --
// No-Ad set 1/3
/*
Find E8 ?? FD FF FF 53 68
Edit 90 90 90 90 90 -- --
*/
Find FD FF FF 53 68
Edit 90 90 90 -- --
再往前推 2 bytes, change to 90
// No-Ad set 2/3
Find 3B CB 74 07 6A 01 E8 (3 found, but only change 1st one)
Edit -- -- EB -- -- -- --
// No-Ad set 3/3
Find 74 21 57 57
Edit EB -- -- --
backup:
dump -0ua -f {dumpfile} {device}
restore:
restore -r -f {dumpfile}
restore -i -f {dumpfile}
(-i interactive)
template 最後要是 XXXXXX
mktemp 有安全性問題, 不要使用, man mktemp BUG 段, 需使用 mkstemp
如
char temp[]="/tmp/temp-XXXXXX";
mkstemp(temp);
http://www.poptop.org/
tar zxvf pptpd-1.1.4-b4.tar.gz
cd pptpd-1.1.4-b4
./configure&&make&&make install
edit /etc/pptpd.conf
# localip 是 server 的內部 IP
localip 192.168.0.2
# remoteip 配給 vpn client 的 IP
remoteip 192.168.0.20-30
pidfile /var/run/pptpd.pid
if have firewall, add
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
/etc/ppp/chap-secrets
#帳號 servername 密碼 IP
test pank.org 1111 *
以上設定完成
windows 在新增 VPN 連線後
[內容]-[安全性]->要求資料加密 的選項不要打勾
前幾個月有看到這個軟體, 當時沒有很注意, 剛剛翻了翻相關文件,
這真是劃時代的軟體, 經由虛擬 hub , 可以連到 firewall 下的電腦,
firewall 下的電腦, 連上虛擬 hub 後, 再也不受到任何現制.
令人振奮亦令人震驚!
衍生問題是系統安全性的問題, 舉個例子: 只要有人在公司內部裝這個軟體供外面連入,
外面的人就可以直接穿過 firewall 對公司內部電腦進行存取.
linux 版 virtual hub 安裝方法
ref. http://www.softether.com/jp/linux/
wget http://www.softether.com/jp/download/se_101_linux.zip
unzip se_101_linux.zip
gcc se_hub.a -lpthread -lssl -lcrypto -o se_hub
./se_hub &
(ca.crt, ca.key 需在 se_hub 同一個目錄)
管理
telnet localhost 8023
第一次會讓你設定密碼, 爾後請輸入密碼登入
------------------------------------------------------------
SoftEther Virtual HUB Administration Console 1.00
Copyright (C) 1997-2004 Daiyuu Nobori, All Rights Reserved.
------------------------------------------------------------
http://www.softether.com/
Note: Please use Microsoft Telnet Client (telnet.exe).
Please enter Administrator Password.
Password :
ref. http://shoppingguide.ithome.com.tw/special/special2004-05-25-002.html
利用弱點稽核軟體,檢查哪些主機有安裝SoftEther;防火牆可以從連結的主機那裡偵測到標示「SoftEther Protocol」的字串,了解哪些人正在使用SoftEther;SoftEther的作者表示,未來將開發檢查區域網路內是否有人在使用SoftEther的軟體。
現在動不動就是上 G 的檔案, 很多軟體都會出現這個問題
無法處理 size > 2147483647 的檔案(long integer)
剛剛用 ncftp 試圖要傳一個 2.8G 的檔, 就掛了
Solution:
1. 抓官方 binary distributions
2. 自行 make with -D_LARGEFILE_SOURCE
sub IN NS ns.sub.pank.org.
ns.sub IN A 61.220.92.130
http://fetchyahoo.sourceforge.net/
需安裝下列 RPM (以 mdk 9.2 為例)
perl-Crypt-SSLeay-0.49-1mdk.i586.rpm
perl-IO-stringy-2.108-4mdk.noarch.rpm
perl-MailTools-1.58-1mdk.noarch.rpm
perl-MIME-tools-5.411-4mdk.noarch.rpm
Usage:
fetchyahoo --username=username --password=password --spoolfile=/var/mail/username
http://yahoopops.sourceforge.net/
台灣 yahoo 不能收, 必須英文 YAHOO 的個人設定網頁登入,再編輯你的會員資料,將你的使用語言改成 English-US 後儲存設定
或用下面這個修正(for windows)
http://myweb.hinet.net/home5/daemon9/YahooPOPs-0.5-tw.htm
for windows
在 Mail Client 把 SMTP server 設成 localhost, pop
for linux
YAHOOPOPS_PORTNUMBER 5058
YAHOO_SMTP_PORT 5059
在 Mail Client 把 SMTP server 設成 localhost, port 為 5058
http://www.projektfarm.com/en/support/howto/postfix_smtp_auth_tls.html
大部分的分件都沒有提到 TLS 需要 patch, 這篇文章寫得滿仔細的
以下是整理過的步驟
取得檔案( 原文中有些 URL 已無效)
wget http://www.openssl.org/source/openssl-0.9.7c.tar.gz
wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.18.tar.gz
wget ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/related/postfix/postfix-2.0.18.tar.gz
wget ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/pfixtls-0.8.16-2.0.18-0.9.7c.tar.gz
解壓檔案
tar zxf openssl-0.9.7c.tar.gz
tar zxf cyrus-sasl-2.1.18.tar.gz
tar zxf postfix-2.0.18.tar.gz
tar zxf pfixtls-0.8.16-2.0.16-0.9.7b.tar.gz
編譯 openssl
cd openssl-0.9.7c
./config
make
make install
編譯 cyrus-sasl-2
cd ../cyrus-sasl-2.1.18
./configure --enable-anon --enable-plain --enable-login --with-saslauthd=/var/run/saslauthd --with-pam --with-openssl=/usr/local/ssl --with-plugindir=/usr/local/lib/sasl2 --enable-cram --enable-digest
make
make install
[ -d /usr/lib/sasl2 ] && mv /usr/lib/sasl2 /usr/lib/sasl2_orig
ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
printf "pwcheck_method:saslauthd\nmech_list: plain login digest-md5\n" > /usr/local/lib/sasl2/smtpd.conf
編譯 postfix (含 tls patch)
cd ../postfix-2.0.18
useradd postfix
groupadd postdrop
patch -p1 < ../pfixtls-0.8.16-2.0.18-0.9.7c/pfixtls.diff
make makefiles CCARGS="-DHAS_SSL -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/ssl/include" AUXLIBS="-L/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib -lsasl2 -lssl -lcrypto"
make
make install
cp /etc/postfix/aliases /etc/
newaliases
mkdir -p /var/spool/postfix/etc
cd /etc
cp localtime services hosts resolv.conf /var/spool/postfix/etc
mkdir -p /var/spool/postfix/var/run/saslauthd
chmod 755 /var/spool/postfix/var/run/saslauthd
ln -s /var/spool/postfix/var/run/saslauthd /var/run/saslauthd
產生 certificate files for TLS
cd /etc/postfix
openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650
編輯 /etc/postfix/main.cf 加入下列
# SASL
smtpd_sasl_auth_enable=yes
smtpd_recipient_restrictions=permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_security_options=noanonymous
broken_sasl_auth_clients=yes
# TLS
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/smtpd.pem
smtpd_tls_cert_file = /etc/postfix/smtpd.pem
smtpd_tls_CAfile = /etc/postfix/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
啟動 postfix 及 saslauthd
postfix start
saslauthd -a shadow
測試
telnet localhost 25
220 pank.idv.tw ESMTP Postfix
ehlo 0
250-pank.idv.tw
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN DIGEST-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5
250-XVERP
250 8BITMIME
看起來正常, 再測試認證, 使用者名稱 pank, 密碼 test
取得編碼後字串 printf 'pank\0pank\0test' | mmencode
得到 cGFuawBwYW5rAHRlc3Q=
(使用這個方法測試時, 用數字 0-7 開頭的密碼會認證錯誤, 原因不明.
而事實上, 使用上述密碼在 smtp auth 上是沒問題的)
telnet localhost 25
220 pank.idv.tw ESMTP Postfix
ehlo 0
250-pank.idv.tw
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN DIGEST-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5
250-XVERP
250 8BITMIME
auth plain cGFuawBwYW5rAHRlc3Q=
235 Authentication successful
已正常運作
若是 failed, 就看 log 查原因
ref. Postfix/TLS - A TLS extension for POSTFIX
http://www.study-area.net/linux/system/linux_fs.htm
1﹐則為檔案設上一個特殊標籤﹕sticky bit (黏著位元)﹐當這個標籤打開的時候﹐只有檔
案的擁有者才能刪除這個檔案(root 除外)﹐其它使用者就算具有 w 的權限﹐也只能修改檔
案的內容﹐而不能將檔案刪除。如果一個目錄具有這個位元﹐那麼其下所建立的檔案﹐也具
有這個屬性。
./configure --with-virtualchroot
此參數讓 link 不受 chroot 的限制, 好用
http://www.pureftpd.org/README
--with-virtualchroot: usually, when an user is chrooted (-A and -a
options), it's impossible to go out of his home directory. Enabling that
feature makes it possible: symbolic links are always followed, even if they
are pointing to directories not located in the user's home directory. This
is very useful for having shared directories (for instance, have a symbolic
link to /var/incoming in every home directory) .
This feature isn't enabled by default.
./configure --with-sysquotas
使用系統 quota
i 屬性 Immutable, 無法刪除或改變
a 屬性 Append only
ex.
chattr -R +i /bin /boot /etc /lib /sbin
chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin
chattr +a /var/log/messages /var/log/secure
例一
Server test.pank.org
MX 設到 tecoia.com.tw
Server tecoia.com.tw
mydestination 設上 test.pank.org
transport 檔設 test.pank.org smtp:[pank.org] ([] disable MX lookup)
postmap /etc/postfix/transport
信件就會先經過 tecoia.com.tw (可做過濾掃毒等動作), 再送到 test.pank.org
relay 的應用
bbs.fcu.edu.tw relay:[mail.nsysu.edu.tw]
要送到 someone@bbs.fcu.edu.tw 的信件, 會 relay 給 mail.nsysu.edu.tw
例二
所有的信送給上游 smtp, 除了本身及 server6.com.tw
server6.com.tw :
teco-ia.com.tw :
* :[ms1.hinet.net]
ps. 有異動需執行 postmap transport 及 postfix reload 動作
http://www.study-area.org/tips/setfont/index.html
wget ftp://cle.linux.org.tw/pub/CLE/i386/RedHat/RPMS/ttfm-1.0-6.i386.rpm
rpm -ivh ttfm-1.0-6.i386.rpm
自 MS Windows 取得 mingliu.ttc
ttfm --add mingliu.ttc
編輯 /etc/X11/XF86Config-4
Section "Files"
FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/ja/TrueType"
FontPath "/usr/share/fonts/zh_TW/TrueType"
# FontPath "unix/:7100"
EndSection
Section "Module"
Load "dbe"
Load "GLcore"
Load "dri"
Load "glx"
Load "extmod"
# Load "freetype"
# Load "type1"
Load "xtt" #←加入這一列
EndSection
裝完細明體, 設好後, 字會糊糊的, 若是用 GNOME, 要修改
/etc/gnome/gnomerc
把 XFT 拿掉...
在 gnome-session 前加入
export GDK_USE_XFT=0
修改預設輸入法為倉頡
編輯 /etc/chinese/xcin/xcinrc
把 DEFAULT_IM 改為 cj
(define zh_TW.Big5
'((DEFAULT_IM "cj")
先準備一張 intersil chip 的 pcmcia wireless 卡
以下是從 hostap driver 裡的 hostap_cs.conf 裡面列舉的卡(參考文章最後)
編譯 kernel
kernel 不要用 patch 的方式 (我沒試成功過), 獨立 make modules, 用 load modules 方式載入
make menuconfig
開啟 General setup ---> PCMCIA/CardBus support
開啟 Network device support ---> Wireless LAN (non-hamradio) ---> [*] Wireless LAN (non-hamradio) 其下設定不要勾選(因為要用模組載入)
編譯 hostap driver
wget http://hostap.epitest.fi/releases/hostap-driver-0.3.7.tar.gz
解開 make
make KERNEL_PATH=/usr/src/linux-2.4.xx
在 driver/modules 會產生所需的 hostap .o 檔
將 .o 檔 copy 至 /lib/modules/`uname -r`
cp driver/etc/hostap_cs.conf /etc/pcmcia
安裝 wireless tools
可直接使用 wireless-tools rpm 或到 Wireless Tools for Linux 下載 tar ball 安裝
使用新編好的 kernel 開機, 啟動 pcmcia (service pcmcia start)
AP 的 prototype 就出來了
使用 iwpriv 作 ACL
iwpriv wlan0 maccmd
0: open policy for ACL (default)
1: allow policy for ACL
2: deny policy for ACL
3: flush MAC access control list
4: kick all authenticated stations
iwpriv wlan0 addmac
add mac addr into access control list
iwpriv wlan0 delmac
remove mac addr from access control list
ref. Host AP website | Host AP readme
2005-04-08 update
hostap_cs.conf 裡面列舉的卡
card "Intersil PRISM2 Reference Design 11Mb/s WLAN Card"
card "Compaq WL100 11Mb/s WLAN Card"
card "Compaq WL200"
card "EMTAC A2424i 11Mbps WLAN Card"
card "Linksys WPC11 11Mbps WLAN Card"
card "Linksys WPC11 Ver 2.5 11Mbps WLAN Card"
card "Linksys WPC11 Ver 3 11Mbps WLAN Card"
card "Linksys WCF12 Wireless CompactFlash Card"
card "D-Link DWL-650 11Mbps WLAN Card"
card "D-Link DRC-650 11Mbps WLAN Card"
card "ZoomAir 4100 11Mb/s WLAN Card"
card "Addtron AWP-100 11Mbps WLAN Card"
card "Samsung SWL2000-N 11Mb/s WLAN Card"
card "SMC 2632W 11Mbps WLAN Card"
card "BroMax Freeport 11Mbps WLAN Card"
card "Z-Com XI300 11Mb/s WLAN Card"
card "Zcomax XI-325H 200mW"
card "3Com AirConnect PCI 777A"
card "U.S. Robotics IEEE 802.11b PC-CARD"
card "Longshine LCR-8531 11Mbps WLAN PCMCIA CARD"
card "Philips 802.11b WLAN PCMCIA"
card "Proxim RangeLAN"
card "Buffalo WLI-CF-S11G"
card "Level-One WPC-0100"
card "Belkin 802.11b WLAN PCMCIA"
card "Senao SL-2011CD/SL-2011CDPLUS"
card "Fulbond Airbond XI-300B"
card "Netgear MA401"
make ipop3d imapd
make slx SSLTYPE=nopwd
make ipop3sd imapsd
make slx SSLTYPE=none
缺少 plugin
裝上 libsasl2-plug-plain-2.1.12-1mdk.i586.rpm
libsasl2-plug-crammd5-2.1.12-1mdk.i586.rpm
即可
-rw-r--r-- 1 nobody nogroup 11101 3月 6 2003 libsasl2-plug-anonymous-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 12813 3月 6 2003 libsasl2-plug-crammd5-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 25606 3月 6 2003 libsasl2-plug-digestmd5-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 15567 3月 6 2003 libsasl2-plug-gssapi-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 11382 3月 6 2003 libsasl2-plug-login-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 14042 3月 6 2003 libsasl2-plug-ntlm-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 32779 3月 6 2003 libsasl2-plug-otp-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 11435 3月 6 2003 libsasl2-plug-plain-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 12723 3月 6 2003 libsasl2-plug-sasldb-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 29700 3月 6 2003 libsasl2-plug-srp-2.1.12-1mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 26794 3月 6 2003 libsasl7-1.5.28-5mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 8294 3月 6 2003 libsasl7-plug-anonymous-1.5.28-5mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 11149 3月 6 2003 libsasl7-plug-crammd5-1.5.28-5mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 19790 3月 6 2003 libsasl7-plug-digestmd5-1.5.28-5mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 11964 3月 6 2003 libsasl7-plug-gssapi-1.5.28-5mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 9317 3月 6 2003 libsasl7-plug-login-1.5.28-5mdk.i586.rpm
-rw-r--r-- 1 nobody nogroup 9345 3月 6 2003 libsasl7-plug-plain-1.5.28-5mdk.i586.rpm
Pre-requisites
The first thing you need to do is have a version of postfix installed that has SASL support enabled. Recently, MandrakeSoft issued updates to postfix that provided fixed SASL support for 8.1 and introduced SASL support in 8.0 (for more information, view the advisory, MDKA-2002:003). These versions of postfix (postfix-20010228-6.2mdk for 8.0 and postfix-200102280-15.2mdk for 8.1) provide proper SASL support and can be upgraded via MandrakeUpdate. You will also need the Cyrus SASL library files, which you can also obtain from updates due to a security fix (MDKSA-2002:018). These updates are available for 8.0 and 8.1 also.
You will need to have the basic components installed: cyrus-sasl and libsasl7. To enable the authentication methods, you will need the appropriate plugin. For example, to enable CRAM-MD5 authentication, you will need to install the libsasl7-plug-crammd5 package; for PLAIN authentication, you will need the libsasl7-plug-plain package. You can install the specific plugin you wish, or simply download and install all of the plugins (anonymous, crammd5, digestmd5, login, or plain).
Once you have upgraded and/or installed the appropriate packages, you're ready to configure postfix and Cyrus SASL. 8.2 users can install postfix and the SASL packages from their install CDs.
[root@test root]# printf 'pank\0pank\0test' | mmencode
cGFuawBwYW5rAHRlc3Q=
[root @test root]# telnet localhost 25
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 teco-ia.com.tw ESMTP Postfix
ehlo 0
250-teco-ia.com.tw
250-PIPELINING
250-SIZE 20971520
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN DIGEST-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5
250-XVERP
250 8BITMIME
auth plain cGFuawBwYW5rAHRlc3Q=
235 Authentication successful <==如果出現這一行就表示你的 SMTP 已經運作正常
quit
(使用這個方法測試時, 用數字 0-7 開頭的密碼會認證錯誤, 原因不明.
而事實上, 使用上述密碼在 smtp auth 上是沒問題的)
ref.
http://pank.org/blog/archives/000170.html
master.conf 裡
smtp inet 這一行的參數, 第二個和第三個為 n, sasl 功能才會正常
smtp inet n n n - -
MIME-Version, Content-Type header 為 html 信件必備, 缺一 html 信無法正常顯示
cat $TEMP | formail -k -X From -X To -X Subject -X MIME-Version -X Content-Type -I "To: $EMAIL" -I "Subject:$SUBJECT" | sendmail -t
Login failed.
No control connection for command: No such file or directory
當出現上述, 表示 /etc/passwd 裡 ftp 帳號的 home 目錄不存在
把以下存成 script 檔 test.sh, 把壓好的 file.tgz 附加在後面 cat file.tgz >> test.sh
exit 0 以上的地方可以再加任意指令
#!/bin/sh
tail +$((`grep -an "^### end of script" $0 | head -1 | cut -d: -f1`+1)) $0 | tar zxf -
exit 0
### end of script ### by pank
ctlinnd newgroup {groupname}
ctlinnd rmgroup {groupname}
rmmod usb-uhci
rmmod usb-storage
rmmod sd_mod
rmmod scsimon
rmmod scsi_mod
rmmod usbcore
modprobe usbcore
modprobe scsi_mod
modprobe scsimon
modprobe sd_mod
modprobe usb-storage
modprobe usb-uhci
map rl0 from 192.168.0.0/24 to 192.168.1.0/24 -> 192.168.1.2/32
map xl0 from 192.168.0.0/24 to 192.168.15.0/24 -> 192.168.15.2/32
#map rl0 192.168.0.0/24 -> 140.109.231.55/32 portmap tcp/udp 1025:65000
map rl0 192.168.0.0/24 -> 0/32 portmap tcp/udp auto
map rl0 192.168.0.0/24 -> 0/32
map rl0 192.168.15.0/24 -> 0/32 #portmap tcp/udp auto
rdr rl0 0/0 port 3389 -> 192.168.0.6 port 3389 tcp
rdr rl0 0/0 port 80 -> 192.168.0.5 port 80 tcp
nmblookup -A IP 可由 IP 查 windows 電腦名稱, 群組資訊
nmblookup [電腦名稱] 可查 IP
PS. nmblookup 在 samba-client rpm 內
當有 usb device 時, 序號是 ide 優先, 例如要有兩顆 hd, 一顆 ide, 一顆 usb 外接,
ide hd 是 hd0
usb hd 是 hd1
CS:46F5C3 3D92050000 CMP EAX,0000592
CS:46F5C8 7E20 JLE 0046F5EA
CS:46F5CA 6A00 PUSH 00
在 CS:46F5C8 需跳
Find 7E 20 6A 00
Edit EB -- -- --
2004 年追加
CS:XXXXXX 3D93050000 CMP EAX,0000592
CS:XXXXXX 7E0C JLE XXXXXXXX
Find 7E 0C 8B 83 A8
Edit EB -- -- -- --
%windir%\system32\phototoys.dll
把第四選項 240x320 改成 976x976
Find F0 00 00 00 40 01
Edit D0 03 00 00 D0 03
REMOTE_HOST=news.nsysu.edu.tw
LOCAL_HOST=localhost
SPOOLDIR=/var/spool/news/articles # base directory for articles to be rposted
NEWSDIR=/usr/local/news # base directory for news binaries
BASEDIR=/usr/local/news/nsysu # base directory for scripts and data files
total 24
drwxr-xr-x 3 root wheel 512 Jan 5 08:04 .
drwxr-xr-x 15 root wheel 512 Jan 4 22:50 ..
drwx------ 2 root wheel 1536 Jan 5 07:47 Msgs
-rw-r--r-- 1 root wheel 635 Jan 5 08:04 active-ignore
-rw-r--r-- 1 root wheel 7604 Jan 5 08:04 sucknewsrc
-rw-r--r-- 1 root wheel 7670 Jan 5 07:27 sucknewsrc.old
/etc/rc.d/init.d/functions
initsplash()
. /etc/bootsplash/themes/$theme/config/bootsplash-`fbresolution`.cfg
開機畫面是放在 silentjpeg=
ref. bootsplash
http://pank.org/blog/archives/000035.html
修改 album.dat
"rows";s:1:"3";s:4:"cols";s:1:"4"
修改其中的 "3" "4"
ex.
kb::kbrequest:/sbin/shutdown -h now
in /etc/inittab, and
control alt keycode 79 = KeyboardSignal
control alt keycode 107 = KeyboardSignal
in their keymap. Now Ctrl-Alt-End will do a system shutdown
ex.
xmodmap -e "keycode 22 = 5 percent"
當 console 變成一些如下面這樣的亂碼時
⎼⎺⎺├@├␊␌⎺␋▒ ␍┌
解決方法
# cat
ctrl-o
ctrl-d
ctrl-c
或是 setterm -reset
#!/bin/sh
if [ -z $1 ] ; then
echo "Usage: `echo $0` {file}"
else
if [ -f $1 ] ; then
find *tgz \! -newer $1 -exec rm {} \;
else
echo File does not exist.
fi
fi
http://support.microsoft.com/default.aspx?scid=%2Fdirectory%2Fworldwide%2Fzh-tw%2Ffaq%2F6420.asp
DHCP
netsh interface ip set address "區域連線" dhcp
netsh interface ip set dns "區域連線" dhcp
netsh interface ip set Wins "區域連線" dhcp
Static IP
netsh interface ip set address "區域連線" static 10.0.0.9 255.0.0.0 10.0.0.1 1
netsh interface ip set dns "區域連線" static 10.0.0.9
netsh interface ip set Wins "區域連線" static 10.0.0.9
sample:
[C:\]type dhcp.bat
netsh interface ip set address "區域連線" dhcp
netsh interface ip set dns "區域連線" dhcp
netsh interface ip set wins "區域連線" dhcp
[C:\]type static.bat
netsh interface ip set address "區域連線" static 192.168.0.9 255.255.255.0 192.168.0.2 1
netsh interface ip set dns "區域連線" static 192.168.0.2
For self:
location.href="whateva.htm";
For blank:
window.open="whateva.htm";
For parent:
parent.location.href="whateva.htm";
For top:
top.location.href="whateve.htm";
For SomeFrame:
parent.SomeFrame.location.href="whateva.htm";
Meta refresh can't target a frame
Problem: A meta refresh tag can't target a frame other than the current.
Workaround: Use a JavaScript timed location change.
Code Example: We have a frame named right. The delay is 3 seconds.
setTimeout("top.right.location = 'p.html'", 3000);
Note: Remember that top is a reserved word. So use names like upper and lower instead of top and bottom.
作者: pank (7/7的情人) 看板: BSD
標題: Re: 請問Procmail 可以設定所有信件自動備份一份給?…
時間: Sat Dec 6 15:56:06 2003
※ 引述《TerryLiaw.bbs@Terry.dragon2.net (早睡早起)》之銘言:
: ※ 引述《pank.bbs@77bbs.com (7/7的情人)》之銘言:
: > ※ 引述《"Lotus"
: > : 請教前輩 Procmail 可不可以設定為不管哪個USER收到信件 都直接會備份一份到
某個USER
: > : 請前輩提示 謝謝...
: > 設定 always_bcc 參數
: postfix 才有 always_bcc 可以用吧 ? :p
sorry, 把 procmail 看成 postfix :p
若是用 sendmail 搭配 procmail 備分到某信箱, 可以用
:0c
! user@elsewhere
這只能使用外部信箱, 不能使用本機帳號, 否則會有 loop 的情況發生
要備分到本機帳號, 需加一段 header 作 check, 以避免信件 loop
:0c
* ! ^X-Loop: check
| formail -A "X-Loop: check" | sendmail user
當信件第一次進到 procmail 的 rule, 沒有 "^X-Loop: check" 的話,
會上加去然後寄給 user, 第二次進到 procmail 的信(給 user 的),
由於有 "^X-Loop: check", 就不會再加 "X-Loop: check" 並寄給 user.
http://www.microsoft.com/windowsxp/pro/downloads/powertoys.asp
Taskbar and Start menu
Grouping 選第三個 Group any application with at least n windows
n 若設大一點, 相當於取消 Grouping 功能
第一台電腦
無線網路->慣用網路->新增, SSID 任意取一個名字, 如 test
網路驗證: 已開啟
資料加密: 停用
進階: 只給電腦到電腦的網路
第二台電腦
重複上面的動作, SSID 取一樣即可
Input core support --->
[*] Input core support
[*] Keyboard support
USB support --->
[*] Support for USB
[*] USB HIDBP Keyboard (basic) support
勾選 OHCI Num Lock 燈號才會正常, 否則一直亮
[*] OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support
$_SERVER["HTTP_ACCEPT_LANGUAGE"]
server 端
修改 /etc/X11/xdm/xdm-config
改成 #DisplayManager.requestPort: 0
啟動 xdm
client 端
X -query host
X -broadcast
client 端一開機就連
3:2345:respawn:/usr/bin/X11/X -broadcast
在 ccc 後面加上一行 xxx
# cat test
aaa
bbb
ccc
ddd
# perl -pi -e "s/ccc/ccc\nxxx/" test
# cat test
aaa
bbb
ccc
xxx
ddd
把 xxx 換成 yyy
# perl -pi -e "s/xxx/yyy/" test
# cat test
aaa
bbb
ccc
yyy
ddd
把檔案中含有 xxx 字串的下一行加上一行 new line
# cat test
aaa 111
bbb 222
ccc 333
555 xxx 444
ddd kkkkkkkkkkkkk
xxx 666
mmmmmmmmmmmmm
lllllllllllllllllxxx
eeeeeee
# sed -e '/xxx/a\
new line' test > test.tmp
# mv test.tmp test
# cat test
aaa 111
bbb 222
ccc 333
555 xxx 444
new line
ddd kkkkkkkkkkkkk
xxx 666
new line
mmmmmmmmmmmmm
lllllllllllllllllxxx
new line
eeeeeee
準備
apache_1.3.29.tar.gz from http://httpd.apache.org/
openssl-0.9.7c.tar.gz from http://www.openssl.org/
php-4.3.3.tar.gz from http://www.php.net/
mod_ssl-2.8.16-1.3.29.tar.gz from http://www.modssl.org/
解壓全部
cd openssl-0.9.7c
./config -fPIC
make
make install
cd ../mod_ssl-2.8.16-1.3.29
./configure --with-apache=../apache_1.3.29 --with-ssl=../openssl-0.9.7c --prefix=/usr/local/apache
cd ../apache_1.3.29
./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf --enable-module=so \
--enable-shared=ssl --enable-module=ssl --enable-module=rewrite --enable-shared=rewrite
make
make certificate
STEP 0: Decide the signature algorithm used for certificate
The generated X.509 CA certificate can contain either
RSA or DSA based ingredients. Select the one you want to use.
Signature Algorithm ((R)SA or (D)SA) [R]:D (選 DSA)
WARNING! You're generating a DSA based certificate/key pair.
This implies that RSA based ciphers won't be available later,
which for your web server currently still means that mostly all
popular web browsers cannot connect to it. At least not until
you also generate an additional RSA based certificate/key pair
and configure them in parallel.
______________________________________________________________________
STEP 1: Generating DSA private key (1024 bit) [server.key]
Generating DSA private key via SnakeOil CA DSA parameters
109338882 semi-random bytes loaded
Generating DSA key, 1024 bits
______________________________________________________________________
STEP 2: Generating X.509 certificate signing request [server.csr]
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
1. Country Name (2 letter code) [XY]:TW (輸入資訊)
2. State or Province Name (full name) [Snake Desert]:Taiwan
3. Locality Name (eg, city) [Snake Town]:Taipei
4. Organization Name (eg, company) [Snake Oil, Ltd]:TECO
5. Organizational Unit Name (eg, section) [Webserver Team]:IA
6. Common Name (eg, FQDN) [www.snakeoil.dom]:www.teco-ia.com.tw
7. Email Address (eg, name@FQDN) [www@snakeoil.dom]:root@teco-ia.com.tw
8. Certificate Validity (days) [365]:10000 (填一個夠長的時間)
Certificate Version 選 3
STEP 3: Generating X.509 certificate signed by Snake Oil CA [server.crt]
Certificate Version (1 or 3) [3]:3
Encrypt the private key now? [Y/n] (選 n 啟動時才不用輸入密碼)
make install
cd ../php-4.3.3
./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs --enable-module=so \
--with-config-file-path=/usr/local/etc --libexecdir=/usr/local/apache/libexec
make install
修改 httpd.conf
在 DirectoryIndex 該行後加上 index.php
新增
LoadModule php4_module libexec/libphp4.so
LoadModule ssl_module libexec/libssl.so
AddModule mod_php4.c
AddModule mod_ssl.c
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
加入 register_globals = on 到 php.ini
echo "register_globals = on" >> /usr/local/etc/php.ini
啟動 /usr/local/apache/bin/apachectl startssl
master.cf 裡面要有這一行
relay unix - - n - - smtp
in FreeBSD , 修改 /usr/local/sbin/thttpd_wrapper
加 -T big5
TIMEOUTNOXFER 修改 include/option.h
#ifndef PR_TUNABLE_TIMEOUTNOXFER
# define PR_TUNABLE_TIMEOUTNOXFER 300
#endif
啟動前需設 DISPLAY 變數
如 export DISPLAY=:0.0
否則 X 程式無法在前景顯示
linux freebsd 不同
linux
find . -size +100k
freebsd
find . -size +102400c
or
find . -size +200
(200x512=102400)
http://www.postfix.org/faq.html#procmail
Warning: if you use procmail in this manner, you must set up an alias for root that forwards mail for root to a real user. See the FAQ entry titled "Mail for root is delivered to nobody".
number: *99#
APN: internet
[C:\]ping -n 10 168.95.1.1
Pinging 168.95.1.1 with 32 bytes of data:
Reply from 168.95.1.1: bytes=32 time=1191ms TTL=248
Reply from 168.95.1.1: bytes=32 time=936ms TTL=248
Reply from 168.95.1.1: bytes=32 time=858ms TTL=248
Reply from 168.95.1.1: bytes=32 time=817ms TTL=248
Reply from 168.95.1.1: bytes=32 time=775ms TTL=248
Reply from 168.95.1.1: bytes=32 time=753ms TTL=248
Reply from 168.95.1.1: bytes=32 time=730ms TTL=248
Reply from 168.95.1.1: bytes=32 time=609ms TTL=248
Reply from 168.95.1.1: bytes=32 time=587ms TTL=248
Reply from 168.95.1.1: bytes=32 time=808ms TTL=248
Ping statistics for 168.95.1.1:
Packets: Sent = 10, Received = 10, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 587ms, Maximum = 1191ms, Average = 806ms
need db.h, in libdb3.3-devel-3.3.11-13mdk.i586.rpm
need pcre.h, in libpcre0-devel-3.9-5mdk.i586.rpm
Postfix + Cyrus-SASL
http://www.cngnu.org/technology/Postfix_I.tw.html
#!/bin/sh
rm /usr/libexec/postfix/bounce
rm /usr/libexec/postfix/cleanup
rm /usr/libexec/postfix/error
rm /usr/libexec/postfix/flush
rm /usr/libexec/postfix/lmtp
rm /usr/libexec/postfix/local
rm /usr/libexec/postfix/master
rm /usr/libexec/postfix/nqmgr
rm /usr/libexec/postfix/pickup
rm /usr/libexec/postfix/pipe
rm /usr/libexec/postfix/proxymap
rm /usr/libexec/postfix/qmgr
rm /usr/libexec/postfix/qmqpd
rm /usr/libexec/postfix/showq
rm /usr/libexec/postfix/smtp
rm /usr/libexec/postfix/smtpd
rm /usr/libexec/postfix/spawn
rm /usr/libexec/postfix/trivial-rewrite
rm /usr/libexec/postfix/virtual
rm /usr/sbin/postalias
rm /usr/sbin/postcat
rm /usr/sbin/postconf
rm /usr/sbin/postfix
rm /usr/sbin/postkick
rm /usr/sbin/postlock
rm /usr/sbin/postlog
rm /usr/sbin/postmap
rm /usr/sbin/postsuper
rm /usr/sbin/postdrop
rm /usr/sbin/postqueue
rm /usr/sbin/sendmail
rm /usr/bin/newaliases
rm /usr/bin/mailq
make clean
make makefiles CCARGS="-DUSE_SASL_AUTH" AUXLIBS="-lsasl"
make
make install
加密 openssl des -k password -in plainfile -out encryptfile
解密 openssl des -k password -d -in encryptfile -out plainfile
加密並壓縮
openssl des -k password -in plainfile | gzip - > file.gz
test script
#!/bin/sh
for b in 1024 2048 4096
do
for i in 1024 2048 4096
do
mke2fs -m0 -b $b -i $i -j /dev/hda1 > /dev/null 2>&1
mount /dev/hda1 /mnt
cp -a /devel/flash/conf /mnt
cp -a /boot /mnt
cp system.gz /mnt
echo b=$b i=$i
df -k | grep mnt
df -i | grep mnt
umount /mnt >/dev/null 2>&1
sync
done
done
b=1024 i=1024
/dev/hda1 109363 45137 64226 42% /mnt
/dev/hda1 125056 146 124910 1% /mnt
b=1024 i=2048
/dev/hda1 117171 45137 72034 39% /mnt
/dev/hda1 62592 146 62446 1% /mnt
b=1024 i=4096
/dev/hda1 121075 45137 75938 38% /mnt
/dev/hda1 31360 146 31214 1% /mnt
b=2048 i=1024
/dev/hda1 116820 45184 71636 39% /mnt
/dev/hda1 65536 146 65390 1% /mnt
b=2048 i=2048
/dev/hda1 117196 45184 72012 39% /mnt
/dev/hda1 62528 146 62382 1% /mnt
b=2048 i=4096
/dev/hda1 121100 45184 75916 38% /mnt
/dev/hda1 31296 146 31150 1% /mnt
b=4096 i=1024
/dev/hda1 120928 45336 75592 38% /mnt
/dev/hda1 32768 146 32622 1% /mnt
b=4096 i=2048
/dev/hda1 120928 45336 75592 38% /mnt
/dev/hda1 32768 146 32622 1% /mnt
b=4096 i=4096
/dev/hda1 121116 45336 75780 38% /mnt
/dev/hda1 31264 146 31118 1% /mnt
加了 -j, 預設多了 4MB 的日誌
b=1024 i=1024
/dev/hda1 109363 49251 60112 46% /mnt
/dev/hda1 125056 146 124910 1% /mnt
-J size=1 是最小, 日誌最小為 1024 blocks, 即 -J size=1
結論: 要空間佔最小, mkfs 後空間最大(但是 inode 較少), 日誌最小用
mke2fs -b 1024 -i 8192 -J size=1
NoAd fix download
Find 74 13 6A 04
Edit EB -- -- --
Find 74 0A 8B 4E 4C
Edit EB -- -- -- --
Find 74 0A FF 76 04 E8 80
Edit EB -- -- -- -- -- -- --
" 開始 -> 執行 , 鍵入 gpedit.msc ",出現群組原則物件編輯器
在視窗左欄進入" 電腦設定 -> 系統管理範本 -> 系統 "
將視窗右欄的" 顯示關機事件追蹤器 "改成" 已停用 "
範例環境
欲製作的 system root directory 在 /systemroot
size 大小為 32mb 的 initrd
CF 在 /dev/hdc, 已格式化, 只有一個 partition /dev/hdc1
boot loader 使用 grub
Step 1: 製作 initrd loop device
dd if=/dev/zero of=initrd bs=1024k count=32
mke2fs -F -m0 -i 2048 initrd
mount -o loop initrd /mnt
Step 2: 複製系統至 initrd, 不含 kernel
cp -a /systemroot/* /mnt
umount /mnt
Step 3: 壓縮 initrd, 產生 initrd.gz
gzip -9 initrd
Step 4: 將 kernel 及 initrd.gz 複製到目標(CF, DOM...etc.)
mount /dev/hdc1 /mnt
cp kernel initrd.gz /mnt
Step 5: 安裝 boot loader
cp -a /boot/grub /mnt
printf "root (hd0,0)\nsetup (hd1)\nquit\n" | grub --no-floppy --batch
Step 6: 設定開機設定(menu.lst)
編輯 /mnt/grub/menu.lst 內容如下
timeout 0
default 0
title linux
root (hd0,0)
kernel /kernel ramdisk_size=32768 root=/dev/ram0 quite
initrd /initrd.gz
976x732 best fit width for 1024x768 in gallery
一般 page
984x738 best fit width for 1024x768
超過這個 size 就有水平 scroll bar
強到沒力! 用 busybox 1.0 , 基本系統全部搞定
http 還有 cgi 功能
基本用法: httpd -h /documentroot -c /etc/httpd.conf
/*
* httpd implementation for busybox
*
* Copyright (C) 2002,2003 Glenn Engel
* Copyright (C) 2003 Vladimir Oleynik
*
* simplify patch stolen from libbb without using strdup
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*****************************************************************************
*
* Typical usage:
* for non root user
* httpd -p 8080 -h $HOME/public_html
* or for daemon start from rc script with uid=0:
* httpd -u www
* This is equivalent if www user have uid=80 to
* httpd -p 80 -u 80 -h /www -c /etc/httpd.conf -r "Web Server Authentication"
*
*
* When a url contains "cgi-bin" it is assumed to be a cgi script. The
* server changes directory to the location of the script and executes it
* after setting QUERY_STRING and other environment variables. If url args
* are included in the url or as a post, the args are placed into decoded
* environment variables. e.g. /cgi-bin/setup?foo=Hello%20World will set
* the $CGI_foo environment variable to "Hello World" while
* CONFIG_FEATURE_HTTPD_SET_CGI_VARS_TO_ENV enabled.
*
* The server can also be invoked as a url arg decoder and html text encoder
* as follows:
* foo=`httpd -d $foo` # decode "Hello%20World" as "Hello World"
* bar=`httpd -e "
* Note that url encoding for arguments is not the same as html encoding for
* presenation. -d decodes a url-encoded argument while -e encodes in html
* for page display.
*
* httpd.conf has the following format:
*
* A:172.20. # Allow any address that begins with 172.20
* A:10.10. # Allow any address that begins with 10.10.
* A:10.20 # Allow any address that previous set and 10.200-209.X.X
* A:127.0.0.1 # Allow local loopback connections
* D:* # Deny from other IP connections
* /cgi-bin:foo:bar # Require user foo, pwd bar on urls starting with /cgi-bin/
* /adm:admin:setup # Require user admin, pwd setup on urls starting with /adm/
* /adm:toor:PaSsWd # or user toor, pwd PaSsWd on urls starting with /adm/
* .au:audio/basic # additional mime type for audio.au files
*
* A/D may be as a/d or allow/deny - first char case unsensitive
* Deny IP rules take precedence over allow rules.
*
*
* The Deny/Allow IP logic:
*
* - Default is to allow all. No addresses are denied unless
* denied with a D: rule.
* - Order of Deny/Allow rules is significant
* - Deny rules take precedence over allow rules.
* - If a deny all rule (D:*) is used it acts as a catch-all for unmatched
* addresses.
* - Specification of Allow all (A:*) is a no-op
*
* Example:
* 1. Allow only specified addresses
* A:172.20. # Allow any address that begins with 172.20
* A:10.10. # Allow any address that begins with 10.10.
* A:10.10 # Allow any address that previous set and 10.100-109.X.X
* A:127.0.0.1 # Allow local loopback connections
* D:* # Deny from other IP connections
*
* 2. Only deny specified addresses
* D:1.2.3. # deny from 1.2.3.0 - 1.2.3.255
* D:2.3.4. # deny from 2.3.4.0 - 2.3.4.255
* A:* # (optional line added for clarity)
*
* If a sub directory contains a config file it is parsed and merged with
* any existing settings as if it was appended to the original configuration
* except that all previous IP config rules are discarded.
*
* subdir paths are relative to the containing subdir and thus cannot
* affect the parent rules.
*
* Note that since the sub dir is parsed in the forked thread servicing the
* subdir http request, any merge is discarded when the process exits. As a
* result, the subdir settings only have a lifetime of a single request.
*
*
* If -c is not set, an attempt will be made to open the default
* root configuration file. If -c is set and the file is not found, the
* server exits with an error.
*
*/
想像一下, 當您的重要資料硬碟全部毀損時, 您的反應是
1. 完了, 沒備份, 畢生心血付之一炬
2. 還好有做備份, 不過是一個月前的資料
3. 還好我每天做備份, 只有損失今天的進度
3 才是良好的備份習慣
unix 下可以用 tar, cp, rsync 配合 crontab 排程做備份工作
Windows 下我推薦一套慣用的備份軟體 SecondCopy
有多樣的備份方式(支援網芳、FTP)及自動排程
備份有幾個要點
1. 要異地備份 同一台電腦需備到不同的 HD 或 MO, 同一顆 HD 不同 partition
的備份是沒有意義的, 現在硬碟不怎麼可靠
2. 使用自動排程 手動備份的話, 就是上面說的 2 狀況, 人是懶惰且健忘的
3. 只備份必要備份的資料 什麼是必要備份的資料?
因人而異, 通常是個人產生的資料, 文件, 程式碼, 而這些資料量都不會很大
相對的, 從網路上就拿得到的東西如軟體, 電影, MP3, 就是不需備份的
4. 定期將個人資料整理, 燒成光碟
目前的儲存煤體可靠度
我認為是 MO > CDR、CDRW > DVD+/-、DVD+/-RW > Compact Flash > HD
BIOS 啟用 APM, kernel 有選 APM 支援, 應該就可以 poweroff,
如果不行, 試試在 boot 參數加上 apm=power-off
用 SMP 的話, 通常就要加上面那一行
若還不行, 試試 http://acpi.sourceforge.net/
patch 一下 kernel, 使用 ACPI , 應該就可以 poweroff 了
old patches download
patch -p1 < /path/to/bootsplash-3.0.7-2.4.20-vanilla.diff
kernel 勾選
Console drivers --->
Frame-buffer support --->
[*] Use splash screen instead of boot logo
準備 jpeg 跟 silencejpeg
先用 rewritejpeg 處理, make sure is compatible for boot logo
或是
jpegtopnm $file | ppmtojpeg > $newfile
設定檔範例 800x600 (取自 bootsplash theme)
# Pictures provided for Mandrake by me@davidsansome.com
#
# Themed with bootSplashMaker by Stefan Reinauer
# for SuSE Linux, UnitedLinux, SLES8.
#
# current version does not implement progress bar yet.# config file version (config 版本)
version=2# should the picture be displayed?
state=1# fgcolor is the text forground color. (字的前景顏色)
# bgcolor is the text background (i.e. transparent) color. (字的背景顏色)
fgcolor=0
bgcolor=15# (tx, ty) are the (x, y) coordinates of the text window in pixels.
# tw/th is the width/height of the text window in pixels.
# tx, ty 文字區塊的 x, y 座標 (pixels)
# tw, th 文字區塊的寬跟高 (pixels)
tx=20
ty=50
tw=760
th=530# (ax, ay) are the (x, y) coordinates for playing boot/shutdown animations
ax=112
ay=30# name of the picture file (full path recommended)
jpeg=/tmp/Flower/images/bootsplash-800x600.jpg
設定檔範例 640x480
version=3
state=1
fgcolor=7
bgcolor=0
tx=0
ty=0
tw=640
th=480
jpeg=black.jpg
silentjpeg=bbq.jpg
輸出到 initrd
splash -s -f bootsplash.cfg >> /boot/initrd
若 initrd 為 gz 格式也行
splash -s -f bootsplash.cfg >> /boot/initrd.gz
目前 bootsplash 只支援 16bit,
640x480 使用 vga=785
800x600 使用 vga=788
1024x768 使用 vga=791
kernel boot 參數
splash=silent switches the bootsplash to silent mode initially
splash=verbose switches the bootsplash to verbose mode initially. This is default, but if you override the default in the kernel patch, you can use this option to get verbose mode back.
splash=0 switches the bootsplash off
for i in 0 1 2 3 4 5 6 7; do mknod /dev/loop$i b 7 $i; done
edit /etc/chinese/xcin/xcinrc
(define zh_TW
'((DEFAULT_IM "cj")
(define zh_TW.Big5
'((DEFAULT_IM "cj")
例: lilo 寫到 hda(下lilo時, 目標的位置), 要從 hdc1 開機
disk=/dev/hda bios=0x80
boot=/dev/hda
root=/dev/hdc1
還是 grub 比較實用
linux 下有個好用指令: rename, 可以批次更名, BSD 下沒有
[root@linux conf]# ll
total 40
drwxr-xr-x 2 root root 4096 7月 31 11:37 ./
drwxrwxrwt 18 root root 4096 7月 31 11:50 ../
-rw-rw-rw- 1 root root 61 7月 28 18:50 diskmounting.ini
-rw-rw-rw- 1 root root 2350 7月 31 11:35 keymap.ini
-rw-rw-rw- 1 root root 45 7月 30 16:49 mouse.ini
-rw-r--r-- 1 root root 70 7月 23 18:48 storage.ini
-rw-r--r-- 1 root root 4 7月 17 15:24 version
-rw-r--r-- 1 root root 7913 7月 3 15:19 zoneinfo.ini
[root@linux conf]# rename ini conf *
[root@linux conf]# ll
total 40
drwxr-xr-x 2 root root 4096 7月 31 11:53 ./
drwxrwxrwt 18 root root 4096 7月 31 11:50 ../
-rw-rw-rw- 1 root root 61 7月 28 18:50 diskmounting.conf
-rw-rw-rw- 1 root root 2350 7月 31 11:35 keymap.conf
-rw-rw-rw- 1 root root 45 7月 30 16:49 mouse.conf
-rw-r--r-- 1 root root 70 7月 23 18:48 storage.conf
-rw-r--r-- 1 root root 4 7月 17 15:24 version
-rw-r--r-- 1 root root 7913 7月 3 15:19 zoneinfo.conf
更改顏色數, 修改 DefaultColorDepth
可用參數
DefaultColorDepth 8
DefaultColorDepth 15
DefaultColorDepth 16
DefaultColorDepth 24
更改解析度, 修改所有 Subsection "Display" 中的 Mode
可用參數
Modes "640x480"
Modes "800x600" "640x480"
Modes "1024x768" "800x600" "640x480"
Modes "1280x960" "1024x768" "800x600" "640x480"
Modes "1400x1050" "1280x960" "1024x768" "800x600" "640x480"
<meta http-equiv="refresh" content="0;url=http://77bbs.com">
加在 header block 裡
記下來, 下次就不會忘了怎麼寫
# ReadmeName is the name of the README file the server will look for by
# default, and append to directory listings.
#
# HeaderName is the name of a file which should be prepended to
# directory indexes.
#
# If MultiViews are amongst the Options in effect, the server will
# first look for name.html and include it if found. If name.html
# doesn't exist, the server will then look for name.txt and include
# it as plaintext if found.
#
ReadmeName README
HeaderName HEADER
加個絕對路徑上去, 就可每個路徑都有
用 cfgmaker 可自動找抓資料, 建 config
如用在 ADSL 的 ATU-R
cfgmaker public@192.168.1.1 --output=mrtg.cfg
準備
apache_1.3.28.tar.gz
from http://httpd.apache.org/dist/httpd/apache_1.3.28.tar.gz
mod_ssl-2.8.15-1.3.28.tar.gz
from http://www.modssl.org/source/mod_ssl-2.8.15-1.3.28.tar.gz
openssl-0.9.7b.tar.gz
from http://www.openssl.org/source/openssl-0.9.7b.tar.gz
php-4.3.3RC1.tar.gz
from http://www.php.net
解壓全部
cd openssl-0.9.7b
./config -fPIC
make
make install
cd ../mod_ssl-2.8.15-1.3.28
./configure --with-apache=../apache_1.3.28 --with-ssl=../openssl-0.9.7b --prefix=/usr/local/apache
cd ../apache_1.3.28
./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf --enable-module=so \
--enable-shared=ssl --enable-module=ssl --enable-module=rewrite --enable-shared=rewrite
make
make certificate
選 DSA
Country Name 選 TW
Certificate Validity 填一個夠長的時間, 如 1000 (天)
Certificate Version 選 3
其他選項就不是很重要
Encrypt the private key now? [Y/n] 選 n 啟動時才不用輸入密碼
make install
cd ../php-4.3.3RC1
./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs --enable-module=so \
--with-config-file-path=/usr/local/etc --libexecdir=/usr/local/apache/libexec
make install
cp .libs/libphp4.so /usr/local/apache/libexec
複製編好的 php so 檔到 apache libexec 目錄下
修改 httpd.conf
新增
LoadModule php4_module libexec/libphp4.so
LoadModule ssl_module libexec/libssl.so
AddModule mod_php4.c
AddModule mod_ssl.c
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
加入 register_globals = On 到 php.ini
echo "register_globals = On" >> /usr/local/lib/php.ini
啟動 /usr/local/apache/bin/apachectl startssl
測試檔, 173mb iso 檔
[root@pank tmp]# rsync -avz -e ssh 192.168.24.5:/tmp/mini.iso /tmp
receiving file list ... done
mini.iso
wrote 32 bytes read 181694087 bytes 2861324.71 bytes/sec
[root@pank tmp]# rsync -avz -e ssh 192.168.24.5:/tmp/mini.iso /tmp
receiving file list ... done
mini.iso
wrote 32 bytes read 181694087 bytes 2907105.90 bytes/sec
total size is 181633024 speedup is 1.00
[root@pank tmp]# rsync -avz -e ssh 192.168.24.5:/tmp/mini.iso /tmp
receiving file list ... done
mini.iso
wrote 32 bytes read 181694087 bytes 2861324.71 bytes/sec
total size is 181633024 speedup is 1.00
結果 rsync -e ssh 的效能比 scp 差(2.8mb/s vs 4mb/s)
OFFSET D236D
Find 74 13 6A 04
Edit EB -- -- --
OFFSET D23AA
Find 74 0A 8B 4E 4C
Edit EB -- -- -- --