What a weekend. I fired up my Debian laptop last night and things seemed wonky. When I tried executing basic commands they weren’t found. I couldn’t vi, sudo, nothing. When I rebooted the drive was DOA. The system kept saying “Checking media” and then it’d fail. I tried disconnecting and reconnecting but it was screwed in place so it couldn’t have come loose. Nothing seemed to work. I guess the drive went to the big ether in the sky.
Month: February 2016
Linux Command Line and Shell Scripting Bible
This is the third edition of the book and I’ve been well pleased with it. The first part of the book is dedicated to the command line and gaining familiarization with the various commands, file system, navigation, etc. The real meat of the book begins with part 2 where you actually start scripting.
As a software developer by trade, Linux scripting is something that I find myself naturally drawn to. All of the systems I utilize at work aside from my desktop run Red Hat Enterprise Linux so I spend a great deal of time in terminal sessions. Many of the things I do are extremely repetitive and while I can’t (due to security limitations) put custom scripts in every environment I’m slowly working on a library that can help be do those mundane tasks quickly and with reproducible results.
Part 3 covers advanced scripting and the use of tools like sed and awk. Both of these along with regular expressions play a big role in my daily work. I really can’t imagine how difficult it would be for me to evaluate logs and generate reports for executive management without tools like these to make the job significantly easier and faster. I can easily scan massive business logs for key errors and use awk to generate an extract of the critical information I need to review. sed is a great tool when I need to make wholesale changes to configuration files as an example.
Part 4 gets you creating more real-world scripts. You’ll learn how to do things like archive logs. This is a big part of how our system is setup. We only keep a few days’ worth of logs “active” due to their size (we have an extremely high-volume application). Everything else gets compressed and archived to another location. You’ll also learn how to generate reports that can interact with the web, databases, etc.
There are a ton of books on scripting under Linux out there but this is one of my favorites.
# ./cli-book.sh I <3 the book 'Linux Command Line and Shell Scripting Bible'
OpenSSL
This is a nice (and one of the few) printed resources available on the subject of OpenSSL. It’s a bit dated with a publishing date from 2009 but the general concepts are still the same. You’d certainly do well to read up on the latest versions of the toolkit since there have been a number of security remediations since this book was put out.
I won’t belabor the internals since you can read the table of contents online. I found it to be a good resource for such things as the OpenSSL command line interface, PKI info, and public key algorithms. Again, the latter is dated since it covers topics like Diffie-Hellman which is a weak cipher that most companies are dropping support for in their web tier’s cipher suite.
While you can find the latest info online, I sometimes like to have a physical reference that I can carry around with me. I guess I’m a little old school in this regard but as much as I love my tablet sometimes nothing beats having a real book in your hands.
Blinky Lights and More
This post is actually a little late in coming. So many projects, so little time. Several weeks ago I decided I wanted to engage my son in learning electronics. We’re on the cusp of entering middle school and one of his prospective schools apparently has a great electronics focus. I owe my dad for my current livelihood and hope to pay it forward.
Are You a Puppet?
So I’ve never cared much for the whole DevOps thing and I sort of snicker when it’s mentioned at the office but hey, I get that it’s one of the cool new buzzwords. I get that it makes managing a ton of servers considerably easier even if it means (as a developer) that I have to remember to disable the agent when I’m playing around or my changes will be overwritten. I decided that even though it’s not really part of my playground, my servers are all controlled by the Puppet master and it might be good to have a working knowledge of what it’s doing.
My Macbook is Screaming!
I’ve been teetering at the edge of my Macbook Pro’s hard drive limit for a while and completely ran the 500GB drive down to 0 bytes free once. I’ve been wanting to upgrade to SSD for a long time but I didn’t want to just swap it out for a similarly sized drive. Unfortunately, the prices of larger drives continued to be more than what I wanted to pay. Finally, after a long wait, my vision was to be realized.
Updating SSH Key List
While playing around with x2go tonight I realized I’d missed a critical step so I thought I’d share it here in case you run into the same problem. When I added my default (id_rsa) public key to the session configuration and enabled auto-login I was prompted several times to enter the passphrase. Unfortunately, the default key doesn’t have one. Rather than creating a new one that I’d have to update wherever it’d be used I opted to create a new key that included a passphrase. No problem, right? Right.
Sharing SSH Keys
Oooh boy work has been insane. I can’t believe it’s been so long since I updated anything. Not that I haven’t been studying, of course. Unfortunately, though, I’ve been so tied up I didn’t meet my goal of getting certified by the end of 2015. So I’ve adjusted that to 2016. 🙂
I’ve been playing around with stuff like GitLab and Github and so tonight I setup my own GitLab server. I decided I wanted to be  a good Linux citizen and use SSH keys instead of passwords when I hit a stumbling block I’d forgotten. My Mac doesn’t include ssh-copy-id. Thanks Steve.