4

Is there a way to tail a resource such as http://someserver.com/logs/server.log ?

This is what I would do for a local file.

tail -F /var/logs/somefile.log

I would like something similar to that for a file accessed through the http protocol

  • 1
    No. Theoretically, you could hack something together using byte offsets and curl or wget, but it'd be horrible. What are you trying to achieve? Perhaps there's a better way, – SmallClanger Apr 25 '13 at 13:08
  • I have a logfile on a url which is my only way to access it. I want a nice way to view it in real-time – Rythmic Apr 25 '13 at 13:21
  • Go for Log Management tools like Logstash ,Awstats, Webalyzer or Splunk.. – Abhishek Anand Amralkar Apr 25 '13 at 13:35
  • I home somebody already tested url-tail – Jin Kwon Jan 13 '15 at 6:47
1

You might use the script from https://stackoverflow.com/a/1102346/401005 if you are able to run php scripts. You should add a flush(); after the echo.

When using curl --no-buffer http://the/url you should have an suitable output

1

This will do it:

#!/bin/bash

file=$(mktemp)
trap 'rm $file' EXIT

(while true; do
    # shellcheck disable=SC2094
    curl --fail -r "$(stat -c %s "$file")"- "$1" >> "$file"
done) &
pid=$!
trap 'kill $pid; rm $file' EXIT

tail -f "$file"

It's not very friendly on teh web-server. You could replace the true with sleep 1 to be less resource intensive.

Like tail -f, you need to ^C when you are done watching the output, even when the output is done.

1

I'm trying htail (https://github.com/vpelletier/htail) and it seems to do the job pretty well.

0

If you want a sentinel program type like I needed ( only update when you respond )

#!/bin/bash

while true; do
    echo "y to curl, n to quit"
    read -rsn1 input

    if [ "$input" = "y" ]; then
        curl $1
    elif [ "$input" = "n" ]; then
        break
    fi
done

Then run curlTail.sh http://wherever

You'll get

18:02:44] $: ~ \> curlTail.sh http://wherever
y to curl, n to quit

When you hit y, it'll curl it, then prompt you again.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.