2009-02-25
Windows 下的 su
最近因為用到 PostgreSQL ,而 PostgresSQL 有個限制,不能以【擁有系統管理者權限的使用者】來執行,因此在 Linux 下,就需要以 su 來改變身份去執行,那 windows 下要怎麼辦呢?小弟找到了兩個方法:
小弟先在系統中建立了一個 postgres 的帳號,然後利用上述兩個軟體來執行。
使用 psexec 的方法如下:
psexec -u postgres -p postgres D:\pgsql\bin\postgres -D D:\pgsql\data
使用 runas 的方法如下:
%windir%\System32\runas.exe /user:ComputerName\postgres "D:\pgsql\bin\pg_ctl start -D D:\pgsql\data"
使用 psexec 的好處是,可以直接將密碼放在參數上,這樣不用每次都去 keyin 密碼。而使用 runas 的話,每次都要輸入密碼,另外也可以加上 /savecred 參數來存儲存密碼(XP Home 是不能用的)。
2009-02-24
sockstat
之前曾經介紹過如何查看 port 被占住的方式,只是在 Linux 下要下的指令比較長,今天剛好到有人介紹:sockstat,原本是在 freebsd 下用來查看的工具,現在有人將他改寫成 Linux 版,因此 Linux 下也可以使用這好用的工具了。
$ sockstat USER PROCESS PID PROTO SOURCE ADDRESS FOREIGN ADDRESS STATE chihchun conduit.real 7902 tcp4 *:3400 *: * LISTEN chihchun dropboxd 7989 tcp4 10.11.12.231:49912 75.126.170.58:443 CLOSE_WAIT chihchun pidgin 8651 tcp4 10.11.12.231:46378 66.163.181.178:5050 ESTABLISHED chihchun ssh 22871 tcp4 127.0.0.1:6667 *: * LISTEN chihchun ssh 22871 tcp4 127.0.0.1:6667 127.0.0.1:54522 ESTABLISHED chihchun ssh 28346 tcp4 127.0.0.1:1100 *: * LISTEN chihchun ssh 28346 tcp4 127.0.0.1:2500 *: * LISTEN
2009-02-22
好用工具:Junction ( Windows 版的 symbolic link )
Linux 上有個 ln 指令可任意建立 link ( 包括 hard links 與 symbolic links ),這是個很好用的東西,在 Vista 上也有個 mklink 可以用來做相同的事,不過在 Windows XP 之前的環境卻沒有內建相對應的程式,而 Junction 就是一個可以替代的工具。
其使用說明如下:
Junction v1.05 - Windows junction creator and reparse point viewer Copyright (C) 2000-2007 Mark Russinovich Systems Internals - http://www.sysinternals.com The first usage is for displaying reparse point information, and the second usage is for creating or deleting a NTFS junction point: usage: junction [-s] [-q]新增: junction c:\Profiles\User1\MyDocs "d:\tmp\My Documents" 刪除: junction -d c:\Profiles\User1\MyDocs 如果不是透田 junction 去刪除 link,而是直接用檔案總管去刪除 link,會造成原來的資料被一併刪除,請特別注意。 另外, 有個 NTFS Link ext 可以讓我們使用 GUI 的方式進行 link。 參考: http://amanda_hoic.mysinablog.com/index.php?op=ViewArticle&articleId=1276558-q Don't print error messages (quiet) -s Recurse subdirectories usage: junction [-d] [ ] -d Delete the specified junction example: junction d:\link c:\winnt
2009-02-21
License Management for java
前陣子公司有打算將產品加上 License 的管控,當初的想法是取得 Mac Address 來加密比對,但沒有實際進行實作,今天剛好看到市面上已經有此相關的產品可以直接拿來套用了,因此先把它記下來:
truelicense 是 opensource 的,剛好可以拿來研究嚕。當然,這兩套程式都有提醒說,在使用的時候,記得使用 obfuscation 來為程式碼加密,否則有心人事還是可以很簡單的破解它。
2009-02-07
JNI
目前 java 與 dll 溝通的技術主要有以下幾種:
- jni(Java Native Interface): sun提供的java與系統中的原生方法交互的技術。
- JNative: 可調用 Linix/Windows 上的 dll
- JNA ( Java Native Access ):
- Nativecall:
- jawin(Java/Win32 integration project): 除了 com 之外,還可以 win32-dll 動態鏈接庫中的方法。
- jacob(Java-Com Bridge): Jacob提供了java程序調用 Microsoft 的 com Object 中的方法的能力。
目前看起來好像是 JNative 比較方便。
參考文章: JNI技術實踐小結2009-02-03
SSH Tunnel
之前在客戶那,沒辦法使用 msn ,後來發現可以利用 ssh tunnel 來 proxy 連線。在 windows 平台下,我們可以使用 putty 或是 plink 來建立 ssh tunnel,因為這兩個都不支持密碼的在檔,所以我通常是使用 MyEnTunnel ,它是利用 plink 來進行連線,可以存下連線資料,方便我們進行連線。
那我們如何利用 MyEnTunnel 建立一個 socket proxy 呢?其使用部驟如下:
- 首先我們下載 MyEnTunnel 及 plink ,然後解壓縮放在一起:
- 執行 myentunnel.exe,設定連線資訊,記得勾選【Enable Dynamic SOCKS】:
- 點選 Connect,切換到 Status 頁即可看到是否連線成功
- 選擇【工具】=>【選項】
- 點選【進階】=>【網路】=>【設定】 選擇【手動設定 Proxy】將最下面的【SOCKS 主機】設定到本機端的 7070 port(對應 MyEntunnel 上所設定的 port),然後我們就可以利用 firefox 連線到 http://myip.easylife.idv.tw/ 來驗證是否是透過 ssh server 連線了。
2009-02-02
背景執行 Unit Test
Background Unit Testing: New Evolutions in Unit Testing and IDE Integration
裡面介紹了兩個 eclipse 的 plugin 來讓我們即時的執行 Unit Test ,這樣的好處就是我們一改動程式,就可以立即知道是否有造成 unit test 錯誤,感覺相當不錯,可以看看嚕。裡面介紹的兩個工具如下:
第二個還有 idea 的 plugin ,而且是 open source 的,改天有空而且電腦有升級後再來玩玩看。XD
訂閱:
文章 (Atom)