需求:
生産環境中需要實作IIS 站點監控自動化,需要擷取到站點名和站點程序的PID。有了站點名可以用windows内置的key擷取相關監控項的值。例如站點的get、post請求數,站點的版本資訊等。但是還需要監控IIS站點的SQL連接配接數,這需要IIS站點被通路,并且有SQL程序。然後通過程序号來判斷是各個站點的SQL連接配接數。
腳本内容:
get.sitename
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<code>$sitearray</code><code>=@()</code>
<code>[System.Collections.ArrayList]</code><code>$arraylist</code><code>=</code><code>$sitearray</code>
<code>$command</code><code>=c:\windows\system32\inetsrv\appcmd.exe list vdir</code>
<code>foreach</code> <code>(</code><code>$i</code> <code>in</code> <code>$command</code><code>)</code>
<code>{</code>
<code> </code><code>$site</code><code>=</code><code>$i</code><code>.split("</code><code>")[1].split("</code><code>/</code><code>")[0].split('\"</code><code>')[1].trim(</code><code>''</code><code>)</code>
<code> </code><code>$arraylist</code><code>.insert(0,</code><code>$site</code><code>)</code>
<code>}</code>
<code>#echo $arraylist</code>
<code>$a</code><code>=</code><code>$arraylist</code><code>.count-1</code>
<code>#echo $a</code>
<code>echo </code><code>"{`n"</code>
<code>echo `t</code><code>'"data"'</code><code>:[</code>
<code>foreach</code> <code>(</code><code>$i</code> <code>in</code> <code>0..</code><code>$a</code><code>)</code>
<code> </code><code>echo `n`t`t</code><code>"{"</code>
<code> </code><code>$web</code><code>=</code><code>$arraylist</code><code>[</code><code>$i</code><code>]</code>
<code> </code><code>$dir</code><code>=</code><code>'"{#SITENAME}"'</code><code>+</code><code>':'</code><code>+</code><code>'"'</code><code>+</code><code>$web</code><code>+</code><code>'"'</code>
<code> </code><code>echo `t`t`t</code><code>$dir</code>
<code> </code><code>echo `t`t</code><code>"}"</code>
<code> </code><code>if</code> <code>(</code><code>$i</code> <code>-lt</code> <code>$a</code><code>)</code>
<code> </code><code>{</code>
<code> </code><code>echo `t`t</code><code>','</code>
<code> </code><code>}</code>
<code>echo `t]</code>
<code>echo </code><code>"}"</code>
get.site.pid
28
29
30
31
32
<code>$pidarray</code><code>=@()</code>
<code>[System.Collections.ArrayList]</code><code>$pidlist</code><code>=</code><code>$pidarray</code>
<code>$command</code><code>=c:\windows\system32\inetsrv\appcmd.exe list wp</code>
<code> </code><code>$site</code><code>=</code><code>$i</code><code>.split(</code><code>':'</code><code>)[1].replace(</code><code>')'</code><code>,</code><code>''</code><code>)</code>
<code> </code><code>$pidlist</code><code>.insert(0,</code><code>$i</code><code>.split()[1])</code>
<code> </code><code>$arraylist</code><code>.insert(0,</code><code>$site</code><code>) </code>
<code>#echo $pidlist</code>
<code>echo </code><code>"{`n"</code>
<code> </code><code>$id</code><code>=</code><code>$pidlist</code><code>[</code><code>$i</code><code>]</code>
<code> </code><code>$dir1</code><code>=</code><code>'"{#WP_NAME}"'</code><code>+</code><code>':'</code><code>+</code><code>'"'</code><code>+</code><code>$web</code><code>+</code><code>'"'</code>
<code> </code><code>$dir2</code><code>=</code><code>'"{#WP_PID}"'</code><code>+</code><code>':'</code><code>+</code><code>$id</code>
<code> </code><code>echo `t`t`t</code><code>$dir1</code><code>','</code><code>$dir2</code>
<code> </code><code>} </code>
<code></code>
本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1857764,如需轉載請自行聯系原作者