The sys admin's daily grind: Snoopy
Guide Dog

Sometimes sys admin Charly needs to know when exactly he did something ingenious on one of his servers. Finding an infallible memory aid is difficult, you might think. "Peanuts!" says Charly.
At work, I'm sometimes plagued by annoying gaps in my memory: What exactly was the name of that neat tool that I used to flash the LEDs on a specific network adapter to help me find the NIC in the rack? Or: How exactly did I delete all files that were more than a week old in a directory? The answer to all of these questions is in the Bash history, but Murphy's Law dictates that the history is always a little bit too short. And, in my case, there's another degree of uncertainty: Which server did I do this on?
Snoopy potentially offers a solution. The small library with the dog's name, wraps around execve()
and always wakes up when the computer runs a command. Many distributions have Snoopy in the pen, but if not, GitHub [1] will help you out. To enable Snoopy at boot time, you need an entry in /etc/ld.so.preload
. I added the following line: /<path>/snoopy.so
. The path is typically lib
. If you are building Snoopy yourself, the library is likely to be found in /usr/local/lib/
or something similar.
Building Snoopy yourself does offer some benefits. For example, you can edit the snoopy.h
header file in the source up front. If you enter
[...]
Buy this article as PDF
(incl. VAT)