03-19-2011
To reduce the bash script length!!!
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
Quote:
and my question is do we need all the status codes necessary in this script..
and is there any other way to reduce the code using any conditonal statements..
Code :
#!/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
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
i want to reduce a length in the file called text
in the file im having 10 byte length.
want to reduce it to 9 byte length for all lines. (5 Replies)
Discussion started by: laknar
5 Replies
2. Shell Programming and Scripting
HI ,
I have a list1 which consists of data that i have to search and a list2 which has the files that need to be searched .So basically i am using list1 on list2 to see if list1 data is present if found replace it .I have written the code using foreach loop for each list .This is taking the... (1 Reply)
Discussion started by: madhul2002
1 Replies
3. Shell Programming and Scripting
I have a file with 400 characters
How can I create another file with only a portion of them (like 300 within 400) and get rid of the rest?
Thanks (5 Replies)
Discussion started by: fafchi
5 Replies
4. Shell Programming and Scripting
The following bash script does not work because the java/groovy code always thinks there are four arguments even if there are only 1 or 2. As you can see from my hideous backslashes, I am using cygwin bash on windows.
export... (1 Reply)
Discussion started by: siegfried
1 Replies
5. Shell Programming and Scripting
DELETED. (0 Replies)
Discussion started by: vasuvv
0 Replies
6. Shell Programming and Scripting
Hello All,
I have created a script which will show the errors from a log file in between a particular section.
v1=$(sed -n "/Main Report/,/Main Report End/p" input | grep -i 'Unable to find'
v2=$(sed -n "/Main Report/,/Main Report End/p" input | grep -i 'Unable to add'
if
then
echo... (5 Replies)
Discussion started by: Vikram_Tanwar12
5 Replies
7. Shell Programming and Scripting
Hi guys,
i have a csv file like:
USERID;COG;DESCR;FIL;OFF
user001;user;test1;001;A01
user002;user;test2;002;A02
user0003;user;test3;003;A03
user004;user;test4;004;A04
user0005;user;test5;005;A05
etc..
I need to read line for line and, if value of first column is > 7 char (in this example... (4 Replies)
Discussion started by: kamose
4 Replies
8. Shell Programming and Scripting
AFILENAME=glow.sh
FILENAME="/${AFILENAME}"
WIDTHA=$(echo ${FILENAME} | wc -c)
NTIME=0
RESULTS=$(for eachletter in $(echo ${FILENAME} | fold -w 1)
do
WIDTHTIMES=$(awk "BEGIN{printf... (5 Replies)
Discussion started by: SkySmart
5 Replies
9. Shell Programming and Scripting
I'm new to utilities like socat and netcat and I'm not clear if they will do what I need.
I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes.
I'm using Cygwin bash on Windows 10.
My... (3 Replies)
Discussion started by: siegfried
3 Replies