किसी भी URL से प्रतिक्रिया कैसे प्राप्त करें?


23

मुझे एक शेल स्क्रिप्ट लिखने के लिए कहा गया है ताकि यह चेक किया जा सके कि कोई URL यूपी / वर्किंग है या नहीं।

मैंने इंटरनेट पर कुछ संकेत खोजने की कोशिश की, लेकिन मुझे जो कुछ भी मिला वह यह जाँचने के बारे में है कि URL मौजूद है या नहीं।

मैंने पहली बार कोशिश की wget

wget -S --spider https://genesis-dev.webbank.ssmb.com:21589/gop-ui/app.jsp 2>&1 | awk '/^  /'
if [ $? -ne 0 ]
then echo "Server is UP"
else
echo "Server is down"
fi

मेरा अगला प्रयास साथ था curl

curl -ivs  https://genesis-dev.webbank.ssmb.com:21589/opconsole-sit/opconsole.html#
if [ $? -ne 0 ]
then echo "Server is UP"
else
echo "Server is down"
fi

लेकिन, दोनों URL के अस्तित्व की जाँच कर रहे हैं, प्रतिक्रिया नहीं।


1
कर्ल मैन पर बस एक त्वरित नज़र थी और यह सुझाव देता है कि यदि आप उपयोग करते हैं - यदि ध्वज का उपयोग करता है तो यह समस्या के बारे में कहने वाले पृष्ठ को वापस करने के बजाय 22 का निकास कोड लौटा देगा, इसलिए केवल '200 OK' ही रिटर्न वैल्यू देगा का 0.
गय

जवाबों:


20

curl -Is http://www.yourURL.com | head -1आप किसी भी URL की जाँच करने के लिए इस कमांड को आज़मा सकते हैं। टैटस कोड का 200 OKअर्थ है कि अनुरोध सफल हो गया है और URL फिर से उपलब्ध है।

आप URL उपलब्धता का परीक्षण भी कर सकते हैं और telnetकमांड का उपयोग करके प्रतिक्रिया कोड प्राप्त कर सकते हैं

telnet www.yourURL.com 80

80 पोर्ट नंबर है।


साझा करने के लिए धन्यवाद। यह भी कोशिश की, लेकिन मुझे लगता है कि यह भी अस्तित्व की जाँच कर रहा है। चेक करने के लिए $ sh q.sh URL: google.com/akash google.com/akash मौजूद है लेकिन यह ब्राउज़र में त्रुटि दे रहा है :: 404। यह एक त्रुटि है।
आकाश

@ आकाश: क्या आप अपने ब्राउज़र के माध्यम से उस लिंक तक पहुँच सकते हैं?
तुशी

अगर यह लिंक उर बात कर रहा है - www.google.com/akash--then NO-- यह मुझे एक त्रुटि दे रहा है :: "404-नहीं मिला"
आकाश

हाँ, यदि वह URL मौजूद नहीं है तो यह होना चाहिए :) आप और क्या उम्मीद कर रहे हैं ???
तुशी

लेकिन- यह मुझे बता रहा है - कि यह अस्तित्व में है .. नीचे कोड है :: $ vi q.sh #! / Bin / ksh echo "give your url" read url curl -ls "& url" | सिर -1 अगर [$? -eq 0] उसके बाद "एक्ज़िस्ट" को इको "इकोस्ट" एक्स्टिस्ट नहीं करें "फाई जब मैं इसे चलाता हूं :: $ sh q.sh आपका url www.google.com/akash एक्ज़िस्ट देता है लेकिन इसे ELSE ..
आकाश में

5

आप निम्नलिखित कर सकते हैं

#!/bin/bash

read -p "URL to check: " url
if curl --output /dev/null --silent --head --fail "$url"; then
  printf '%s\n' "$url exist"
else
  printf '%s\n' "$url does not exist"
fi

यह ifकथन आवश्यक नहीं है, हालांकि, मैंने उन्हें केवल स्क्रिप्ट के प्रवाह को चित्रित करने के लिए यहां रखा है।यहाँ छवि विवरण दर्ज करें


मैंने यह कोशिश की और यह मुझे अपेक्षित परिणाम नहीं दे रहा है।
आकाश

चेक करने के लिए $ sh q.sh URL: www.google.com% s \ n www.google.com मौजूद नहीं है
आकाश

@ आकाश अपडेट किया गया उत्तर देखें। अपनी लिपि में विस्तार न करें। इसके अलावा इसे बस से चलाएं ./checkURL। आशा है कि यह मदद करता है
वैलेंटाइन बजरमी

प्रोजेक्ट-प्रयोजन के लिए इसकी आवश्यकता है .. सोचें- इसे इस तरह से चलाने की सुविधा न हो .. :(
आकाश

%s\n वहां क्या रखा है? आपकी टिप्पणी पर परियोजना उद्देश्य? आप जो पूरा करने की कोशिश कर रहे हैं, उसके लिए आपको अधिक विशिष्ट होना चाहिए।
वैलेंटाइन बजरमी

1

मेरे लिए काम करने के बाद…।

status="$(curl -Is http://www.google.com | head -1)"
validate=( $status )
if [ ${validate[-2]} == "200" ]; then
  echo "OK"
else
  echo "NOT RESPONDING"
fi

@THUSHI ने जो लिखा उससे मैंने कोशिश की।


0

यदि आप pingURL देते हैं, तो इससे आपको प्रतिक्रिया भी मिलेगी

ping -c 5 www.google.com

-c5 की समयावधि समाप्त होने तक कहां गिनती होगी।

अगर मुझे सलाह दी जाती है कि nmapआपके सिस्टम में यह पैकेज स्थापित है , तो मैं काम कर सकता हूं । curlएक बेहतर विकल्प होगा, लेकिन फिर भी यहां एक उदाहरण है nmap:

nmap -p 80 -sT www.google.com


pingएक ICMPसंदेश भेजता है और निश्चित रूप से पोर्ट 80या का उपयोग नहीं करता है 443। इसके अलावा कुछ सर्वर पिंग अनुरोधों को अवरुद्ध करते हैं जो अभी भी प्रयास को अविश्वसनीय बनाता है।
वैलेंटाइन बजरमी

आप बंदरगाहों को भी पिंग कर सकते हैं। मैं एक वेबसाइट पर nmap
ryekayo

nmap -p 80 -sT www.google.com पोर्ट 80 को पिंग करेगा। मैं अपने जवाब को जल्द ही संपादित करूँगा जब मुझे अपने पीसी तक पहुँच प्राप्त होगी
ryekayo

1
nmapफिर से कई * nix सिस्टम में एक नॉन डिफॉल्ट पैकेज है। curlआधार प्रणाली के साथ अधिक आम भेज दिया गया है। आपको अभी भी nmapकुछ प्राप्त करने के लिए स्थापित करने की आवश्यकता होगी जो मानक * निक्स उपकरण के साथ प्राप्त किया जा सकता है।
वैलेंटाइन बजरमी

1
समझ गए, जानकारी के लिए धन्यवाद। मैंने अपना जवाब अपडेट किया
ryekayo

0

अधिकांश बार कर्ल https पर काम नहीं करता है यदि आप चेक करना चाहते हैं तो आप "कर्ल --version" के माध्यम से देख सकते हैं कि आपको उस मामले में https का विकल्प दिखाई नहीं देगा जिसे आप नीचे उपयोग कर सकते हैं

wget --post-data '{"name":"Radha", "Car": "Jaquar"}' --header "Content-Type: application/json" --no-check-certificate https://yourrequiredURI


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.