Top 10 Things a Good Systems Administrator Should Know
After having worked in IT for a pretty long time now, I keep running in to people who call themselves admins and then make rookie mistakes. This is my list of things that I think every admin should know; it will be a little Windows biased, but even in this day and age, that's okay.
This one is a little vague, on purpose. Regardless of whether you're talking Linux, OSX, or Windows, knowledge of file permissions is absolutely necessary to the functioning of whatever you're administrating.
I can't count how many times I've seen an admin struggling with a script that won't executing because it is not marked executable, or a website that won't render because one of its files are unreadable by the web server user. Have the good sense to check.
How to Script
Don't do things by hand that you can automate. Ever.
The business world today will keep heaping things on you until you break. This is just business, or so they say. Don't think it's not worth the time; it's a waste of time to do things by hand that can be done by a computer. Here's the rule: if you're only doing it once, just do it. If you're going to do it every day, automate it and walk away.
Big business or SOHO, you need to know storage. This isn't just knowing how much space you've got on your hard drive, it's knowing how much you'll need, how much you're using every day. It's keeping those things backed up. And it's learning about the technologies available to you and your business. These are things like CIFS, NFS (file level storage), iSCSI, Fiber Channel (Block Level), Infiniband (Why are you reading this?). Knowing what technology to apply and where is essential to being a good admin.
The stepchild. No one cares about backups when everything is working, but if they're not there when there's an outage, you're fired. Take the time out to make sure they're working correctly. Test them and verify they work. One good outage not covered by a backup will mean your job, even if you're the sole employee.
There are two kinds of admins (no, I'm not going to make that terrible binary joke here), those who understand what they're doing, and those who have a memorized bag of tricks. Guess which one is really valuable?
The process of your career should literally be coming to understand how your memorized bag of tricks actually works. That will only come with working, reading, and learning. Don't ever settle for knowing a bag of tricks. Keep reading.
If you're a Linux guy, learn Windows. It's not hard. If you're a Windows guy, learn Linux. You'll get there. If you know both, pick up OSX. Or take it a step further, and learn AIX, or HP-UX, or Solaris. Don't settle for knowing just what you already know; working in a different environment is like learning a new language, it gives you insight in to the OS you already learned.
Organization and Documentation
This isn't 1999, and you aren't Wyatt Earp. The days of the Wild West of Administration are long gone, and it's past time you learned how to keep things organized. There is nothing worse than showing up to a new job and finding a stack of servers with non-descriptive names and no documentation. Or, worse yet, stacks of unrelated services on a single server. Keep things well-documented and organized, or your antecedents will curse your name forever.
Play Nice in the Sandbox
It doesn't matter if you're the most skilled IT guy on the planet; no one's going to want to work with you if you're constantly snapping at everyone. Try to show you can play ball and be part of the team or you're going to end up relegated to the scrap heap of history, much like that junk room your department has that's filled with dot matrix printers.
Too many admins grow an "IT Ego" that's difficult to work with. Try growing out a beard and get some sandals and practice some Unix guy Zen.
Work to Make Things Better
You're an administrator, right? You maintain the status quo, it's built in to your job title, for heaven's sake. But, no, don't be fooled. Just because this is how it has always been doesn't mean this is how it must be. Look around, what can you do to make your environment *better*? Take the time, identify those things and work to implement them. Remember to test them first, though, and keep a close eye on how they turn out.
You can't fix problems if you don't know what's broken. Keep on top of monitoring; as you add new services, keep adding monitors to keep track of if they're working or not. The more you do to keep tabs on what's happening in your environment, the quicker you'll be able to fix things and the more useful you'll be.
Work hard to do your best. Work hard to understand your environment, and try to find ways to make it better. Be the kind of person who contributes to the busines overall.