Skip to main content
===============================
s3tail
===============================

.. image:: https://img.shields.io/pypi/v/s3tail.svg
:target: https://pypi.python.org/pypi/s3tail

.. image:: https://img.shields.io/travis/bradrf/s3tail.svg
:target: https://travis-ci.org/bradrf/s3tail

.. image:: https://readthedocs.org/projects/s3tail/badge/?version=latest
:target: https://s3tail.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

.. image:: https://pyup.io/repos/github/bradrf/s3tail/shield.svg
:target: https://pyup.io/repos/github/bradrf/s3tail/
:alt: Updates


S3tail is a simple tool to help access log files stored in an S3 bucket in the same way one might
use the \*nix ``tail`` command (with far fewer options, most notably the lack of ``follow``).

* Free software: MIT license
* Documentation: https://s3tail.readthedocs.io.

Simplest install method is via ``pip install s3tail`` (see installation_ for other methods).


Features
--------

S3tail downloads and displays the content of files stored in S3, optionally starting at a specific
prefix. For example, the following will start dumping all the log file contents found for August the
fourth in the order S3 provides from that prefix onward:

.. code-block:: console

$ s3tail s3://my-logs/production-s3-access-2016-08-04

When s3tail is stopped or interrupted, it'll print a bookmark to be used to pick up at the exact
spot following the last log printed in a previous run. Something like the following might be used to
leverage this ability to continue tailing from a previous stopping point:

.. code-block:: console

$ s3tail s3://my-logs/production-s3-access-2016-08-04
...
...a-bunch-of-file-output...
...
Bookmark: production-s3-access-2016-08-04-00-20-31-61059F36E0DBF36E:706

This can then be used to pick up at line ``707`` later on, like this:

.. code-block:: console

$ s3tail s3://my-logs/production-s3-access-2016-08-04 \
--bookmark production-s3-access-2016-08-04-00-20-31-61059F36E0DBF36E:706

Additionally, it's often useful to let s3tail track where things were left off and pick up at that
spot without needing to copy and paste the previous bookmark. This is where "named bookmarks" come
in handy. The examples above could have been reduced to these operations:

.. code-block:: console

$ s3tail --bookmark my-special-spot s3://my-logs/production-s3-access-2016-08-04
...
^C
$ s3tail --bookmark my-special-spot s3://my-logs/production-s3-access
Starting production-s3-access-2016-08-04-02-22-32-415AE699C8233AC3
Found production-s3-access-2016-08-04-02-22-32-415AE699C8233AC3 in cache
Picked up at line 707
...

It's safe to rerun s3tail sessions when working with piped commands searching for data in the stream
(e.g. ``grep``). S3tail keeps files in a local file system cache (for 24 hours by default) and will
always read and display from the cache before downloading from S3. This is done in a best-effort
background thread to avoid impacting performance. The file cache is stored in the user's ``HOME``
directory, in an ``.s3tailcache`` subdirectory, where the file names are the S3 keys hashed with
SHA-256. These can be listed through the use of the ``--cache-lookup`` option:

.. code-block:: console

$ s3tail --cache-lookup s3://my-logs/production-s3-access-2016-08-04

my-logs/production-s3-access-2016-08-04-23-20-40-9935D31F89E5E38B
=> NOT IN CACHE
my-logs/production-s3-access-2016-08-04-23-20-45-D76C63A0478F829B
=> NOT IN CACHE
my-logs/production-s3-access-2016-08-04-23-20-51-C14A8D0980A9F562
=> NOT IN CACHE
...
my-logs/production-s3-access-2016-08-04-23-24-02-C9DF441E6B14EFBB
=> /Users/brad/.s3tailcache/05/0536db5ed3938c0b7fb8d2809bf8b4eb1a686ba14c9dc9b09aafc20780ef0528
my-logs/production-s3-access-2016-08-04-23-24-10-E9E55E9019AA46D0
=> /Users/brad/.s3tailcache/d1/d1c8b060d7c9a59c6387fc93b7a3d42db09ce90df2ed4eb71449e88e010ab4a8
my-logs/production-s3-access-2016-08-04-23-24-58-28FE2F9927BCBEA3
=> /Users/brad/.s3tailcache/46/46de81db7cd618074a8ff24cef938dca0d8353da3af8ccc67f517ba8600c3963

Check out usage_ for more details and examples (like how to leverage GoAccess to
generate beautiful traffic reports!).


Credits
-------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project
template.

.. _installation: http://s3tail.readthedocs.io/en/latest/installation.html#installation
.. _usage: http://s3tail.readthedocs.io/en/latest/usage.html#usage
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage

.. raw:: html

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-84482808-1', 'auto');
ga('send', 'pageview');
</script>


=======
History
=======

0.2.1 (2016-12-27)
------------------

* Documentation.


0.2.0 (2016-12-27)
------------------

* Add gunzip for \*.gz files found (based only on extension name for now).
* Save configuration using ConfigStruct w/ overridable values.


0.1.7 (2016-09-18)
------------------

* Fix incorrect final bookmark when no more logs to read from key.


0.1.6 (2016-09-12)
------------------

* Documentation.


0.1.5 (2016-09-12)
------------------

* Documentation.


0.1.4 (2016-09-11)
------------------

* Fix bug in prefix matching when using named bookmarks.
* Added timestamps to logs.


0.1.3 (2016-09-11)
------------------

* Added "named" bookmarks to pick up automatically from last position when possible.
* Added option to disable cache entirely.


0.1.2 (2016-09-07)
------------------

* Better perf when reading from cache.
* Improved docs.


0.1.1 (2016-08-29)
------------------

* Refactor into classes and provide some minimal docs.


0.1.0 (2016-08-25)
------------------

* First release on PyPI.

Metadata

Release files for s3tail 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for s3tail 0.2.1
File Size Uploaded
s3tail-0.2.1.tar.gz 22.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for s3tail 0.2.1
File Interpreter ABI Platform
s3tail-0.2.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 38.0 kB

Release files / s3tail-0.2.1.tar.gz

Download URL s3tail-0.2.1.tar.gz
Size 22.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e739a72573fcb5af6fd4b5f1149beba94b0f62d1a3729441b71bbe6101dfa248
BLAKE2b-256 checksum
How to use checksums
d4db540e25990adf963a00ca4fdf7499aec5dfea0fc9d212e5e30f7a337db7e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / s3tail-0.2.1-py2.py3-none-any.whl

Download URL s3tail-0.2.1-py2.py3-none-any.whl
Size 15.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
693eb8986eee5b5a6ff2402ed040cd57e8a858a2b696a1c108379b42f9e4e63b
BLAKE2b-256 checksum
How to use checksums
4071068c1bbc57ea303d96731fd23fc266337db53f9c159dc65c704537fc49cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page