相對路徑是指執行程式的位置,不是vbs指向的程式位置,要注意。而在工作排程器中則必須設定開始位置來定義相對路徑。
NOTES:
“Any Directory” Syncing. Okay, we totally make up this name but it is exactly how it sounds. While Dropbox limits us to sync only files in a central folder (aptly named Dropbox), Copy.com lets you sync any directories on your computer. You can do this by creating a shortcut to that folder and place it within Copy directory. Not very intuitive like SugarSync though, which lets us do exact same thing within right-click menu.
Found a solution if any one is interested the only way it would take the parameters is by adding the path of the wscript to the scheduler to the run line in the scheduler.
Although wscript is the default for vbs files the scheduler would still ignore the parameters.
So to get it working the run text in the scheduler should be:
C:\WINDOWS\system32\wscript.exe C:\TASKS\test.vbs one two
I am not sure why this works when other methods dont but I have read that parameters are only passed to .exe files so this may be why they are ignored for .vbs files.
Thanks for the help from KrisSimonis & dglienna.
會要這個功能,是因為我朋友反應說。硬碟空間不夠,就是要再買大容量的硬碟來換。但總不能等到磁碟空間都滿了才發現吧?所以,只好上網找一下 Solution 囉!
因為之前已經做過利用 MailSend 這支小程式來發信,現在只要能夠找到觸發執行批次檔的方式就行了。
上網看了有用 Power Shell、VBScript 來做的,不過,我想我還是兜一下好了。所以,就利用「效能監視器」的「警示」功能囉!
第一個動作,當然是先寫一下 batch 檔囉!因為我有切三個磁區,所以就分別監控囉!先利用 psinfo.exe -d 來檢視各磁碟的狀況。
因為對 Linux 比較熟,所以就習慣用剩餘空間百分比來做觸發條件囉!但因為三個磁區的容量差異還蠻大的,經換算後,就以空間剩 85%、90%、97% 來做為觸發條件。
列一下我所寫的 batch 檔:
echo Volume Type Format Label Size Free Free > C:\sch\alarmhdd_c.txt C:\pstools\psinfo.exe -d |find "C: Fixed" >> C:\sch\alarmhdd_c.txt rem 郵件標題:伺服器C磁碟使用率達 85% C:\sch\mailsend -d msa.hinet.net -smtp mail.domain.com.tw -t admin@domain.com.tw -f hddcheck@hinet.net -sub "=?UTF-8?B?5Ly65pyN5Zmo77yj56OB56Kf5L2/55So546H6YGUIDg177yF?=" -m C:\sch\alarmhdd_c.txt |
因為 E-Mail 主旨有中文,怕有編碼上的問題,就利用網路上有線上轉換 Base64 的網頁,進行 Base64 編碼的動作。
收到信的內容就大概如下:
(這是測試用的,所以在未達 85% 也會寄發)
接下來就是到「效能監視器」的「警示」來進行「新增警示設定」的動作。
輸入一個警示名稱,本例為「DriveCAlarm」。
在「註解」欄位寫入說明,再按下「新增」鈕。
依照下列的圖示進行「計數器」項目的挑選,完成後按下「新增」鈕,再按「關閉」鈕。
計數器欄位已經設定好了,接下來就是設定觸發條件。我對C磁區的設定為可用空間小於 5.86GB 就發出告警,1天檢查1次。
切換到「執行」頁籤,除了預設勾選的第一項外,再勾選「執行以下程式」。按下「瀏覽」鈕,挑選要執行的 Batch 檔,本例為:C:\sch\DriveCAlarm.bat。
按下「套用」鈕後,會出現「設定密碼」的視窗,使用者欄位格式要為「Domain\User」。
確認一下「執行身分」是為之前所設定的「Domain\User」。
這樣子「警示」功能就多了一項設定。如果未啟動,就將它啟動。有問題的話,就到事件檢視器看看訊息。
為了要測試設定是否可運作?所以進行了下列的修改來確認。
在事件檢視器中,就可以看到類似下面的事件訊息。當然也會收到 E-Mail。
大功告成,記得要將觸發條件改回來,要不然信就收不完啦!D、E 磁區的設定也依樣畫葫蘆即可。
[Tip]使用效能監視器監控伺服器狀態,並寄送異常通知
當我們在管理伺服器時,常常會希望能監控伺服器狀態, 如果伺服器發生CPU持續過高,或是硬碟空間不足時能夠發出異常通知, 我們可以透過Windows內建的效能監視器來簡單實現這樣的功能。
設定效能監視器異常界線
在這邊以監控硬碟有效空間來做為範例。
- 首先打開我們的效能監視器,新增資料收集器集合工具
- 輸入名稱"伺服器效能監控",選擇使用手動建立
- 選擇"效能監視器警訊
- 我們可以看到已經出現了這個資料收集器集合
- 接下來開始新增我們的監控項目,新增一個資料收集器
- 輸入硬碟空間監控,並選擇效能計數器警訊
- 點選新增,選擇監控項目
- 選擇Logical Disk的% Free space,新增要監控的磁區
- 設定在20%以下時觸發警訊
- 勾選設定警訊內容
設定效能監視器警訊執行動作
設定發送警訊通知排程
- 進入工作排程器,新增排程工作
- 設定執行帳號,選擇不論是否登入都執行
- 點選動作頁籤,選擇新增
當伺服器發生異常時, - 輸入寄送email的資訊,$(Arg0)會自動帶入從效能監視器剛剛設定的警訊文字
- 設定完成,當伺服器異常時就會收到通知的Email了
※註: 使用內建的傳送電子郵件,僅支援不需驗證的SMTP Server, 此處可自由置換其他的警訊通知方法 (ex.Powershell) 只要記住可使用$(Arg0)來讀取帶入的警訊內容即可
總結
透過效能監視器,我們可以根據自己的需要實現簡單的伺服器監控機制, 當然隨著伺服器數量越來越多,可以按照需求使用更好的解決方案, 這邊提供大家一個簡單且輕量級的伺服器監控方法, 關於今天的內容,若有任何問題歡迎大家提出來一起討論!
參考資料
http://olivetjournal.com/my-honest-copy-com-review#proreviewhttp://forums.codeguru.com/showthread.php?439916-How-to-run-a-very-long-SQL-statementhttp://social.technet.microsoft.com/Forums/scriptcenter/en-US/37c5fced-38e4-4508-82a3-7e59cafce46f/how-to-use-vbscript-to-check-telnet-result?forum=ITCG
http://blog.xuite.net/jyoutw/xtech/62155589
http://www.dotblogs.com.tw/kirkchen/archive/2012/11/24/use-performance-monitor-to-monitor-server-and-send-alert-email.aspx