iT邦幫忙

0

BATCH Files

bat
IT 癡 2014-09-29 10:01:4410826 瀏覽
  • 分享至 

  • xImage

請問各位
每日一早進公司 想必要對所有資訊設備測試吧 (至少是 Ping 以確認基本網路正常)
我的想法是 可否寫一個批次檔 內以迴圈方式去讀一個文字檔內容 其內容是把所有要測試的設備 IP 寫進去 (比如 192.168.1.100) 批次檔會依序去讀文字檔內容 並依 Ping 值預設四個次數後 繼續讀下一個 IP 值 依序到結束為止 日後祇需維護文字檔內容即可
不知可否請教各位 該批次檔如何撰寫 離 DOS 年代太遙遠 已忘光了
感恩囉

態度!!

...我不喜歡很多人在強調『態度』,因為『實際作法』才是關鍵,而不是態度

我對很多人態度很惡劣,實際上我只是希望大家用心去做+言詞不佳

刪除問題造成的影響,現在大家都知道了,以後避免就好,不需要因此影響您的求知、分享
我們大家都要繼續加油!!

至於您的問題,好像太麻煩了,不如我之前的方法您想想:
完全免費搞定伺服器監控+發送簡訊+故障排除+通知
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
8
sailsolitary
iT邦研究生 2 級 ‧ 2014-09-29 16:39:19
最佳解答

複製以下程式碼,貼上另存成批次檔即可...

<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
2
丁大丙
iT邦研究生 5 級 ‧ 2014-09-29 10:14:04

移除恆久遠,紀錄永流傳.

enen1980 iT邦研究生 1 級 ‧ 2014-09-29 10:50:05 檢舉

飛拍手好句~~

一尾 iT邦研究生 1 級 ‧ 2014-09-29 11:00:17 檢舉

所以~~~
這也會被移除???
那還回啥意思的啊

一尾 iT邦研究生 1 級 ‧ 2014-09-29 11:00:23 檢舉

所以~~~
這也會被移除???
那還回啥意思的啊

8
CalvinKuo
iT邦大師 7 級 ‧ 2014-09-29 12:06:43

用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』

CalvinKuo iT邦大師 7 級 ‧ 2014-09-29 12:14:16 檢舉
6
hector958
iT邦研究生 2 級 ‧ 2014-09-29 13:43:39

寫一個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>
2
slime
iT邦大師 1 級 ‧ 2014-09-29 22:23:29

如果有多的電腦可以當一台主機(或者現有主機資源還夠), 我會建議架 Cacti 來處理.

4
Jesse HO
iT邦好手 1 級 ‧ 2014-09-29 22:49:17

Q: ping 4 次代表主機服務正常嗎?

http://www.mikrotik.com/thedude
把要監控的主機做服務即時監控及紀錄是不是比batch檔檢查來得精準的作法?
除了ping 還有不同服務埠的檢查
自己寫batch未免也太辛苦

至於說效能上監控就是以cacti/ nginx類的網管來做管理

IT 癡 iT邦高手 1 級 ‧ 2014-10-09 16:37:59 檢舉

感謝各位的意見 前陣子臨時出差到柬埔寨 不及回覆大家 真對不起
大家說的我試過了 可是因要掃瞄整個網段 時間很久 我的需求祇是把十幾部主機跟網管設備的 IP 放到一個文字檔 然後用一個批次檔去逐一讀取進來 PING 過並記錄成檔後 再讀下一個 IP 值到結束為止 不知可否再請教大家意見

hon2006 iT邦大師 1 級 ‧ 2014-10-09 17:29:52 檢舉

網路上很多免費的工具
http://www.i-write.idv.tw/?p=1677

0
蟹老闆
iT邦大師 1 級 ‧ 2014-10-17 18:05:50

還沒結案嗎?疑惑

大家的回答都可以做到喔,只是手法不同
我也提供一個供參考

<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記錄失敗的部份.

如請有什麼不了解的地方請再發問(因為討論才能相互成長,所以不愛接需求單臉紅)

我要發表回答

立即登入回答