> Home > Scripting

My published scripts are available on github under a GPL license.


Birdseye is a comprehensive system inventory script for Linux systems.

It gathers data on how Linux sees your hardware, firmware, software and system state using over 125 different commands that answer hundreds of questions about the system.

Birdseye produces an HTML5+CSS format report file that can easily be viewed, navigated and searched in any modern browser


'knife' is Chef software's command for executing commands remotely on one or more systems. It is normally used with command line options to specify the user that will execute programs on the remote system and that user's plaintext password. Putting plaintext passwords on the command line means others nearby can learn them and attackers can steal them your terminal's history files.

Santoku is a wrapper for knife that allows users to pre-define Chef installations and the users that will run programs on remote systems. When Santoku needs a password, it pulls it from an encrypted key file using the 'pass' open source program.

Users get the same functionality as 'knife' but in a more secure manner'

Santoku also helps prevent mistakes of executing commands on the wrong remote systems. A user might have several 'prod' Chef enviornments: once east, one central, one west. If they accidentally tell knife to purge files in "tag:accounting-nfs" nodes they might impact the east group when they wanted west group. With Santoku, you name the chef group for each execution such as "santoku east-coast-prod 'tag:accounting-nfs'". You can still make mistakes, but its more difficult.


This allows me to backup my most important, often non-replaceable data from my laptop to external storage with minimal effort.

Users pre-define important directories in a configuration file as well as multiple targets where storage of backups may be written.

The user then runs vital-backup (with no parameters or effort) and all the important directories will be backed up to any available pre-defined targets. So a single vital-backup execution might copy 30 directories to a mixture of USB memory stick, USB SSD or HDD, or NAS NFS share.


Safe allows users to open encrypted, embedded filesystems stored within normal Linux files using LUKS encryption.

This allows users to open a 'safe' (encrypted filesystem) and access those files with normal tools. Users close the safe when they're done and the contents are hidden from malware, other users, etc.

Safe uses a configuration file to define secure datafiles and makes the process of open and closing them easy.


Position repositions and resizes defined windows on a Linux display.

By defining programs, sizes and location data within a configuration file once, a user can run position to have windows automatically put in their right place depending on whether they are working on a single small laptop display, a single external monitor, a pair, etc.

Linux isn't so good at adjusting as displays change or putting things back where they were, so this is a step to work around that.


Coding launches Linux gnome-terminal windows in specific sizes and shapes. I use Gnome ".desktop" files to define keywords that launch terminal windows positioned in a specific place at a specific size. The reward of this is a smoother workflow where I can go from idea to open window that doesn't need to be resized or repositioned and is immediately ready for work.


nas mounts and unmounts NFS mounts from my NAS file servers. It's configuration file driven, so I define the NFS shares and their local mount points once then just 'nas mount' to mount them all in their proper place.


'nics' is a simple bash script that produces a summary of your Linux system's network interfaces in table form. It's an easy and friendly way to get a quick summary of each device's name, state, IP address and the traffic it's served.


A simple tool to report the most important (to me) attributes from storage devices S.M.A.R.T. self-monitoring data.