請問各位
每日一早進公司 想必要對所有資訊設備測試吧 (至少是 Ping 以確認基本網路正常)
我的想法是 可否寫一個批次檔 內以迴圈方式去讀一個文字檔內容 其內容是把所有要測試的設備 IP 寫進去 (比如 192.168.1.100) 批次檔會依序去讀文字檔內容 並依 Ping 值預設四個次數後 繼續讀下一個 IP 值 依序到結束為止 日後祇需維護文字檔內容即可
不知可否請教各位 該批次檔如何撰寫 離 DOS 年代太遙遠 已忘光了
感恩囉
複製以下程式碼,貼上另存成批次檔即可...
<pre class="c" name="code">
@Echo off
Rem 參數設定
Set PING_OPTIONS=-n 1
Rem 記錄檔名
Set PING_LOGFILE="PingLog.txt"
:Start
If not exist IPAddress.txt Goto NewFile
For /f "eol=#" %%i in (IPAddress.txt) do Ping %%i %PING_OPTIONS% >> %PING_LOGFILE%
Goto End
:NewFile
Echo 請依序將所要測試的主機位置填輸此檔案中... > IPAddress.txt
Echo ##例:>> IPAddress.txt
Echo 192.168.1.1 >> IPAddress.txt
Echo 192.168.1.2 >> IPAddress.txt
Notepad IPAddress.txt
Goto Start
:End
移除恆久遠,紀錄永流傳.
用IP掃描工具會不會比較方便...
Angry IP Scanner 3.3.1 免安裝版 - IP掃描工具
是不是把ACT的與NA的結果記錄起來比較好:
Windows小技巧:Ping網段
for /l %p in (1,1,254) do @ping -n 1 -w 40 192.168.1.%p & if errorlevel 1 (echo 192.168.1.%p>>na.txt)
else (echo 192.168.1.%p>>act.txt):依據回覆結果儲存在不同檔案內,根據實況更改參數『-n 1 -w 40』
寫一個ASP網頁吧
<pre class="c" name="code"><%
url = "www.google.com"
site = "GOOGLE網站"
Set objWShell = CreateObject("WScript.Shell")
Set objCmd = objWShell.Exec("ping " & url & " -n 1")
strPResult = objCmd.StdOut.Readall()
strStatus = "<font color = red>離線</font>"
if InStr(strPResult,"TTL=")>0 then strStatus = "<font color = green>線上</font>"
response.write site & "<br>" & url & " 狀態為: " & strStatus
%>
<br>
<br>
<%
url = "168.95.1.1"
site = "中華電信DNS"
Set objWShell = CreateObject("WScript.Shell")
Set objCmd = objWShell.Exec("ping " & url & " -n 1")
strPResult = objCmd.StdOut.Readall()
strStatus = "<font color = red>離線</font>"
if InStr(strPResult,"TTL=")>0 then strStatus = "<font color = green>線上</font>"
response.write site & "<br>" & url & " 狀態為: " & strStatus
%>
<br>
Q: ping 4 次代表主機服務正常嗎?
http://www.mikrotik.com/thedude
把要監控的主機做服務即時監控及紀錄是不是比batch檔檢查來得精準的作法?
除了ping 還有不同服務埠的檢查
自己寫batch未免也太辛苦
至於說效能上監控就是以cacti/ nginx類的網管來做管理
感謝各位的意見 前陣子臨時出差到柬埔寨 不及回覆大家 真對不起
大家說的我試過了 可是因要掃瞄整個網段 時間很久 我的需求祇是把十幾部主機跟網管設備的 IP 放到一個文字檔 然後用一個批次檔去逐一讀取進來 PING 過並記錄成檔後 再讀下一個 IP 值到結束為止 不知可否再請教大家意見
網路上很多免費的工具
http://www.i-write.idv.tw/?p=1677
還沒結案嗎?
大家的回答都可以做到喔,只是手法不同
我也提供一個供參考
<pre class="c" name="code">
@Echo off
for /f %%i in (%~n0.txt) do Ping -n 4 %%i|findstr "無法連線。$" &&Echo %Date% %Time%-Fail:%%i>>PingErr.Log||echo %Date% %Time%-Pass:%%i>>PingOk.Log
將上面指令複製到.bat檔,IP清單的部份請用與你建立.BAT檔同路徑同檔名的.TXT檔,將IP輸入到該檔案中.
這個批次產生二個記錄檔 Ping 四次都成功的存放在 PingOk.Log 另一個 PingErr.Log記錄失敗的部份.
如請有什麼不了解的地方請再發問(因為討論才能相互成長,所以不愛接需求單)