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
HTTP::Request(3)					User Contributed Perl Documentation					  HTTP::Request(3)

NAME
HTTP::Request - HTTP style request message SYNOPSIS
require HTTP::Request; $request = HTTP::Request->new(GET => 'http://www.example.com/'); and usually used like this: $ua = LWP::UserAgent->new; $response = $ua->request($request); DESCRIPTION
"HTTP::Request" is a class encapsulating HTTP style requests, consisting of a request line, some headers, and a content body. Note that the LWP library uses HTTP style requests even for non-HTTP protocols. Instances of this class are usually passed to the request() method of an "LWP::UserAgent" object. "HTTP::Request" is a subclass of "HTTP::Message" and therefore inherits its methods. The following additional methods are available: $r = HTTP::Request->new( $method, $uri ) $r = HTTP::Request->new( $method, $uri, $header ) $r = HTTP::Request->new( $method, $uri, $header, $content ) Constructs a new "HTTP::Request" object describing a request on the object $uri using method $method. The $method argument must be a string. The $uri argument can be either a string, or a reference to a "URI" object. The optional $header argument should be a reference to an "HTTP::Headers" object or a plain array reference of key/value pairs. The optional $content argument should be a string of bytes. $r = HTTP::Request->parse( $str ) This constructs a new request object by parsing the given string. $r->method $r->method( $val ) This is used to get/set the method attribute. The method should be a short string like "GET", "HEAD", "PUT" or "POST". $r->uri $r->uri( $val ) This is used to get/set the uri attribute. The $val can be a reference to a URI object or a plain string. If a string is given, then it should be parseable as an absolute URI. $r->header( $field ) $r->header( $field => $value ) This is used to get/set header values and it is inherited from "HTTP::Headers" via "HTTP::Message". See HTTP::Headers for details and other similar methods that can be used to access the headers. $r->accept_decodable This will set the "Accept-Encoding" header to the list of encodings that decoded_content() can decode. $r->content $r->content( $bytes ) This is used to get/set the content and it is inherited from the "HTTP::Message" base class. See HTTP::Message for details and other methods that can be used to access the content. Note that the content should be a string of bytes. Strings in perl can contain characters outside the range of a byte. The "Encode" module can be used to turn such strings into a string of bytes. $r->as_string $r->as_string( $eol ) Method returning a textual representation of the request. SEE ALSO
HTTP::Headers, HTTP::Message, HTTP::Request::Common, HTTP::Response COPYRIGHT
Copyright 1995-2004 Gisle Aas. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.18.2 2012-02-15 HTTP::Request(3)
All times are GMT -4. The time now is 01:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy