分類
系統技術

aws終於有自己的route53管理介面了

aws (amazon web service) 終於有自己的 route53 管理介面了(console).

以往要管理 route53, 要嘛就是用 api (http://docs.amazonwebservices.com/Route53/latest/APIReference/), 不然要 ui 的管理介面就得用 3rd party 的 DNS30: http://www.dns30.com/, 對於不熟悉的人來說, 還真的不太方便.

現在 aws 推出了 route53 的管理介面了, 真的可以方便在使用 route53 服務操作上, 利用友善的管理介面, 無論是在新增修改管理上, 都更加的方便了呢!

有在使用的朋友們, 可以快去試看看: https://console.aws.amazon.com/route53/home

好用工具svchost viewer

偶然在 windows server 上會發現記憶體愈來愈少. 但是又是無法重新開機的狀況, 利用 task manager 會發現有個吃記憶體的怪獸, svchost.exe

這個 svchost.exe 望文生義, 就是個 host 服務的程式, 所以本身並無特別的執行項目, 而必須看他 host 什麼樣的服務, 這裡有個工具, svchost viewer: http://www.codeplex.com/svchostviewer , 就是專門用來看 svchost 的每個服務使用了多少記憶體及服務名稱, 方便在 svchost.exe 吃大量記憶體時, 查找原因所在.

這個 svchost viewer 是專查 svchost.exe 這個 process 的工具, 其實還有另一個功能更強大的工具, process explorer: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx , 這個工具原本是在 sysinternal 這家公司, 早些年因為它的 utility 很豐富, 而且功能又都很強大(看它的名字叫 sysinternal 就能明白), 所以被微軟收購下來. 這個 process explorer 功能更多, 但若是拿來看 svchost 的 process 也能查找對應 svchost viewer 的功能, 但多更多其他的功能就是了.

這篇文章介紹了 svchost viewer 的介面及用法, 可以參考看看: 對一堆正在執行的 svchost.exe 好奇嗎?Svchost Viewer 可以給你答案 http://blog.joaoko.net/archives/1070

利用這樣的工具, 之前 svchost.exe 吃掉了 1g多的記憶體, 原來是 remote register 這個 service 用掉 1.06g 的記憶體, 真是太嚇人了, 停掉該服務後, 果然記憶體就還回來囉, 再次啟動這個服務, 又讓系統有充裕的記憶體可用了.

分類
系統技術

免費SSL申請憑證-StartSSL

在寫作 web application 後, 最後一步就是部署發行了.

不過這端往往會有問題(其實也不是問題)的地方在於自己的網站, 若是要使用 SSL 加密通道, 走 https 通訊協議時, 會需要申請一個 SSL 的憑證.

今天剛好在這裡看到一篇文章: http://blog.s135.com/startssl/ 裡有提到有關免費申請的 SSL 憑證. 這家公司是 startcom, 其網站在: http://www.startssl.com , 提供了線上免費申請 SSL 的憑證, 十分方便而且實用.

其實 SSL 憑證是可以自己簽發的, 在自家網路內部還不成問題, 可以將 CA 加入在公司內的電腦主機上, 但是在公眾網路上, 若是瀏覽器沒有內建的 CA 時, 就會發生不信任警告, 而現在的瀏覽器更是主動直接拒絕連結, 需要使用者自行手動加入信任才行. 對於一般的應用上, 自行簽發的憑證真的不是很方便(雖然一樣可以用, 只是信任度就下降了, 不然何必要第三方公證單位的CA呢). 而一般的申請單位像是 Verisign 也都可以申請, 只是費用就不是市井小民負擔的起的.

好. 廢話不多說, 我們就來申請試看看吧, 首先上 http://www.startssl.com 進行申請, 首先到右上有個門有鑰匙的符號進行申請, 之後出現三個功能, Authenticaion, Sign-up, express line, 時選擇 Sign-up, 填入基本資料後, 就可以利用 email 完成驗證身份的動作了.

接下來就可以在 control panel 上的 Validations Wizard 進行 web ssl 憑證申請囉, 畫面如下:

分類
FreeBSD/Linux

apache deny ip設定

想要將 apache 的站台, 拒絕讓某個(某群ip)存取的方式, 有幾個方法, 其中最單純最俱體的方式就是直接利用 <Directory></Directory> 這個 tag 中的限制存取來操作最為單純方便 (當然, 虛擬主機可不行, 可以直接利用 .htaccess 設定該層目錄的存取權限)

一般來設, 設定如下:

<Directory "/usr/home/website1">
  order deny,allow
</Directory>

這樣即可. 就是判斷 deny , 預設為 allow 的條件, 也就是所謂公開站台的設定, 若有要限制某些 ip 存取, 可以這樣下:

<Directory "/usr/home/website1">
  order deny,allow
  deny from 1.2.3.4
  deny from 11.22.33.
</Directory>

其中的 deny from 1.2.3.4 是限制某個單一 ip, 而 deny from 11.22.33. 是指 11.22.33.* 都是拒絕存取的, 如此一來, 便能有效管理不想讓某些 ip (例如爬蟲類或是一些吃資源的 ip, 又或是攻擊的 ip)訪問做好限制.

不過發生了一個有趣的狀況, 也就是之前設了, 發現沒有用, 在多次交叉比對檢查後, 發現是這個原因, 就是在 <VirtualHost> 內的 DocumentRoot 指定為 /home/website1 而在 <Directory> 內的目錄指向是 /usr/home/website1 , 這樣一來, apache 在存取該 website1 的檔案時, 是走 /home/website1 下的檔案, 雖然和 /usr/home/website1 一樣, 不過對 apache 來說卻是不同, 這個要特別注意才行, 否則可能會有設定好的 <Directory> 的限制 ip, 但實際上沒有作用, 原因就有可能發生在這裡了.

又或反過來說, 設定的路徑一定要一致, 而且儘量用完整路徑, 不要用簡化的 link 路徑指向檔案, 也比較容易除錯一些. 所以原則上是這樣的:

<VirtualHost *:80>
  ServerName test.diary.tw
  Document /usr/home/www/test
.....
</VirtualHost>

<Directory "/usr/home/www/test">
  order deny,allow
  deny from 1.2.3.4
</Directory>

這樣就 ok 啦, 千萬要注意紅字部分要一致的這件事, 否則可能設了沒有作用, 原因就在這裡了..

另外補充一下, 若是這種方式限制存取的話, client 會拿到 403 的存取失敗代碼.

快速kill process的方式(Windows)

手邊剛好在處理一個大量 process 未結束於系統上的一個問題. 該 server 不知什麼原因, 在起動 cgi 程式時, 發生了這個現象, 偶發的不會自行結束, 於是在系統內就留下了許多該 process 的名稱. 利用 task manager 會看到大量的 process, 雖未佔用 cpu, 不過會吃掉一部分的記憶.

在不方便重開 server 的狀況下, 如何快速地將相同名稱的 process 一起刪除呢? 於是上網想查看看有沒有什麼方便的小工具可以做這件事. 結果很順利地找到系統內建的一個指令: taskkill

這個指令是給定要刪除的 pid 或 image name (就是執行檔名稱), 來進行 process kill 的動作. 簡單研究一下, 進行了測試, 效果相當不錯, 800多個 process 一下就刪完了, 使用的指令如下:

taskkill /IM mytest.exe /F

如此一來, 所有 mytest.exe 的 process 一口氣就被 kill 完成了.

另外有許多方便的參數可供使用, 詳情可以利用 taskkill /? 來取得說明, 列表如下:

TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]

Description:
This tool is used to terminate tasks by process id (PID) or image name.

Parameter List:
/S system Specifies the remote system to connect to.

/U [domain\]user Specifies the user context under which the
command should execute.

/P [password] Specifies the password for the given user
context. Prompts for input if omitted.

/FI filter Applies a filter to select a set of tasks.
Allows “*” to be used. ex. imagename eq acme*

/PID processid Specifies the PID of the process to be terminated.
Use TaskList to get the PID.

/IM imagename Specifies the image name of the process
to be terminated. Wildcard ‘*’ can be used
to specify all tasks or image names.

/T Terminates the specified process and any
child processes which were started by it.

/F Specifies to forcefully terminate the process(es).

/? Displays this help message.

Filters:
Filter Name Valid Operators Valid Value(s)
———– ————— ————————-
STATUS eq, ne RUNNING |
NOT RESPONDING | UNKNOWN
IMAGENAME eq, ne Image name
PID eq, ne, gt, lt, ge, le PID value
SESSION eq, ne, gt, lt, ge, le Session number.
CPUTIME eq, ne, gt, lt, ge, le CPU time in the format
of hh:mm:ss.
hh – hours,
mm – minutes, ss – seconds
MEMUSAGE eq, ne, gt, lt, ge, le Memory usage in KB
USERNAME eq, ne User name in [domain\]user
format
MODULES eq, ne DLL name
SERVICES eq, ne Service name
WINDOWTITLE eq, ne Window title

