Sysadmins: your top 10 duties/responsibilities?

For you Unix sysadmins: what are you 10 most common duties/responsibilities as sysadmins and what would you suggest a newbie sysadmin do to learn them?

For instance, say adding/deleting users is one of your most common duties. So a newbie would be wise to get familiar with useradd/userdel, right?

TIA

You really need to go invest in a Unix System Adminstration book. There are lots of them at the book store. Every admin does something different depending on how their platform is used in practice.

Get a book and learn Unix by working in the Unix environment.

and IMO EVERY sysadmin better know how to add and remove users!!! or else !!

Yes, I have lots of books, thank you. That's why I'm asking real people here for their real personal thoughts.

Neo is correct -

I never had to do anything with Sendmail before my current job. I've never had to do much with printing ever. But I know folks that are great Sys Admins that have no clue about Sendmail or any mailer program but may know all about printers and administering them on UNIX. Each job has different needs or uses different programs (Sendmail vs Qmail). You shouldn't limit yourself to 10. Or you may not get that next job.

The moral: Learn as much as possible and practice what you know.

I hear ya. I'm not limiting myself to just 10. I figured between the 10 tasks that 'x' number of admins come up with, I might discover a task I hadn't thought of or just to kind of get a feel for what the general duties of many/most admins are.

I am learning as much as I can and I have learned a lot already. I work in a Unix environment and little difficulty getting around and working with Unix. I'm just trying to get a BETTER handle on what the typical or most typical duties of a Unix sysadmin are.

Not to sound like an ingrate because I appreciate your comments. But why is it so difficult to get people to just mention what they often/usually do during a typical shift?

Because we are too busy surfing the web :slight_smile: (and don't want our bosses to know!)

I hear ya. I'm in the same boat.....

I'm just a little perplexed. Every where I ask this sort of question, it's like I farted in a cocktail party: everyone just clams up. People can speak for hours about the ins-and-outs of sendmail or sudoer suddenly can only come up with something like 'get a book' when asked about what they might typically do during a shift.

Like I said, I don't want to sound like an ingrate. But is what I'm asking somehow inappropriate?

well it is not exactly inppropriate, however there is no clear cut answer to your question. by no means am i a large network sysadmin, but i spend a significant amount of time reviewing log files, and making sure everything is working right. if you are just running a webserver, and email for a number of users, generally the only thing you have to do from there (once its working) is continue to make sure it stays working.

See, now that's a great answer. You spend a fair amount of time reviewing log files. That's great input.

Do you also review for hacking attempts or generally just to make sure things are working right or both?

As far as I know, no.

Here are my ten:

  1. Monitor status of systems I'm responsible for. Done with BigBrother (sending email and pages) and a daily 'snapshot' of the health of those systems emailed to the team. Know the commands for getting system information - save it somewhere (especially important when dealing with Volume Manager software).
  2. Add/change/delete user accounts/home directories locally or in a name service.
  3. (Re)Build a server - either from cd, backup tape, or in the case of Solaris, jumpstart. I believe HP uses Ignite which an SA should know.
  4. Backup - know tar, cpio, ufsdump/ufsrestore, and/or any 3rd party backup software.
  5. Scripting - learn vi - learn how to script in csh, ksh, sh, perl at a minimum (only because you going to have to troubleshoot someone else code at some point). Other folks will tell you not to bother with csh - but sometimes it's hard to rewrite a whole script (especially if they didn't document it at all)
  6. Documentation - do it.
  7. Know the services such as DNS, NIS, Mail (Sendmail or another), FTP, NFS, and printing. At some point in time, you are going to have to deal with them. So you should also know the tools that will assist you in troubleshooting them.
  8. Don't depend on GUI interfaces to tasks that you won't always have a GUI interface to. Single user mode on some systems are pure command line. When it hits the fan, you need to know command line.
  9. Read man pages. Read books. Keep up on security problems (on all of the major OS).
  10. Learn C.

