मैं हर X मिनट पिंग कैसे कर सकता हूं और प्रतिक्रिया समय की जांच कर सकता हूं।


26

मैं वर्तमान में एक बड़ी कंपनी में काम कर रहा हूं और हमारे पास विलंबता के गंभीर मुद्दे हैं। यह एक प्रक्रिया नियंत्रण प्रणाली में हो रहा है, और अस्वीकार्य है (कमांड शुरू होने से पहले कभी-कभी 2 मिनट लगें)

जब नेटवर्क टीम "नेटवर्क पर सब कुछ ठीक है" कहती है, तो मैं दोबारा जांच करना चाहता हूं। इसलिए, मैं एक लूप बनाना चाहता हूं जो सर्वर को पिंग करता है और टेक्स्ट फाइल में परिणाम लिखता है।

मैं बैच विशेषज्ञ नहीं हूं, लेकिन क्या आपको लगता है कि यह कोड उपयोग करने के लिए सही है?

@ECHO OFF

:LOOPSTART

time /T
ping xxx.xx.x.x  -t >> filename.txt
sleep -m 3000

GOTO LOOPSTART


@Zoredache मैं प्रोसेस कंट्रोल कंप्यूटर पर ऐसे सॉफ्टवेयर्स नहीं लगा सकता: dev.pulsed.net/wp/?p=31
Waza_Be

"XP पेशेवर जीत" डॉस नहीं है।
ग्रिटिटी

जवाबों:


31

मुझे ठीक लगता है, लेकिन अगर आप लगातार आईपी पिंग करना चाहते हैं, तो इसे लूप करने की कोई आवश्यकता नहीं है। तो आप बस इसे इस तरह से कर सकते हैं:

@ECHO OFF
set IPADDRESS=x.x.x.x
ping %IPADDRESS% -t >> filename.txt

यदि आप हर X मिनट पिंग करना चाहते हैं, तो लूप का उपयोग करें:

@ECHO OFF
set IPADDRESS=x.x.x.x
set INTERVAL=60
:PINGINTERVAL
ping %IPADDRESS% -n 1 >> filename.txt
timeout %INTERVAL%
GOTO PINGINTERVAL

जैसा कि आप देख सकते हैं कि मैंने sleepकमांड को बदल दिया है timeout। ऐसा इसलिए sleepहै क्योंकि कुछ सिस्टम पर हमेशा उपलब्ध नहीं है जबकि timeoutआमतौर पर है।

आपके सिस्टम पर गुम sleepया timeoutकमांड? झल्लाहट मत करो। बस timeoutनिम्नलिखित हैक के साथ बदलें :

@ping 127.0.0.1 -n %INTERVAL% > nul

यह हैक बस आपके स्थानीय पते को पिंग करता है, और चूंकि यह तुरंत प्रतिक्रिया देगा, इसलिए हम इसका उपयोग निष्पादन में देरी का अनुकरण करने के लिए कर सकते हैं ।


टाइमआउट को आंतरिक या बाहरी आदेश के रूप में मान्यता प्राप्त नहीं है
Waza_Be

@ Profete162, क्या आपके पास नींद की आज्ञा है? यदि हां, तो बस के timeoutसाथ बदलें sleep। विंडोज के किस संस्करण में आप ऐसा कर रहे हैं?
मेकवॉल

नींद के लिए भी ... मैं XP पेशेवर
Waza_Be

1
@ Profete162, पुराना स्कूल! :) मैं एक द्वितीयक विधि जोड़ूंगा जिसका उपयोग आप तब कर सकते हैं जब वे कमांड गायब हैं।
mekwall

3

एक-लाइनर समाधान के लिए निम्नलिखित का उपयोग करें:

cmd /v /c "(for /l %a in () do @for /f "tokens=*" %b in ('ping -w 1000 -n 1 xxx.xxx.xxx.xxx ^| findstr "Reply Request Unknown Destination"') do @echo !DATE! !TIME! %b & timeout 3000 >NUL) > pingtestresults.txt"

ध्यान दें:

  1. आप के xxx.xxx.xxx.xxxसाथ बदल सकते हैंgoogle.com
  2. अंतराल परिवर्तन को संपादित करने के 3000लिए 60(1 मिनट के लिए) या 10 (10 सेकंड के लिए)
  3. यदि आपको इस कमांड को बैच फ़ाइल (.bat या .cmd) में रखने की आवश्यकता है, तो सुनिश्चित करें कि आप के %साथ प्रतिस्थापित करते हैं%%

1