NOTE
—-
1) Wildcard ‘*’ for /IM switch is accepted only when a filter is applied.
2) Termination of remote processes will always be done forcefully (/F).
3) “WINDOWTITLE” and “STATUS” filters are not considered when a remote
machine is specified.

Examples:
TASKKILL /IM notepad.exe
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM cmd.exe /T
TASKKILL /F /FI “PID ge 1000” /FI “WINDOWTITLE ne untitle*”
TASKKILL /F /FI “USERNAME eq NT AUTHORITY\SYSTEM” /IM notepad.exe
TASKKILL /S system /U domain\username /FI “USERNAME ne NT*” /IM *
TASKKILL /S system /U username /P password /FI “IMAGENAME eq note*”

給大家參考!

參考資料: XP: kill a Windows process from the command line with taskkill

分類
FreeBSD/Linux

ssh登入緩慢問題

最近的一次更新, 讓 FreeBSD 主機在登入時, 速度變得很慢, 這對操作上有蠻大的影響, 於是問了同事, 也著手進行查詢相關的可能, 原來是 OpenSSH 的名稱反查問題, 簡單處理方式如下:

修改 /etc/ssh/sshd_config 檔內的一個 UseDNS 參數, 設為 no 即可.

官方說明連結: http://www.openssh.org/faq.html#3.3

3.3 – ssh(1) takes a long time to connect or log in

 

Large delays (more that 10 seconds) are typically caused a problem with name resolution:

  • Some versions of glibc (notably glibc 2.1 shipped with Red Hat 6.1) can take a long time to resolve “IPv6 or IPv4” addresses from domain names. This can be worked around with by specifying AddressFamily inet option in ssh_config.
  • There may be a DNS lookup problem, either at the client or server. You can use the nslookup command to check this on both client and server by looking up the other end’s name and IP address. In addition, on the server look up the name returned by the client’s IP-name lookup. You can disable most of the server-side lookups by setting UseDNS no in sshd_config.

下面還有如何判定是 “slow”

CPU Time (SSHv1)[1] Time (SSHv2)
170MHz SPARC/sun4m 0.74 sec 1.25 sec
236MHz HPPA/8200[2] 0.44 sec 0.79 sec
375MHz PowerPC/604e 0.38 sec 0.51 sec
933MHz VIA Ezra 0.34 sec 0.44 sec
2.1GHz Athlon XP 2600+ 0.14 sec 0.22 sec

參考看看吧!

分類
系統技術

Windows DNS大量UDP Port問題