Rules to live by:

  1. Never - NEVER- run a program that you can't look at the source code and compile yourself that you found on the Internet or given by a 'friend'. You will crash your server if you do. Maybe not today, but soon when you least expect it - and then you'll have to tell your boss why the server crashed (and he has the core dump of who/what/when/why/and how).
  2. Don't forget that there may be more than one problem when troubleshooting - look for the easy explaination first (bad code, missing white space, bad connection).
  3. Your Vendor support will first want you to add patches - unless they can prove that it will help, don't do it. It could add to the problems.

Well, I had to do this while putting a server back together so I guess I got off of the 'tasks' idea and more into what you need. The only other thing - don't always trust what the Vendor support tells you - I've crashed more servers from doing things they say will 'fix' a problem than I have on my own. Think about what they say to do and have them explain it (in writing is best! - email).

This is probably why no one puts this stuff down - it takes to long!

definitely work at the command line. Vi (not VIM and not emacs) is on 99.9999% of systems,,,,, use it before all others.

just when you get comfortable with one version of *nix, you get another, and simple command line options are not the same on (for example) passwd.

love the job and hang onto your A_s.

those books are written by real people and they are even sys admins too.

just like neo said. it depends on what the machine is used for and which industry you are working in.

lean the basics (everything you can) and once you get a job you can fine tune what you need to.

i would have to say that my top 10 responsibilities are: (in order of frequency)

1.) Adding/Deleting/Changing passowords and users (changing quotas too)
2.) Deal with a stupid user who blames my network for something not working.
3.) Check the snort logs, and ban those Ip addresses on the router (simple little script kiddie crap most of the time)
4.) Backups. tar mostly, but im a tar kinda guy.
5.) Check the proxy logs for inappropriate access by employees (porn, illegal stuff, etc)
6.) Update/patch everything when an exploit comes out (I don't like running up2date or apt-get automatically, i like to do it manually, because i like to be there in case something breaks...)
7.) Grab data from backups when it is needed/to test medium
8.) Make sure that web/ftp/proxy/file/ssh servers are running well, with plenty of spare cycles and memory on the servers (disk space also)
9.) write scripts to automatically do a number of sys admin tasks (I personally use Perl)
10.) Research new ways to do the same old crap (to save $ on launch, TCO, etc)

I'm more of a client-based sys admin though (In other words, im responsible for about 50 different networks, as opposed to just one. The servers that I do check are done usually via SSH to the remote client). Like everyone else has said, you find different tasks with each job. For instance, I have no freaking clue how to setup a cups server. But, few people have to check NIDS logs, or have to check for future needs of the network. It all just varies. Heck, the same could be said for which distrobution of *NIX people use, it just all depends on the job. :wink:

I'd say about 90% of what i do.... (labtech on unix at my school) and we have about 300-400 users on when i work..... anywhoo, it divided into smaller groups, so we each have our own number of boxes we take care of....... and id say about 90% of what i do is really stupid..... once in a while i gotta do something serious, but more often that not its "how do i copy text" or "how come i cant run msn messanger... i downloaded it four times!" so basically, admining takes patience........ hang in there and avoid calling the users idiots, dumbasses, or "the guy who undid the idot proff software" :stuck_out_tongue:

Your environs set the tone of the daily tasks.

I've done sys admin in different departments of one corporation so that my duties were altered depending on user needs and/or system setup.

i found it most effective in figuring out my daily/weekly/monthly tasks by creating my own UNIX sys admin manual. Each time a new task came up (due to user needs or system requirements) i added it to the manual.

But i was constantly referring to sys admin books. Here's a site that houses the Sys Admin Guild's bookshelf: http://sageweb.sage.org/resources/bookshelf/general.htm

Keeping an accurate log of my daily tasks has been one of the best methods for helping me acquire a working knowledge base for future tasks.

Hope that helps!