Hi friends,
at last i finish my script to find the status of the URL , in this code i used all the status codes, because of this it take too much of length. with the help of wiki only i find all the status codes.
Status codes in HTTP
#!/bin/bash
timevar=`date +%d-%m-%Y_%H.%M.%S` #-- > Storing Date and Time in a Variable
get_contents=`cat /urls.txt` #-- > Getting content of website from file. Note the file should not contain any http:// as its already been taken care of
######### Next Section Does all the processing #########
for i in $get_contents
do
statuscode=`curl -connect-timeout 30 -w �totaltime:%{time_total}\n� -s -I -L http://$i | awk '{for(i = 1; i<=NF; i++) if($i=="�totaltime:0.000n��totaltime:0.000n�HTTP/1.1") print $(i+1);}'`
case $statuscode in
200)
echo "$timevar $i $statuscode okay" >> /log.txt;;
201)
echo "$timevar $i $statuscode created" >> /log.txt;;
202)
echo "$timevar $i $statuscode Accepted" >> /log.txt;;
203)
echo "$timevar $i $statuscode Non-Authoritative Information" >> /log.txt;;
204)
echo "$timevar $i $statuscode No Content" >> /log.txt;;
205)
echo "$timevar $i $statuscode Reset Content" >> /log.txt;;
206)
echo "$timevar $i $statuscode Partial Content" >> /log.txt;;
207)
echo "$timevar $i $statuscode Multi-Status" >> /log.txt;;
226)
echo "$timevar $i $statuscode IM Used" >> /log.txt;;
300)
echo "$timevar $i $statuscode Multiple choices" >> /log.txt;;
301)
echo "$timevar $i $statuscode Moved Permanently" >> /log.txt;;
302)
echo "$timevar $i $statuscode found" >> /log.txt;;
303)
echo "$timevar $i $statuscode See Other" >> /log.txt;;
304)
echo "$timevar $i $statuscode Not Modified" >> /log.txt;;
305)
echo "$timevar $i $statuscode Use Proxy" >> /log.txt;;
306)
echo "$timevar $i $statuscode UnUsed" >> /log.txt;;
307)
echo "$timevar $i $statuscode Temporary Redirect" >> /log.txt;;
400)
echo "$timevar $i $statuscode Bad Request" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com ;;
401)
echo "$timevar $i $statuscode Unauthorized" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com | >> /root/log.txt;;
402)
echo "$timevar $i $statuscode Payment Required" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
403)
echo "$timevar $i $statuscode Forbidden" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
404)
echo "$timevar $i $statuscode Page Not Found" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
405)
echo "$timevar $i $statuscode Method Not Allowed" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
406)
echo "$timevar $i $statuscode Not Acceptable" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
407)
echo "$timevar $i $statuscode Proxy Authentication Required" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
408)
echo "$timevar $i $statuscode Request Timeout" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
409)
echo "$timevar $i $statuscode Conflict" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
410)
echo "$timevar $i $statuscode Gone" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
411)
echo "$timevar $i $statuscode Length Required" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
412)
echo "$timevar $i $statuscode Precondition Failed" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
413)
echo "$timevar $i $statuscode Request Entity Too Large" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
414)
echo "$timevar $i $statuscode Request-URI Too Long" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
415)
echo "$timevar $i $statuscode Unsupported Media Type" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
416)
echo "$timevar $i $statuscode Requested Range Not Satisfiable" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
417)
echo "$timevar $i $statuscode Expectation Failed" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
422)
echo "$timevar $i $statuscode Unprocessable Entity" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
423)
echo "$timevar $i $statuscode Locked" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
424)
echo "$timevar $i $statuscode Failed Dependency" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
425)
echo "$timevar $i $statuscode Unordered Collection" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
426)
echo "$timevar $i $statuscode Upgrade Required" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
444)
echo "$timevar $i $statuscode No Response" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
449)
echo "$timevar $i $statuscode Retry With" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
450)
echo "$timevar $i $statuscode Blocked by Windows Parental Controls" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
499)
echo "$timevar $i $statuscode Client Closed Request " >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
500)
echo "$timevar $i $statuscode Internal Server Error" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
501)
echo "$timevar $i $statuscode Not Implemented" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
502)
echo "$timevar $i $statuscode Bad Gateway" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
503)
echo "$timevar $i $statuscode Service Unavailable" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
504)
echo "$timevar $i $statuscode Gateway Timeout" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
505)
echo "$timevar $i $statuscode HTTP Version Not Supported" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
506)
echo "$timevar $i $statuscode Variant Also Negotiates" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
507)
echo "$timevar $i $statuscode Insufficient Storage" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
509)
echo "$timevar $i $statuscode Bandwidth Limit Exceeded" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
510)
echo "$timevar $i $statuscode Not Extended" >> /log.txt
echo "Status $statuscode found" | mail -s "Check of $i failed" 07anis@gmail.com;;
esac
done
Please guide me...legends!!!
With Regards
Anish kumar.V
sk1418
March 19, 2011, 3:05pm
2
just a thought, didn't test.
you could save a text file for those fixed code-info content, say
200|ok
201|created
...
after you get $statuscode, go to that file and find out the info you want, could be done by awk, for example. then, if the $statuscode >=400, executing your mail -s command.
#!/bin/bash
timevar=$(date +%d-%m-%Y_%H.%M.%S) #�� > Storing Date and Time in a Variable
get_contents=`cat /urls.txt` #�- > Getting content of website from file. Note the file should not contain any http:// as its already been taken care of
######### Next Section Does all the processing #########
function _echo () {
echo $1 $2 $3 $4 >> /log.txt
}
func _mail () {
echo "Status $1 found" | mail -s "Check of $2 failed" 07anis@gmail.com
}
for i in $get_contents
do
statuscode=`curl �connect-timeout 30 -w �totaltime:%{time_total}\n� -s -I -L http://$i | awk '{for(i = 1; i<=NF; i++) if($i=="�totaltime:0.000n��totaltime:0.000n�HTTP/1.1") print $(i+1);}'`
case $statuscode in
200) _echo $timevar $i $statuscode "okay";;
201) _echo $timevar $i $statuscode "created";;
202) _echo $timevar $i $statuscode "Accepted";;
203) _echo $timevar $i $statuscode "Non-Authoritative Information";;
204) _echo $timevar $i $statuscode "No Content";;
205) _echo $timevar $i $statuscode "Reset Content";;
206) _echo $timevar $i $statuscode "Partial Content";;
207) _echo $timevar $i $statuscode "Multi-Status";;
226) _echo $timevar $i $statuscode "IM Used";;
300) _echo $timevar $i $statuscode "Multiple choices";;
301) _echo $timevar $i $statuscode "Moved Permanently";;
302) _echo $timevar $i $statuscode "found";;
303) _echo $timevar $i $statuscode "See Other";;
304) _echo $timevar $i $statuscode "Not Modified";;
305) _echo $timevar $i $statuscode "Use Proxy";;
306) _echo $timevar $i $statuscode "UnUsed";;
307) _echo $timevar $i $statuscode "Temporary Redirect";;
400) _echo $timevar $i $statuscode "Bad Request"; _mail $statuscode $i;;
401) _echo $timevar $i $statuscode "Unauthorized"; _mail $statuscode $i;;
402) _echo $timevar $i $statuscode "Payment Required"; _mail $statuscode $i;;
403) _echo $timevar $i $statuscode "Forbidden"; _mail $statuscode $i;;
404) _echo $timevar $i $statuscode "Page Not Found"; _mail $statuscode $i;;
405) _echo $timevar $i $statuscode "Method Not Allowed"; _mail $statuscode $i;;
406) _echo $timevar $i $statuscode "Not Acceptable"; _mail $statuscode $i;;
407) _echo $timevar $i $statuscode "Proxy Authentication Required"; _mail $statuscode $i;;
408) _echo $timevar $i $statuscode "Request Timeout"; _mail $statuscode $i;;
409) _echo $timevar $i $statuscode "Conflict"; _mail $statuscode $i;;
410) _echo $timevar $i $statuscode "Gone"; _mail $statuscode $i;;
411) _echo $timevar $i $statuscode "Length Required"; _mail $statuscode $i;;
412) _echo $timevar $i $statuscode "Precondition Failed"; _mail $statuscode $i;;
413) _echo $timevar $i $statuscode "Request Entity Too Large"; _mail $statuscode $i;;
414) _echo $timevar $i $statuscode "Request-URI Too Long"; _mail $statuscode $i;;
415) _echo $timevar $i $statuscode "Unsupported Media Type"; _mail $statuscode $i;;
416) _echo $timevar $i $statuscode "Requested Range Not Satisfiable"; _mail $statuscode $i;;
417) _echo $timevar $i $statuscode "Expectation Failed"; _mail $statuscode $i;;
422) _echo $timevar $i $statuscode "Unprocessable Entity"; _mail $statuscode $i;;
423) _echo $timevar $i $statuscode "Locked"; _mail $statuscode $i;;
424) _echo $timevar $i $statuscode "Failed Dependency"; _mail $statuscode $i;;
425) _echo $timevar $i $statuscode "Unordered Collection"; _mail $statuscode $i;;
426) _echo $timevar $i $statuscode "Upgrade Required"; _mail $statuscode $i;;
444) _echo $timevar $i $statuscode "No Response"; _mail $statuscode $i;;
449) _echo $timevar $i $statuscode "Retry With"; _mail $statuscode $i;;
450) _echo $timevar $i $statuscode "Blocked by Windows Parental Controls"; _mail $statuscode $i;;
499) _echo $timevar $i $statuscode "Client Closed Request"; _mail $statuscode $i;;
500) _echo $timevar $i $statuscode "Internal Server Error"; _mail $statuscode $i;;
501) _echo $timevar $i $statuscode "Not Implemented"; _mail $statuscode $i;;
502) _echo $timevar $i $statuscode "Bad Gateway"; _mail $statuscode $i;;
503) _echo $timevar $i $statuscode "Service Unavailable"; _mail $statuscode $i;;
504) _echo $timevar $i $statuscode "Gateway Timeout"; _mail $statuscode $i;;
505) _echo $timevar $i $statuscode "HTTP Version Not Supported"; _mail $statuscode $i;;
506) _echo $timevar $i $statuscode "Variant Also Negotiates"; _mail $statuscode $i;;
507) _echo $timevar $i $statuscode "Insufficient Storage"; _mail $statuscode $i;;
509) _echo $timevar $i $statuscode "Bandwidth Limit Exceeded"; _mail $statuscode $i;;
510) _echo $timevar $i $statuscode "Not Extended"; _mail $statuscode $i;;
esac
Hi danmero
Its look good but i have some doubt in that
#!/bin/bash
timevar=$(date +%d-%m-%Y_%H.%M.%S) #-- > Storing Date and Time in a Variable
get_contents=`cat /urls.txt` #-- > Getting content of website from file. Note the file should not contain any http:// as its already been taken care of
######### Next Section Does all the processing #########
function _echo ()
{
echo $1 $2 $3 $4 >> /log.txt
}
function _mail ()
{
echo "Status $1 found" | mail -s "Check of $2 failed" 07anis@gmail.com
}
for i in $get_contents
do
statuscode=`curl -connect-timeout 30 -w �totaltime:%{time_total}\n� -s -I -L http://$i | awk '{for(i = 1; i<=NF; i++) if($i=="�totaltime:0.000n��totaltime:0.000n�HTTP/1.1") print $(i+1);}'`
case $statuscode in
200) _echo $timevar $i $statuscode "okay"; _mail $statuscode $i;;
201) _echo $timevar $i $statuscode "created";;
202) _echo $timevar $i $statuscode "Accepted";;
203) _echo $timevar $i $statuscode "Non-Authoritative Information";;
204) _echo $timevar $i $statuscode "No Content";;
205) _echo $timevar $i $statuscode "Reset Content";;
206) _echo $timevar $i $statuscode "Partial Content";;
207) _echo $timevar $i $statuscode "Multi-Status";;
226) _echo $timevar $i $statuscode "IM Used";;
300) _echo $timevar $i $statuscode "Multiple choices";;
301) _echo $timevar $i $statuscode "Moved Permanently";;
302) _echo $timevar $i $statuscode "found";;
303) _echo $timevar $i $statuscode "See Other";;
304) _echo $timevar $i $statuscode "Not Modified";;
305) _echo $timevar $i $statuscode "Use Proxy";;
306) _echo $timevar $i $statuscode "UnUsed";;
307) _echo $timevar $i $statuscode "Temporary Redirect";;
400) _echo $timevar $i $statuscode "Bad Request"; _mail $statuscode $i;;
401) _echo $timevar $i $statuscode "Unauthorized"; _mail $statuscode $i;;
402) _echo $timevar $i $statuscode "Payment Required"; _mail $statuscode $i;;
403) _echo $timevar $i $statuscode "Forbidden"; _mail $statuscode $i;;
404) _echo $timevar $i $statuscode "Page Not Found"; _mail $statuscode $i;;
405) _echo $timevar $i $statuscode "Method Not Allowed"; _mail $statuscode $i;;
406) _echo $timevar $i $statuscode "Not Acceptable"; _mail $statuscode $i;;
407) _echo $timevar $i $statuscode "Proxy Authentication Required"; _mail $statuscode $i;;
408) _echo $timevar $i $statuscode "Request Timeout"; _mail $statuscode $i;;
409) _echo $timevar $i $statuscode "Conflict"; _mail $statuscode $i;;
410) _echo $timevar $i $statuscode "Gone"; _mail $statuscode $i;;
411) _echo $timevar $i $statuscode "Length Required"; _mail $statuscode $i;;
412) _echo $timevar $i $statuscode "Precondition Failed"; _mail $statuscode $i;;
413) _echo $timevar $i $statuscode "Request Entity Too Large"; _mail $statuscode $i;;
414) _echo $timevar $i $statuscode "Request-URI Too Long"; _mail $statuscode $i;;
415) _echo $timevar $i $statuscode "Unsupported Media Type"; _mail $statuscode $i;;
416) _echo $timevar $i $statuscode "Requested Range Not Satisfiable"; _mail $statuscode $i;;
417) _echo $timevar $i $statuscode "Expectation Failed"; _mail $statuscode $i;;
422) _echo $timevar $i $statuscode "Unprocessable Entity"; _mail $statuscode $i;;
423) _echo $timevar $i $statuscode "Locked"; _mail $statuscode $i;;
424) _echo $timevar $i $statuscode "Failed Dependency"; _mail $statuscode $i;;
425) _echo $timevar $i $statuscode "Unordered Collection"; _mail $statuscode $i;;
426) _echo $timevar $i $statuscode "Upgrade Required"; _mail $statuscode $i;;
444) _echo $timevar $i $statuscode "No Response"; _mail $statuscode $i;;
449) _echo $timevar $i $statuscode "Retry With"; _mail $statuscode $i;;
450) _echo $timevar $i $statuscode "Blocked by Windows Parental Controls"; _mail $statuscode $i;;
499) _echo $timevar $i $statuscode "Client Closed Request"; _mail $statuscode $i;;
500) _echo $timevar $i $statuscode "Internal Server Error"; _mail $statuscode $i;;
501) _echo $timevar $i $statuscode "Not Implemented"; _mail $statuscode $i;;
502) _echo $timevar $i $statuscode "Bad Gateway"; _mail $statuscode $i;;
503) _echo $timevar $i $statuscode "Service Unavailable"; _mail $statuscode $i;;
504) _echo $timevar $i $statuscode "Gateway Timeout"; _mail $statuscode $i;;
505) _echo $timevar $i $statuscode "HTTP Version Not Supported"; _mail $statuscode $i;;
506) _echo $timevar $i $statuscode "Variant Also Negotiates"; _mail $statuscode $i;;
507) _echo $timevar $i $statuscode "Insufficient Storage"; _mail $statuscode $i;;
509) _echo $timevar $i $statuscode "Bandwidth Limit Exceeded"; _mail $statuscode $i;;
510) _echo $timevar $i $statuscode "Not Extended"; _mail $statuscode $i;;
esac
done
how it will working in this script?? can u pls explain for my understanding.
With Regards
Anish Kumar.V
function _echo ()
{
echo $1 $2 $3 $4 >> /log.txt
}
.....
case $statuscode in
200) _echo $timevar $i $statuscode "okay";;
.....
You have to take a look over man bash ("bash") manual for functions and arguments.
hi danmero,
ya thanks alot for your suggestion and replies,
With Regards
Anish Kumar.V
ctsgnb
March 19, 2011, 6:55pm
7
Inspired from Danero's code with some modif (ksh + building a parameter file + adding function _get_param ) i didn't try it so it may requires some little adaptation or fix.
#!/usr/bin/ksh
PARAMFILE=status.cfg
cat <<-EOF >$PARAMFILE
200:okay:M
201:created
202:Accepted
203:Non-Authoritative Information
204:No Content
205:Reset Content
206:Partial Content
207:Multi-Status
226:IM Used
300:Multiple choices
301:Moved Permanently
302:found
303:See Other
304:Not Modified
305:Use Proxy
306:UnUsed
307:Temporary Redirect
400:Bad Request:M
401:Unauthorized:M
402:Payment Required:M
403:Forbidden:M
404:Page Not Found:M
405:Method Not Allowed :M
406:Not Acceptable:M
407:Proxy Authentication Required:M
408:Request Timeout:M
409:Conflict:M
410:Gone:M
411:Length Required:M
412:Precondition Failed:M
413:Request Entity Too Large:M
414:Request-URI Too Long:M
415:Unsupported Media Type :M
416:Requested Range Not Satisfiable:M
417:Expectation Failed:M
422:Unprocessable Entity:M
423:Locked:M
424:Failed Dependency:M
425:Unordered Collection:M
426:Upgrade Required:M
444:No Response:M
449:Retry With:M
450:Blocked by Windows Parental Controls:M
499:Client Closed Request:M
500:Internal Server Error:M
501:Not Implemented:M
502:Bad Gateway:M
503:Service Unavailable:M
504:Gateway Timeout:M
505:HTTP Version Not Supported:M
506:Variant Also Negotiates:M
507:Insufficient Storage:M
509:Bandwidth Limit Exceeded:M
510:Not Extended:M
EOF
echo "BP "
STA=
ML=
MSG=
_get_param(){
awk -F: -v c="$1" '$0~c{print $1,($3=="M")?Y:N,$2}' $PARAMFILE | read STA ML MSG
}
timevar=$(date +%d-%m-%Y_%H.%M.%S) #�� > Storing Date and Time in a Variable
get_contents=`cat ./urls.txt` #�- > Getting content of website from file. Note the file should not contain any http:// as its already been taken care of
######### Next Section Does all the processing #########
_echo(){
echo $1 $2 $3 $4 >> /log.txt
}
_mail(){
echo "Status $1 found" | mail -s "Check of $2 failed" 07anis@gmail.com
}
for i in $get_contents
do
statuscode=`curl �connect-timeout 30 -w �totaltime:%{time_total}\n� -s -I -L http://$i | awk '{for(i = 1; i<=NF; i++) if($i=="�totaltime:0.000n��totaltime:0.000n�HTTP/1.1") print $(i+1);}'`
_get_param $statuscode
_echo $timevar $i $statuscode $MSG
[[ $ML == Y ]] && _mail $statuscode $i
done
rm $PARAMFILE