How not to sell me your staffing services
*ring ring*
Me: Hello, this is Sabrina.
$(Colleague): Hey, Sabrina, I have a phone call for you. What’s your outside number?
Me: *gives it to her*
$(Colleague): Okay, thanks. I’ll put him through now.
*clicky*
Me: Hello?
$(Recruiter): Hello! This is ICantRead with WellKnownRecruiting Group!
Me: …okay.
$(Recruiter): …
*click*
*ring* *ring*
Me: Hello, this is Sabrina.
$(Recruiter): Hello! This is ICantRead with WellKnownRecruiting Group!
Me: Yes. You just called me.
$(Recruiter): I have some Windows/Cisco engineering candidates I’d like to talk to you about!
Me: I don’t hire Windows or Cisco people. How did you get my contact information?
$(Recruiter): Are you more on the Unix side?
Me: Yes. How did you get my contact information?
$(Recruiter): I talked to your assistant!
Me: I don’t have an assistant. You talked to someone else inside the company and then hung up on me. How did you get my contact information?
$(Recruiter): We must have gotten disconnected!
Me: No, you said “Hello, this is ICantRead from WellKnownRecruiting Group,” and I said “okay,” and then you hung up on me. How did you get my contact information?
$(Recruiter): I talked to your assistant.
Me: I don’t have an assistant. How did you get that phone number?
$(Recruiter): I dialed YourCompany!
Me: But how did you get my contact information?
$(Recruiter): There was a job posting on Simple Hire!
Me: I’ve never heard of that site, but I do have a job posting on Dice, and that one says “No phone calls and no recruiters.”
$(Recruiter): Well, this was on Simple Hire!
Me: That’s nice, but I don’t know what Simple Hire is, and my only job posting says “No recruiters.”
$(Recruiter): So you work more with Linux?
Me: Have a good weekend.
*click*
I assume the approach philosophy here is “if you annoy them enough, they will give in and buy your services just to get you to shut up.”
Using RPM to install SarCheck
In our infrastructure, where I work, we use configuration management to manage our software installs. Since we’re using OpenSUSE, that means (by default) using RPM. I’ve got a YUM repository that I maintain our packages in, and that source is added to zypper as a part of the system tweaks at install time, and then cfengine uses zypper to do installs. It’s actually not half bad at all — now that I’ve learned to love the spec file. (At the outset, I admit, I thought I was doing my usual over-engineering of the solution, rather than merely Doing the Right Thing. Now that it works, though: obviously I was right all along!)
We recently bought licenses for SarCheck, which is a package designed to take your collected system statistics and translate them into plain English, so you can go from looking at statistics like X% blocked read i/o on device D to being told “You should split /var/foo off onto a new disk so it’s not fighting /var/bar for I/O bandwidth.” It’s actually pretty slick. At a previous employer, I used it on several Solaris machines. Now, I use it on Linux. Normally, I would just deploy the software — since there’s no way I want to go and hand-install it on 50 hosts — by dropping the RPM into the friendly local yum repository and rebuilding my indices, then tell cfengine to drop it where I want it to go. The only problem with this plan is that it’s not distributed as an RPM — you’re given a compressed tarball, which installs into /opt/sarcheck.
I really don’t like that part. :)
I’m not normally an enormous stomper and shouter about The Rules and The Standards. I like things to be orderly, but the strength of UNIX is flexibility, after all, right? But. Let’s not be all crazy here. The flexibility is the chocolate inside the delicious candy coating of history and tradition, and yes, standards. The Filesystem Hierarchy Standard is a nice, short one, which most of us already know: /bin is where you put your binaries, /var is for data, and /opt is for add-on packages. Coming back to the original topic, part of the deal with SarCheck is that, in the tarball as distributed, it writes data files within /opt/sarcheck — it stores information on the stuff it gets out of /proc to analyze, and it optionally can also store ps output for analysis. This is, I think, data that should not be living on /opt — especially since most of my systems have /opt on /, and I don’t want data living there. (Rest assured that any criticism you’d like to level at my site after that revelation has already been made.)
So now, not only do I need to get this tarball into an RPM — oh, I didn’t mention the part where it’s not open source, did I? It’s not open source. — but I also need to go mucking around in its innards.
Read the rest of this entry »
Top of page | Leave a comment »
Link roundup
Some useful stuff:
- Tools of the Trade — Iostat, Vmstat, and Netstat - article at the now-defunct SysAdmin magazine about using the named tools to troubleshoot performance issues. Good intro if you’re unfamiliar; syntax used is for Solaris and AIX.
- Sharding and Time-Base Partitioning - article from MySQL Performance Blog discussing aspects of dividing data horizontally to scale performance.
How to make your hiring manager cry
I feel a little let down. You see, I’m hiring for an open sysadmin position, and … it turns out that it is hard work. Curse you, recession, keeping everybody from wanting to job-hop willy-nilly!
Over the past couple of weeks, I’ve posted the job to LOPSA and Sage’s job boards. (Representin’ my sysadminly peeps, yo.) I even posted to chi.jobs (eek!). I pinged via linkedin, I pinged via people I drink beer with. I pinged and pinged and generally looked sad and overworked yet hopeful. The only firm ping I’ve gotten in return, however, was a cold-calling recruiter who wanted to pitch some of her candidates to me. So today I used our corporate account and posted to Dice. And then… I started browsing resumes.
Ai yi yi! So many typos. So many people claiming proficiency in the programming language “Linux.” So many with vi skills. (Guys. I am a vi user myself. I love me my visual editor. Still… it is a text editor. It’s like saying that, as a car driver, you have experience with moving the shifter. — Now, if you were a coder and you were badass with lisp, I could see listing emacs. But let’s be real. It’s vi. It’s not that hard.) Aieee. Also, if the only employment experience you are listing is a two-year stint as a student employee at your college help desk, don’t insult me: you do not have 10 years professional experience with Linux. I’ll accept that you may have been playing with it since you were 10, but you probably weren’t doing it 40 hours a week, okay? (And if you were, someone needs to arrest your parents.)
Someone. Save me. Get me an awesome mid-level sysadmin candidate who knows the difference between RPM and .deb. Please. Save me from reading more of these resumes before my mind numbs over for good.
I signed up for a job seeker account as well, so as to scope out the competition. Seems like there are a bunch of “unique,” “prestigious,” and “fast-paced” trading firms hiring out there. I was tempted to rewrite my posting to call us “fun,” “laid-back,” and “awesome yet not stuck up about it,” just to taunt the other guys. I didn’t, though. That would have been snarky. (Also, my posting already has more personality than theirs out of the gate — especially the one that started out with the slightly hostile note, “We do NOT accept unsolicited calls - we ONLY talk to candidates with an appointment - We frown unfavorably on this!” Yeahhhh… I’m totally gonna want to work for you, Ms. Frownypants.)
So, after a brief brush with unpleasant reality (what… you mean qualified, ideal candidates aren’t just going to fall into my lap?? NO FAIR.), this is where I am at. Grumbling about typos and wishing.
Star light, star bright
First star I see tonight
I wish I may, I wish I might
Hire a freaking sysadmin before I die of old age.
ObRelatedLinks: The Top Eight Ways Your Resume Disqualifies You For My Open Job Posting (my blog), 36 Beautiful Resume Ideas That Work (JobMob), How to Edit Your Resume like a Professional Resume Writer (Brazen Careerist).
Top of page | Leave a comment »
Honestly.
Why does it always fall to a Friday evening for backups scripts to go bonkers? I ask you. Sheesh.
Sanifying config files with m4 (Part IV of IV)
This post continues from Part III.
Pull it all together
So, from this point, we have discussed defining macros and iterating over them, using macros as a poor-man’s function, including other macro files and using shell scripts to provide processable output, and working through switch statements with ifelse().
Now let’s build ourselves a config file.
Sanifying config files with m4 (Part III of IV)
This post continues from Part II.
In case of emergency, … print some strings
Let’s work on a switch statement next: things you want to have different values based on whether or not some condition is true. A typical example is a simple init script.
Top of page | 2 Comments »
Bummer.
You know what stinks?
I’m missing my second-to-last baseball game of the season because I have to babysit a stinking backup job, which is failing. A lot.
Stupid backups. Stupid NFS. Stupid broken error checking. Stupid slow remote WAN links. Stupid me for finding the problems on a Friday night when I had plans!
Cool boss tricks
Belatedly, in honor of National Boss’ Day, here’s a short list of things I liked that some of my previous bosses did.
1. “H—– Day.” My boss J. would sometimes pick a slow day and randomly announce it as a holiday, naming it after himself. I always said that if I became a manager, someday I would throw a H—– Day as well. (Not just because H—– Days often involved baseball…though that is definitely a plus.)
2. Office hours. My boss G. (the CTO) had half an hour of his schedule in each week which was designated as one employee’s face-to-face time slot. We didn’t necessarily meet every week, but it was really nice to have a set timeslot that, if you wanted, you could just stop by and talk about projects or whatever else was on your mind.
3. The IT priorities list. Same boss, G., had a single Excel spreadsheet with everything that all the groups (web, sysadmin, db, etc.) were working on. Every Friday, there was an hour-long meeting in which all the requesters met with the IT heads and bickered over who got dibs on IT’s time. I always thought that was clever — everyone always knew what other things were on deck, so if you got stuck on your top priority you could just jump down one, and nobody was ever yelling for things to be done out of order because you were aware of the reasons why someone else’s project got dibs on IT’s time. Furthermore, you had to jump through documentation hoops to get a chance to put something on the list at all, so there was a barrier to entry which prevented one’s whimsy from wasting our time.
I don’t think I’ve developed any cool boss tricks of my own yet. I’ve tried and discarded several ways of tracking projects, but in the end I always come back to my own version of the IT priorities list. The closest to H—– Days I’ve come is sending people home early a couple of times on slow days. (And the first time I did so, I was thwarted: my team was all involved with things they didn’t want to stop working on.) So, it’s still a work in progress. Sooner or later I’ll wind up with a management style of my own, I suppose, if only by accident!
Top of page | Leave a comment »
Sanifying config files with m4 (Part II of IV)
This post continues from Part I.
Breaking up is hard to do
The first thing to take on is the ordinary config file. Look at it and mentally chunk it up into logical bits — for example, configuration options that are determined by what subnet a host is on, or by what NIS domain it uses, or what applications it runs: those are all things that can be logically put together based on one thing, the subnet. Break those chunks out into their component files. Don’t worry about being neat or bother with making any macros yet, just chunk up the literal config file.
Top of page | 2 Comments »
Next page »