Windows समाधान के लिए, यदि आप wtee.exe स्थापित करने के इच्छुक हैं , तो निम्न कार्य करेगा ( pingloop.bat ):

@echo off
SETLOCAL

set pingTarget=yahoo.com
set fileName=pinglog.txt
set waitSeconds=420

echo. | wtee -a %fileName%
echo ====================================================== | wtee -a %fileName%
echo Starting Ping Loop; Logging to %fileName% | wtee -a %fileName%

:timestamp
set day=%date:~7,2%
set month=%date:~4,2%
set year=%date:~10,4%

set timestamp=%year%-%month%-%day%_%time%
echo. | wtee -a %fileName%
echo ------------------------------------------------------ | wtee -a %fileName%
echo Ping Timestamp: %timestamp% | wtee -a %fileName%

:ping
ping %pingTarget% -n 1 | wtee -a %fileName%

:wait
ping 127.0.0.1 -n %waitSeconds% > nul

goto timestamp

ENDLOCAL

चीयर्स!


0

मुझे पता है कि यह एक विंडोज़ सवाल है (और उस पर एक पुराना), लेकिन शायद यह लिनक्स और ओएसएक्स के समान है। यह पहली बात है जब मैं अपने लैपटॉप पर नेटवर्क ट्रैफिक को रखने के लिए एक साधारण कमांड की तलाश कर रहा था। कुछ इसी तरह की तलाश में किसी के लिए उपयोगी हो सकता है।

बैश स्क्रिप्ट में:

WAITSECONDS=30 #or whatever your needs are
IPTOPING=8.8.8.8 #or whatever your needs are
ping -i ${WAITSECONDS} ${IPTOPING} > logfile

सिंगल लाइन एक्स पिंगिंग गूगल डीएनएस हर 30sec:

ping -i 30 8.8.8.8 > logfile

OSX और Linux में काम करता है, सुंदर मानक होना चाहिए, हालांकि पता नहीं है कि आप किस सिस्टम पर हैं।


1
शायद cygwin में .. cygwin आपको विंडो में bash का उपयोग करने देता है
barlop

0

टाइमआउट स्विच वैसा नहीं है जैसा आप 'वेट' स्विच के रूप में देख रहे हैं। विंडोज पिंग कमांड के साथ टाइमआउट स्विच बस कमांड विंडो को बताता है कि उत्तर को प्राप्त करने से पहले कितनी देर तक इंतजार करना है, न कि अगले उत्तर को भेजने से पहले कितनी देर तक इंतजार करना है।


1
सुपर उपयोगकर्ता में आपका स्वागत है! यह वास्तव में एक टिप्पणी है और मूल प्रश्न का उत्तर नहीं है । किसी लेखक से स्पष्टीकरण मांगने या उसका अनुरोध करने के लिए, उनके पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपने स्वयं के पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप किसी भी पोस्ट पर टिप्पणी कर पाएंगे । कृपया पढ़ें मुझे टिप्पणी करने के लिए 50 प्रतिष्ठा की आवश्यकता क्यों है? मैं इसके बजाय क्या कर सकता हूं?
DavidPostill

0

प्रश्न बिलकुल स्पष्ट नहीं है। जाहिरा तौर पर एक बैच फ़ाइल में निरंतर लूप में कोई उपयोग नहीं होता है जो एक फ़ाइल में संलग्न होता है। खासकर जब यह बैच फ़ाइल एक दोहराई जाने वाली बाहरी घटना से शुरू होती है ... जब तक आप डिस्क स्थान को भरना नहीं चाहते ... या टन के कमांड प्रॉम्प्ट आरंभ करने और सिस्टम को चोक करने के लिए ...

मेरी धारणा यह है कि परीक्षण के लिए कुछ समय अवधि होनी चाहिए और फिर बैच समाप्त होना चाहिए। मैं यह भी मानता हूं कि आज अधिकांश एमएस विंडोज पॉवर्सशेल से लैस हैं, जो इस मामले के लिए उपयोगी हो सकते हैं। यहाँ ट्विनलाइनर है:

powershell "get-date | out-file <log filename>"
powershell "test-connection <IP> -delay <interval> -count <how many pings> | out-file -append <log filename>"

इसे एक बैच फ़ाइल में रखा जा सकता है, या एक पॉवरशेल स्क्रिप्ट के रूप में चलाया जा सकता है, इस मामले में 'पॉवरशेल' और डबल कोट्स को हटा दें।

फिर भी, विंडोज पर बैश सबसे अच्छा विकल्प लगता है ...


0

