Jargon

Overheard at the grocery store yesterday: “Oh my God, Doug, there you are. We’ve been trying to find you. They need the M-O-D at the service counter, there’s a lady there going absolutely nuts.” I’d been listening to them page the M-O-D for ten minutes, and I’d been watching this guy help bag groceries for five. “What’s the M-O-D?” he asked. “Manager on Duty,” said in the snottiest voice she’d talk to her boss in. “That’s you.” I bet if they’d paged a MANAGER he would have responded. Which makes me think about all the jargon I use on a daily basis. Given that people won’t generally ask for clarification when they don’t understand something because they don’t want to …

Read More

Just Because You Deleted A File Doesn't Mean It's Gone

I ran into a case the other day where someone was reporting an operating system bug. A filesystem was 98% full, but an examination of that filesystem showed that it should only be 25% full. It isn’t a bug. In order to understand why it isn’t, we need to know something about how files are stored, and then how they are deleted. A good place to start is the basic structure behind a UNIX-style filesystem, the inode. According to Wikipedia: an inode is a data structure on a traditional Unix-style file system such as UFS. An inode stores basic information about a regular file, directory, or other file system object… Each file has an inode and is identified by an …

Read More

UNIX Practical Jokes

Robert Crawford has a post over at Server Specs about practical jokes for mainframe programmers. That got me thinking about all the stuff that I’ve been witness to: The ever-classic snapshot of my desktop as my desktop background. Yawn. Tape over the laser emitter on my mouse. Double yawn. Setting a user’s shell to a copy of Eliza. Setting a user’s shell to an emulator of another OS. Setting a user’s home directory to a floppy disk. Setting the shell prompt creatively, or very long, or very short. Setting the shell prompt with bell/^G characters in it. I currently don’t remember how this was done, probably echoing something into a .profile. Setting the resource limits for a user to very …

Read More

Java SE for Business, Software Longevity

I noticed Sun’s “Java SE for Business” today. You pay money and you get 15 years of support for each release family, plus some advanced tools for updating desktops. Dealing with old versions of the JDK/JRE now has another option, instead of the two classics: paying staff to upgrade everything, or doing nothing and risking security & support problems. 15 years boggles my mind, though. I often joke that technology years are worse than dog years, as far as obsolescence. 15 years for a technology is 105 years in some other industries. As I think about it, though, this is pretty cool. Especially since technologies like virtualization remove reasons to upgrade. I have always used hardware replacement cycles to push …

Read More

One Part at a Time

Once upon a time in my parents’ garage I learned that the best way to change a distributor cap[0] is to take a spark plug wire off the old one and immediately plug it into the right socket on the new cap. That way you don’t get wires mixed up and cause problems. As it turns out, that method works great for computers, too. I had to swap system boards in one of my servers the other day, and setting them up next to each other was great. Take a part off the old board and immediately place it on the new one, which avoids damage and confusion. Since I’ve been digging around in the guts of machines for years …

Read More

Dell TOE Key

I had the opportunity/task today of replacing a Dell PowerEdge 1950 system board. A voltage regulator was dying and taking the machine with it. I hadn’t actually seen one of their integrated TCP Offload Engine keys before, and they’re interesting, if not a bit small. Go RJ11! Personally, I like bigger parts, so when they fall on the floor I can find them again. Not that I ever drop anything. Nope. Never.

How Do You Find The Number of CPU Cores on Linux?

I have a script I want to make decisions based on the number of CPU execution cores in a machine. Of course, in order to make a decision the script first needs to find the number of cores in a machine. Problem is: how exactly do you do that? What an OS thinks is a CPU isn’t always a CPU, thanks to HyperThreading. You could look at /proc/cpuinfo, but there isn’t anything there that tells you if a CPU core is real or a HyperThreading fake. You could use dmidecode, but that’ll just count sockets, and you won’t know about the cores or HyperThreading. In the end, you could just leave it to Intel to write sample code for you …

Read More

Ksplice: Rebootless Kernel Patching

As a system administrator one of the biggest pains in my duff is scheduling reboots when kernel patches need to get applied. Enter Ksplice, a way for kernels to get patched without a reboot. Of course, the caveat: To be fully automatic, Ksplice’s design is limited to patches that do not introduce semantic changes to data structures, but most Linux kernel security patches don’t make these kinds of changes. This would be perfect for a distribution like Red Hat Enterprise Linux where great pains are taken to not change data structures, in order to preserve the kABI. Maybe the folks at Red Hat will be kind and put this in Enterprise Linux 6… PLEASE?!?

I Still Use Zmodem

On average I create a new Zmodem user every month. Yes, that Zmodem. The protocol you used on BBSes in the 1990s. The thing is that my SSH client, SecureCRT, supports Zmodem. So when I want to retrieve a file I type “sz” followed by a filename and it shows up on my desktop. How easy is that? A number of people I support need easy ways to move a file from their desktop to various Linux hosts. They always ask for Samba, but running Samba to copy a couple of files every once in a while seems like overkill. Zmodem comes to the rescue again. No sftp clients to explain to people, no worries about security since it’s over …

Read More

Upgraded My Mail Client… To Alpine

A few months ago it was revealed here that I used Pine as my email client. I was mocked by all, especially since the problem I was complaining about ultimately turned out to be a problem with Pine itself. I would like to report that I have seen the light: I have upgraded to Alpine. It looks just as sexy in green-on-black terminals as Pine did. Props to the UW for releasing it under an open source license, as well as retrofitting it with the autoconf system. To preempt this round of mocking I say that as a sysadmin I spend a lot of time using SSH, and Alpine fits nicely into that. I use VanDyke’s SecureCRT for all my …

Read More