最近更新完一次 windows update, 發現有台 server 在重新開機後, 居然有一堆 udp port 開啟著, 利用 TCPView 來找出看是哪個 process 造成, 原來是 dns.exe (windows 內建的 dns service 程式), 起先以為是有什麼病毒或是問題, 便著手開始找資料, 遍尋不到問題及狀況所在. 一度以為是病毒引起, 也試著利用掃毒軟體來掃毒, 但都沒有找到病毒問題, 於是便暫時放棄.

今天索性再花些時間來找, 找到這篇相關文章, 發現也有不少人有一樣的問題:
http://www.eggheadcafe.com/software/aspnet/32625203/dnsexe-2500-open-ports-i.aspx

原來是一個更新到 dns.exe 的 patch 造成的, 可以參考這裡:
http://support.microsoft.com/kb/951746/en-us

看起來應該是沒什麼問題, 但後續要怎麼再更新或調整, 再觀察看微軟的後續更新囉!

[2008/08/25 23:01]
目前比較消極的解決方式可以參考:
http://support.microsoft.com/kb/956188/en-us

分類
FreeBSD/Linux

找指定檔案內容的語法

在 Linux, FreeBSD 下若要指定目錄以下的檔案內容查詢的指令, 可以利用 find 配合 -exec 參數, 再配合 grep 指令即可達到目的.

使用方式如下:

find . -name “*.log” -exec grep Virtual {} \;

這個方式就以 . 目錄以下, 找出所有 .log 的檔案, 內容有含 “Virtual” 的行內容, 但要注意最後方的 semicolon (分號) 要以反斜線開頭, 才會被 -exec 認識.

forfiles指令介紹

在 WINDOWS 下, 若是要將某些檔案做什麼處理的方式, 我通常使用 VBS 的 SCRIPT 來操作, 不過其實還有更方便簡捷的方法, 看到這篇文章 windows server下的檔案處理程式Forfiles , 原來其實在 windows 下還有個這麼方便的檔案列舉工具.

一般最常用的是刪除 log 檔案, 指定目錄, 並指令時間 (例如保留一週, 一週前的刪除), 就可以利用這個指令進行刪除:

forfiles /p c:\temp /s /m *.log /d -7 /c “cmd /c del @FILE”

或是列舉出指定目錄下的檔案(非目錄)的名稱列出:

forfiles /p c:\ /c “cmd /c if @isdir==FALSE echo @FILE”

請注意上面的 “FALSE” 要大寫!

再來看看微軟的官方說明: Forfiles

以下列出該指令的參數說明: (利用 forfiles /? 取得)

FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy/MM/dd | dd}]

描述:
選取一個檔案 (或一組檔案),並在檔案上
執行命令。這對批次工作很有幫助。

參數清單:
/P pathname 表示要開始搜尋的路徑。
預設資料夾是目前的
目錄 (.)。

/M searchmask 根據 searchmask 搜尋檔案。
預設的 searchmask 是 ‘*’。

/S 指示 forfiles 遞迴搜尋
子目錄。例如 “DIR /S”。

分類
系統技術

FPT-全網頁效能偵測服務(web版本)

從[愛迪 怕死我]網站看來的.

這個 full page test 線上服務有幾點很方便的功能.

  1. 方便好用-整個是在瀏覽器下操作
  2. 圖表整理清楚-整個圖形化的呈現結果, 清楚地呈現整個效能問題及診斷
  3. 容易分析-根據提供的結果, 很容易地找出問題或需要調整的地方

這個工具很重要的地方就在於不用安裝, 而且針對網頁無論是設計面或是效能面都有一個客觀的診斷結果, 對於在設計及開發網站應用程式來說是很方便而重要的參考依據. 我們來看看操作的方式, 首先連結到 http://tools.pingdom.com/fpt/ , 簡潔的操作介面上只需要填入要測試的 url 即可, 按下 test 之後, 就可以取得很棒的一個圖表測試報告: