Sunday, March 2, 2008

Admin Daily

Daily system administration can be a huge chore. Administrators can work with Microsoft Windows, Unix/Linux, Mac's, or a combination of the three. Besides all of the desktops there are file servers for centralized file storage and sharing and print servers for sharing and managing printers. Additionally there are usually an assortment of database, web, and application servers. Behind all of these servers and desktops there are the hidden network services that a lot of times are overlooked until they are needed, including backups and security.

The real trick is figuring out how to manage all of these systems as a whole rather than as individual units. Otherwise it would take an army of system administrators rather than just a few. Some admins are better at this then others. Below are some of the skills that separate the mediocre from the wizards.
  1. Scripting
    This is one the most important skills a system administrator can have. Yet with all of the administrators and technicians I have worked with it is one of the most rare skills I've seen. Writing a script, whether in VBScript, Perl, Python, or even a good old batch file, is the key to not have to do the really boring parts of a job over and over again. Need to reboot a bunch of servers or desktops routinely? Write a script! Need to push a security patch to all the desktops on the floor? Write a script! Especially since the task will inevitably need to be done again next week or next month. Of course it might take an entire day to write a script to do a task that would have taken an hour or less to do by hand, but not ever having to do that task by hand again is priceless.

  2. Linux
    People who run Microsoft Windows networks typically know Windows and not much else. Many times (not always) they look for software solutions through "Microsoft Goggles." If it's not made by Microsoft, don't bother applying. Linux is not the end-all-be-all solution, but neither is Microsoft. There are tools all over the internet that make daily system administration easier. Some of them are free, some of them are not. Some of them run on Linux, some of them run on Windows. Learning how to install and work with Linux opens up a whole new world of possibilities.

  3. Troubleshooting
    This is an essential skill for any technician but I have seem many instances where it was lacking. Understandably it can be difficult to accurately assess someone's troubleshooting skills in an interview, so the true skill in diagnosing problems isn't found until after a new person has been on the job for a while. I have seen technicians look at a problem and try one or two things they have done before, or have seen done before, then give up and go and ask someone else for help. I think this stems from the desktop support world where if a computer is broken, just get a new freshly imaged one from the shelf and copy the user's data to it. People don't need troubleshooting skills to do that. Unfortunately, things aren't always that easy. Servers, networks, and even desktops require much more skill to maintain properly. Admins need to be able to try different approaches to a problem when they hit dead ends.

  4. Customer Service
    I have heard so many stories about administrators that are so good with computers but can't talk to a person. Understanding the customer, whether internal to the business or external clients, is vital to knowing how they need their systems to work or even what systems they need. If the customers don't feel as though they can approach their administrator it will be that much harder to get vital information from them when problems arise. Establishing a good rapport with the end users goes a long way towards making the job easier.

  5. Googling
    I can't tell you how many times I've received calls from support technicians asking about a problem they're having and a simple Google search has the fix in the first result (I'm feeling lucky!). It's those times I have to resist the temptation to ignore the all important Customer Service and send them a link to justfuckinggoogleit.com. Those are the easy ones. There are of course more in depth issues that require a certain ability in finding the right search terms to come up with the answer but in the end I'm hard pressed to not be able to find a solution to a problem on Google. The answers are out there waiting to be searched for.

  6. Scripting
    Did I mention this one already? Huh. It must be fairly important then. I really can't imagine doing any kind of system administration without being able to script pretty much any repeatable task.
If I missed an important skill or you disagree with me, leave a comment and let me know.

2 comments:

Daniel Silva said...

hi there, any specific recommendations as to when to use perl vs. python or references that you could point to? Thanks for sharing that info!

Regards,

Daniel

Some Guy said...

daniel - glad you liked the article!

I think the topic of when to use perl vs python is one that veers mostly to personal preference. Perl is the language where there is always "more than one way to do it". Which is great, but I found it to mean too many ways to do it. However, Perl is absolutely fantastic for processing data.

Python on the other hand I have heard described as pseudocode that runs, meaning it's easy to read and write. Python typically has a reputation for being able to quickly write scripts that work, with less debugging time.

My personal preference is Python.