ऊपर स्पार्क्स द्वारा जवाब पर विस्तार करते हुए, मैंने कुछ संशोधनों के साथ एक फ़ाइल में अपना एक लाइन कोड बैच फ़ाइल में डाल दिया।

cmd /v /c "(for /l %%a in () do @for /f "tokens=*" %%b in ('ping -w 1000 -n 1 %1 ^| 
findstr "Reply Request Unknown Destination"') do @echo !DATE! !TIME! %%b & timeout %2 
>NUL) > pingtestresults.txt"

PingD.bat के रूप में सहेजा गया PingD [मशीन का नाम / IP] निष्पादित करने के लिए निम्नलिखित का उपयोग करें [सेकंड में पिंग के बीच देरी]

उदाहरण के लिए, PingD MyDC01 10 प्रत्येक 10 सेकंड में MyDC01 को पिंग भेजेगा।


0

यदि आप इसे केवल विंडोज़ पर एक कमांड विंडो में पेस्ट करना चाहते हैं ...

(for / l% a () do @for / f "tokens = *"% b in ('पिंग -w 1000 -n 1 8.8.8.8 ^ समयबाह्य 3> एनयूएल)

यह हर 3 सेकंड पिंग करता है ... जब तक आप इसे रोक नहीं देते

यह बेहतर है क्योंकि आपको लॉग फ़ाइल में लिखने की आवश्यकता नहीं है, (आपको वास्तव में लॉग फ़ाइल की आवश्यकता क्यों होगी) बस तत्काल विंडो पर है और यह आपको "तुरंत" वांछित परिणाम देता है :)

यदि किसी कारण से आप लॉग-फाइल करने के लिए पाइप भी कर सकते हैं: (for / l% a () do @for / f "tokens = *"% b in ('ping -w 1000 -n 1 8.8)। 8.8 ^ | खोज का जवाब "अनजान अनुरोध गंतव्य" ') do @echo% b & timeout 3> NUL)> file.txt

इसके अलावा, आप 'टाइमआउट' के बाद मान बदलकर टाइमआउट को समायोजित कर सकते हैं क्योंकि यह इस मामले में 3 सेकंड है ...

और आपको एक बैच फ़ाइल को सहेजना नहीं है ... बस सहेजे गए क्लाउड स्थान में संग्रहीत इस पाठ से इस पाठ स्ट्रिंग को कॉपी और पेस्ट करें .. या आपके द्वारा उपयोग किए जाने वाले आदेशों के फ़ोल्डर आदि।


इस प्रश्न के पहले से ही कई उत्तर हैं, कृपया यह भी बताएं कि आपका उत्तर बेहतर / अलग कैसे है।
माटे जुहेज़

-1

विंडोज आधारित सिस्टम पर हम विशिष्ट अंतराल के बाद सर्वर को पिंग करने के लिए निम्न कमांड का उपयोग कर सकते हैं

ping xxx.xxx.xxx.xxx -w xxxx -n xx >> c: \ logfile.txt

जहाँ -w मिलिसेकंड में अंतराल निर्दिष्ट करता है इसलिए 1000 ~ 1 सेकंड => 3000 के लिए 3 सेकंड विलंब -n निर्दिष्ट करता है कि कितनी बार पिंग xxx.xxx.xxx.xxx पर सर्वर को क्वेरी भेजेगा।


15
-बस यह निर्दिष्ट करता है कि यह उत्तर के लिए कितनी देर तक इंतजार करेगा, न कि कितनी देर तक पिंग की प्रतीक्षा करेगा।
डेविल्स एडवोकेट

-1

यह विंडोज़ कमांड है जिसका उपयोग मैं एक विशिष्ट अंतराल पर एक विशिष्ट आईपी पिंग करने के लिए करता हूं (इस उदाहरण में 10 सेकंड):

ping -t <ip.address> -w 10000

-कहते हैं लगातार पिंग।

-वह कहते हैं कि अगले पिंग से पहले इस प्रतीक्षा करें। यहां 1 मिनट प्रतीक्षा का उदाहरण दिया गया है:

ping -t <ip.address> -w 60000

आनंद लें, और गुड लक !!


सवाल पूछा गया कि सूचना को फाइल में कैसे लिखें। क्या आप अपना उत्तर संपादित कर सकते हैं?
बेन एन

16
विंडोज पर, -wपिंग "खो" पर विचार करने से पहले प्रतीक्षा करने के लिए अधिकतम समय निर्दिष्ट करता है , पिंग के बीच का समय नहीं ।
20
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.