icon

alscan — motivation

alscan > Explain

Why does alscan exist?

The alscan tool was developed based on my experience working for a web hosting company. A recurring task is such companies is diagnose system failures. The web-server access logs are a valuable source of information for such an investigation.

A "one-liner" was a bash pipeline command we were allowed to use to create and pass-on to other admins. The existing text-based tools (grep, awk, comm, etc) are sufficient for simple analysis. The complex parsing required to extract important information complicates the creation of accurate "one-liners".

Given the need, I decided to create a tool. It would parse one or more access logs, extract the important data, and report on that data. I called it alscan. I wanted it to be easy to install. A single file which could be copied to any linux system we may be investigating. I wrote a program in C++. It compiled to a staticly linked executable. No other installation requirements.

I was told "No one at the company could read C". My reply that "The tool was in fact written in C++" was not well received. No one at the company could review the code, so it was never approved for use. (I was working as an admin, so who would believe I could manage to open a file in read-only mode).

I was told that the only option for a real tool was Perl. But that if I had to, I could use Python. Since my love of Perl knows its bounds I selected Python for the second implementation. I left the company after I submitted it, but before it was approved. I have no idea if it was used or not.

The whole episode reminded me that I love to write software, so I should go back to it. I decided it was time for an Open-Source version of alscan. The current implementation is in TypeScript.

I don't have a daily need for the tool any longer. I hope someone else find a use for it.