Molly-guard to save the day

If you have one or multiple boxes running somewhere at a remote location and you manage them trough ssh, you’re possibly familiar with the following situation.
It has been a long night.
On your desktop there are multiple terminals gaping in the dark.
During the whole night, some of these dark ships transported you to far remote playgrounds and back.
The other  ones were mere destined for local hocus-pocus.
But it’s time to call it a day and go to bed.
You fire away the ‘poweroff’ command just to realize a fraction of a second later that this was the window to your homebrew webserver…

But it’s too late.
The connection is lost and the machine has no wake on lan…
Now you have to get out of your chair, find those damned pants and go all the way up to the attic to switch it back on.

No one likes this horrible situation. So Molly-guard is here to save the day.
Molly-guard is is a bunch of scripts that capture the halt, reboot, shutdown and poweroff  commands and give you a second chance.
By checking if the tty has been created by sshd, it checks whether you’re logged on from a remote machine.
If that’s the case, molly asks you the hostname of the machine you want to shut down.
If the hostname you entered does not match the hostname where Molly is running on, you’re saved 🙂

You might think this is a silly tool, but after a long time of silence, I’m back to using my home server and just saw this screen:

A little cool thing to know:

A shield to prevent tripping of some Big Red Switch by clumsy or ignorant hands. Originally used of the plexiglass covers improvised for the BRS on an IBM 4341 after a programmer’s toddler daughter (named Molly) frobbed it twice in one day. Later generalized to covers over stop/reset switches on disk drives and networking equipment. In hardware catalogues, you’ll see the much less interesting description “guarded button”.

— http://www.catb.org/~esr/jargon/html/M/molly-guard.html

Molly-guard man page from ubuntu: here

Leave a Reply

Your email address will not be published. Required fields are marked *