Thursday, December 16, 2010

Public Shellsink instance shutdown

I've turned off history.shellsink.com. It makes sense since all the source code is in launchpad, and since hosting your own private shellsink on appengine is free. Anyone still using shellsink can migrate to their own private shellsink server. And now I can stop paying for the domain name and storing people's shell commands on my appengine account. Thanks to everyone who contributed to the project.

Thursday, December 9, 2010

Introducing shell_sink


What is it?

Shell Sink is a web accessible version of your bash history. Commands issued in bash are sent to shell_sink by a simple open source client application. Once a command is in shell_sink you can search, annotate and tag it.

Why use it?

If you've ever wasted time trying to remember a particular command line incantation, shell_sink is for you. It stores commands and makes them easily accessible with searching and tagging. If you work on multiple computers shell_sink can aggregate your history across all machines. System administrators can even use it to aggregate commands issued across an entire organization making them fully searchable. Never lose a command again.

Who should use it?

shell_sink is for anyone with a unix system. Linux, BSD, OSX, Solaris, Playskool. It should be noted that shell_sink is currently under active development.

Getting started:

  1. Login to shell_sink with your google account.
  2. Copy your unique id from the Preferences page.
  3. Install the client application.

Questions, Issues:

The shell_sink google group is the place for questions and discussion. The bug tracker is where to put your feature requests and issues pertaining to the shell_sink website. The client is open source software. Source code can be found here.

Sunday, November 28, 2010

Installing the shell_sink client application


Installing the sink client should be a snap. There are only 2 steps:
  1. Install the shellsink-client application
  2. Configure a couple environment variables
The client is a python application that you can call from the command line to asynchronously upload a command and relevant tags to the shellsink server. When properly configured it will run behind the scenes every time a command is issued. It can also be easily disabled or enabled for times you don't want to log commands. Here are detailed instructions for installation:

Debian Based Distributions
If you have a Debian based distribution you can install shellsink-client by adding the shellsink repository to your apt sources. Go to this page for instructions and follow the instructions under the link that says "Technical details about this PPA." Once you have added the shellsink repository you can update your package lists and install the client with
sudo apt-get update
sudo apt-get install shellsink
Finally, you must append this file to your ~/.bashrc to enable the client. Be sure to replace the default tags with your own meaningful tags and most importantly set the default id to whatever you see here.

Other Types of Unix
For other flavors of unix you can download the shellsink-client executable here and put it in your path. Once the client is installed you must set a few environment variables. Append the contents of this file to your .bashrc or .bash_profile. If you use zsh see this how-to. Be sure to change the id variable to be the one that was assigned to you by the shellsink server on the preferences page. Also change the tags. I always start with the name of the host machine as my base tag so I know which computer logged which command.

Finally, just close your terminal and reopen it. Type a command and go see if it has been logged to the shell_sink server.