hacker-scripts README

The project's README from github.com/NARKOZ/hacker-scripts. As one markdown file: README.md.

English | 简体中文

Hacker Scripts

Based on a true story:

xxx: OK, so, our build engineer has left for another company. The dude was literally living inside the terminal. You know, that type of a guy who loves Vim, creates diagrams in Dot and writes wiki-posts in Markdown... If something - anything - requires more than 90 seconds of his time, he writes a script to automate that.

xxx: So we're sitting here, looking through his, uhm, "legacy"

xxx: You're gonna love this

xxx: smack-my-bitch-up.sh - sends a text message "late at work" to his wife (apparently). Automatically picks reasons from an array of strings, randomly. Runs inside a cron-job. The job fires if there are active SSH-sessions on the server after 9pm with his login.

xxx: kumar-asshole.sh - scans the inbox for emails from "Kumar" (a DBA at our clients). Looks for keywords like "help", "trouble", "sorry" etc. If keywords are found - the script SSHes into the clients server and rolls back the staging database to the latest backup. Then sends a reply "no worries mate, be careful next time".

xxx: hangover.sh - another cron-job that is set to specific dates. Sends automated emails like "not feeling well/gonna work from home" etc. Adds a random "reason" from another predefined array of strings. Fires if there are no interactive sessions on the server at 8:45am.

xxx: (and the oscar goes to) fucking-coffee.sh - this one waits exactly 17 seconds (!), then opens a telnet session to our coffee-machine (we had no frikin idea the coffee machine is on the network, runs linux and has a TCP socket up and running) and sends something like sys brew. Turns out this thing starts brewing a mid-sized half-caf latte and waits another 24 (!) seconds before pouring it into a cup. The timing is exactly how long it takes to walk to the machine from the dudes desk.

xxx: holy sh*t I'm keeping those

Original: http://bash.im/quote/436725 (in Russian) (Archive.org link) Pull requests with other implementations (Python, Perl, Shell, etc) are welcome.

Usage

You need these environment variables:

# used in `smack-my-bitch-up` and `hangover` scripts
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_AUTH_TOKEN=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

# used in `kumar_asshole` script
[email protected]
GMAIL_PASSWORD=password

For Ruby scripts you need to install gems: gem install dotenv twilio-ruby gmail

Cron jobs

# Runs `smack-my-bitch-up.sh` monday to friday at 9:20 pm.
20 21 * * 1-5 /path/to/scripts/smack-my-bitch-up.sh >> /path/to/smack-my-bitch-up.log 2>&1

# Runs `hangover.sh` monday to friday at 8:45 am.
45 8 * * 1-5 /path/to/scripts/hangover.sh >> /path/to/hangover.log 2>&1

# Runs `kumar-asshole.sh` every 10 minutes.
*/10 * * * * /path/to/scripts/kumar-asshole.sh

# Runs `fucking-coffee.sh` hourly from 9am to 6pm on weekdays.
0 9-18 * * 1-5 /path/to/scripts/fucking-coffee.sh

Code is released under WTFPL.

hacker-scripts (NARKOZ/hacker-scripts)

Searching Database…

What is this?A comedic collection of sysadmin automation scripts inspired by a viral forum post about a build engineer who scripted away every annoying chore, from faking late-night SSH activity to auto-replying to panicked client emails.
Is this a real toolkit I can drop into my server, or more of a joke?It's a parody collection: scripts like smack-my-bitch-up.sh and fucking-coffee.sh are written for laughs rather than production use, though a few lean on real tools like cron, SSH, Twilio and gmail.
How would I actually run these scripts?You set the required environment variables for the script you want (API keys, SSH creds, etc.), then for the Ruby ones install the needed gems with `gem install dotenv twilio-ruby gmail`; most are meant to be wired up as cron jobs that fire on specific conditions.
What do I need installed for the Ruby scripts?Ruby plus the dotenv, twilio-ruby and gmail gems for sending texts and reading/writing email; other scripts in the collection assume things like a cron scheduler, SSH access, or in one case a network-connected coffee machine with an open TCP socket.
Are these scripts ready to use as-is?No, they're documented from a story rather than shipped as finished tooling, so you'd need to fill in real logic for SMS sending, email parsing, or coffee-machine control before any of them would actually run.
What's the story behind this repo?It started as a Russian forum post describing scripts a departing build engineer left behind, including one that auto-texted his wife excuses for working late and another that rolled back a client's staging database whenever a panicked DBA emailed for help.
Which script is the most absurd?fucking-coffee.sh waits 17 seconds, then telnets into the office's network-connected coffee machine to brew a latte, timed so it's ready exactly when the dev walks over to grab it.
Which topics is it in?meme, satire, sms, fun, cron, scripting, collection, bash, ruby, email, ssh, sysadmin
Creator
NARKOZ
Size
0.1 MB
Stars
49.9K
Updated
CommitAug 07
Age
10y
Commits · 90 Days