Skrypt Linuksa z curlem do sprawdzenia, czy webservice działa
Mam webservice pod adresem http://localhost/test/testweb
Chcę napisać skrypt, aby sprawdzić, czy webservice działa z curl
Jeśli podano parametr curl, zwraca 200 OK
ok true false, więc mogę go użyć jako bloku if-else w skrypcie Linuksa
6 answers
curl -sL -w "%{http_code}\\n" "http://www.google.com/" -o /dev/null
-
-s
= Silent cURL ' s output -
-L
= Follow redirects -
-w
= własny format wyjściowy -
-o
= przekierowuje wyjście HTML do/dev/null
Przykład:
[~]$ curl -sL -w "%{http_code}\\n" "http://www.google.com/" -o /dev/null
200
Prawdopodobnie usunąłbym \\n
, gdybym przechwycił wyjście.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-05 14:07:53
To samo co @ burhan-khalid, ale dodano --connect-timeout 3
i --max-time 5
.
test_command='curl -sL \
-w "%{http_code}\\n" \
"http://www.google.com:8080/" \
-o /dev/null \
--connect-timeout 3 \
--max-time 5'
if [ $(test_command) == "200" ] ;
then
echo "OK" ;
else
echo "KO" ;
fi
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-03 01:42:56
Używam:
curl -f -s -I "http://example.com" &>/dev/null && echo OK || echo FAIL
- f --fail Fail bezszelestnie (brak wyjścia) przy błędach HTTP
-s --silent Silent mode
-I --head Pokaż tylko informacje o dokumencie
Uwaga:
w zależności od potrzeb Możesz również usunąć "- I", ponieważ w niektórych przypadkach musisz wykonać GET, a nie HEAD
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-12 12:39:38
Który sprawdzi nagłówki poprzez wget 2>&1
wyprowadza stderr na stdout
grep
filtry
-O /dev/null
po prostu wyrzuca zawartość strony
if [ "\`wget http://example.org/ -O /dev/null -S --quiet 2>&1 | grep '200 OK'\`" != "" ];
then
echo Hello;
fi;
Wiem, że nie curl, ale wciąż rozwiązanie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-05 16:36:07
Potrzebowałem lepszej odpowiedzi na to, więc napisałem skrypt poniżej.
FakePhrase jest używany do wykrywania ISP" Search Assist " adware http resposnes.
#!/bin/bash
fakePhrase="verizon"
siteList=(
'http://google.com'
'https://google.com'
'http://wikipedia.org'
'https://wikipedia.org'
'http://cantgettherefromhere'
'http://searchassist.verizon.com'
)
exitStatus=0
function isUp {
http=`curl -sL -w "%{http_code}" "$1" -o temp_isUp`
fakeResponse=`cat temp_isUp | grep $fakePhrase`
if [ -n "$fakeResponse" ]; then
http=$fakePhrase
fi
case $http in
[2]*)
;;
[3]*)
echo 'Redirect'
;;
[4]*)
exitStatus=4
echo "$1 is DENIED with ${http}"
;;
[5]*)
exitStatus=5
echo "$1 is ERROR with ${http}"
;;
*)
exitStatus=6
echo "$1 is NO RESPONSE with ${http}"
;;
esac
}
for var in "${siteList[@]}"
do
isUp $var
done
if [ "$exitStatus" -eq "0" ]; then
echo 'All up'
fi
rm temp_isUp
exit $exitStatus
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-18 18:02:43
Użyj tego:
curl -o $CURL_OUTPUT -s -w %{http_code}\\n%{time_total}\\n $URL > $TMP_FILE 2>&1
cat $TMP_FILE
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-10 15:08:32