Sponsored Content
Top Forums Shell Programming and Scripting awk script to find time difference between HTTP PUT and HTTP DELETE requests in access.log Post 302976768 by Juha on Wednesday 6th of July 2016 02:51:16 AM
Old 07-06-2016
awk script to find time difference between HTTP PUT and HTTP DELETE requests in access.log

Hi,

I'm trying to write a script to determine the time gap between HTTP PUT and HTTP DELETE requests in the HTTP Servers access log.

Normally client will do HTTP PUT to push content e.g. file_1.txt and 21 seconds later it will do HTTP DELETE, but sometimes the time varies causing some issues on the server side.

The format of the log is as below:

Code:
2016-07-06 11:09:04 [127.0.0.2] [PUT http://127.0.0.1:80/abc/bce/cde/file_30.txt HTTP/1.1] [201]
2016-07-06 11:09:04 [127.0.0.2] [DELETE http://127.0.0.1:80/abc/bce/cde/file_9.txt HTTP/1.1] [404]
2016-07-06 11:09:05 [127.0.0.2] [PUT http://127.0.0.1:80/abc/bce/cde/file_31.txt HTTP/1.1] [201]
2016-07-06 11:09:05 [127.0.0.2] [DELETE http://127.0.0.1:80/abc/bce/cde/file_10.txt HTTP/1.1] [404]
...
...
2016-07-06 11:09:25 [127.0.0.2] [PUT http://127.0.0.1:80/abc/bce/cde/file_51.txt HTTP/1.1] [201]
2016-07-06 11:09:25 [127.0.0.2] [DELETE http://127.0.0.1:80/abc/bce/cde/file_30.txt HTTP/1.1] [404]
2016-07-06 11:09:26 [127.0.0.2] [PUT http://127.0.0.1:80/abc/bce/cde/file_52.txt HTTP/1.1] [201]
2016-07-06 11:09:26 [127.0.0.2] [DELETE http://127.0.0.1:80/abc/bce/cde/file_31.txt HTTP/1.1] [404]

So from above I'd need to first find the time stamp e.g. when file_30.txt was pushed in, then find the HTTP DELETE for the file_30.txt and then determine the time difference. (file_30.txt just and example as this would need to be done to every file pushed in)

So it would be the 2 following lines
2016-07-06 11:09:04 [127.0.0.2] [PUT Revive Adserver HTTP/1.1] [201]
2016-07-06 11:09:25 [127.0.0.2] [DELETE Revive Adserver HTTP/1.1] [404]

So time difference would be: 11:09:25 - 11:09:04 = 21seconds

And output would be something like:
File: file_30.txt, difference: 21sec

I'm trying to use awk script to do this but I'm not very familiar with it so I've just started with the following(which might be totally stupid) so if anyone would have ideas on how to go about writing the script to achieve my goal it would be great:

Code:
BEGIN {
    FS=" ";
}

{
    if (/file_/)
    {
      time = $2
      httpmethod = $4
      file = $5
      sub(/.*\//,"",file)
      httpresult = $6
    }
	# Need to find the line with HTTP DELETE with the file from above
	# and then determine the time difference
}

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

turning off certain http requests

On a sparc solaris 8 host running sunone webserver 6 I would like to limit the http requests that can be used when port 80 is accessed. We currently have http/1.0 enabled. For example I would like to remove the http request DELETE. Regards, BLP (1 Reply)
Discussion started by: blp001
1 Replies

2. UNIX for Dummies Questions & Answers

Need to log http requests

Hi folks, I am trying to build this GUI application that will perform some http requests to a specific server. Basically I will use curl to "pretend" that it is a browser a sending an http request from a form. My http knowledge is very low, and the site is tricky, but I think if I could... (3 Replies)
Discussion started by: fundidor
3 Replies

3. Forum Support Area for Unregistered Users & Account Problems

Access to https://www.unix.com/source?

Folks, Hope this is not a newbie question, but it might end up being that. I wanted to retrieve the source code for unix_linux_bench as directed on https://www.unix.com/linux-benchmarks/11175-instructions-linux-benchmarks.html When one clicks on the links specified for download, the browser... (1 Reply)
Discussion started by: wagdalule
1 Replies

4. Solaris

what is the difference between http & Tomcat web server

I do not know the difference between the apache-http and the apche-Tomcat.Is they are differentiated on their version or on their features.:confused: (2 Replies)
Discussion started by: jayaprakash
2 Replies

5. Programming

sending http url through http socket programming..

hi am senthil am developing a software to send and receive SMS using HTTP connection first of all am forming a URL and sending that URL to a remote server using my Client Program i send that url through Socket(using Send() Function) if i send more than one URL one by one using the same... (0 Replies)
Discussion started by: senkerth
0 Replies

6. Shell Programming and Scripting

sending http url through http socket programming..

hi am senthil am developing a software to send and receive SMS using HTTP connection first of all am forming a URL and sending that URL to a remote server using my Client Program i send that url through Socket(using Send() Function) if i send more than one URL one by one using the same... (4 Replies)
Discussion started by: senkerth
4 Replies

7. OS X (Apple)

HbbTV client for OS X or Linux? Access via HTTP possible?

Hi Is there a HbbTV client for OS X or Linux? Access via HTTP possible? https://en.wikipedia.org/wiki/Hybrid_Broadcast_Broadband_TV (0 Replies)
Discussion started by: slashdotweenie
0 Replies

8. Shell Programming and Scripting

A script needs to be created to collect all HTTP GET requests containing a particular string

Hi friends, A script needs to be created to collect all HTTP GET requests containing a particular string say abcd.gif in the url path along with the IP address of the client that issued the request. The source of this data is the web server logs. Also Each script execution should extract... (4 Replies)
Discussion started by: skumar391
4 Replies

9. Web Development

HTTP Headers Reference: HTTP Status-Codes

Hypertext Transfer Protocol -- HTTP/1.1 for Reference - HTTP Headers 10 Status Code Definitions Each Status-Code is described below, including a description of which method(s) it can follow and any metainformation required in the response. (1 Reply)
Discussion started by: Neo
1 Replies

10. Programming

Java HTTP PUT Request/JSON Not Working But Using Python It Does ?

I have some code that I have been playing around with learning Java: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; ... (1 Reply)
Discussion started by: metallica1973
1 Replies
CURLOPT_FAILONERROR(3)					     curl_easy_setopt options					    CURLOPT_FAILONERROR(3)

NAME
CURLOPT_FAILONERROR - request failure on HTTP response >= 400 SYNOPSIS
#include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FAILONERROR, long fail); DESCRIPTION
A long parameter set to 1 tells the library to fail the request if the HTTP code returned is equal to or larger than 400. The default action would be to return the page normally, ignoring that code. This method is not fail-safe and there are occasions where non-successful response codes will slip through, especially when authentication is involved (response codes 401 and 407). You might get some amounts of headers transferred before this situation is detected, like when a "100-continue" is received as a response to a POST/PUT and a 401 or 407 is received immediately afterwards. When this option is used and an error is detected, it will cause the connection to get closed. DEFAULT
0, do not fail on error PROTOCOLS
HTTP EXAMPLE
TODO AVAILABILITY
Along with HTTP RETURN VALUE
Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not. SEE ALSO
CURLOPT_HTTP200ALIASES(3), CURLOPT_KEEP_SENDING_ON_ERROR(3), libcurl 7.54.0 September 22, 2016 CURLOPT_FAILONERROR(3)
All times are GMT -4. The time now is 02:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy