Question

I am web programmer and I deal with html, css, javascript, php and asp.net.

Is there some good books/sites that I can use to become also a bit of a sys admin? And by sys admin I mean to have knowledge of TCP/IP, Linux/Win Networks etc.

Please don't say "google is your friend" I know it is but I just want either good sites or books and not the trillion of links google gives me.

I know this isn't an easy step, but it isn't impossible right?

Was it helpful?

Solution

Don't know of any sites since I learned most of my sys admin stuff before there was a web. :-(

Here's a few, non-technical things that I learned to get you started:

  • Backups are your friend, but only if you verify them.
  • Track every change you make to the system.
  • A test environment is just as important to a sysadmin as it is to a developer.
  • Get used to working while everyone else is asleep.

OTHER TIPS

In addition to tvanfosson's answer, I have to add:

Document EVERYTHING - even the stuff you think you'll never forget.

I sent your question to some of the members on the team here.

This is what we came up with.

  • Learn configuration management with puppet, cfengine
  • Learn and memorize what the common raid levels are. You need to swap disks and you need to know when you can and cannot. You also need to know why you use one raid level over the other.
  • Increase your familiarity with different FS types ext3/ext4 etc.
  • Learn the linux boot process
  • Increase your familiarity with the Linux kernel, specifically virtual memory, paging, memory allocation, process creation.
  • Learn your package manager inside and out. Know how to revert, apply, update and install packages from source or binary with your pkg manager.
  • Learn how to read the data contained in "iostat, vmstat, free, valgrind, top, traceroute, ping, netstat, route and chkconfig (if you use it)"
  • Learn how to read strace output. I cannot stress this enough. It is not hard to read at all.
  • Learn the different between Unix and Linux
  • Learn scripting language X where X is whatever you like(I use Perl and Python)
  • Learn some C. Really, it helps when you are figuring out weird memory issues.
  • Learn how to start, stop, enable and disable services.
  • Learn troubleshooting methodologies from different people. Sys admins are not one man armies, they work in teams. Learn where you are weak, admit it and strengthen that area.
  • Learn how to have a lot of fun at work when you are knee deep in outages. I hope this never happens to you.
  • Cultivate your ability to manage projects and deadlines.
  • Learn how to say "no"
  • Think critically, even when the person that is telling you "there is no way my code crashed that server" investigate it anyway.
  • Learn how to manage apache, mail servers (I recommend postfix)
  • Learn how to add ips, routes, etc and make them persistent through boots.
  • Learn, love, memorize, eat, sleep and drink disaster recovery and being a great planner and organizer. If you suck at these things, work on them.
  • Develop a sense of duty to maintain uptime and the privacy of your users. This is the paramount value of a system admin. An honest desire to do what is right is critical in being a good system admin in my opinion.
  • Read, read, read and be passionate. Deliberate practice will make you great!
  • Learn to remain calm. Panic will not return your services to operation. - Contributed by Eric Ericson, Production Ops Manager - Baynote, Inc
  • Evaluate and learn about different authentication such as NIS/LDAP/AD vs local authenticated - Contributed by Truong Pham, Senior System Administrator - Baynote, Inc
  • Be active in LISA or some other sys admin group. And hang out in sysadmin forums/blogs/newslists. - Contributed by Anonymous - Baynote, Inc. Required reading:

http://en.wikipedia.org/wiki/Man_page#Manual_sections - Seriously, read the entire wiki page on the man pages.

Cricket Liu's DNS & Bind - You must read this book and learn to love it.

O'Reilly's Essential System Administration - A very good book for newbies

There is a site called http://www.linux-tutorial.info/modules.php?name=MContent&pageid=89 Some of the data on the site is antiquated but it is good to read through because some shops still use very old distributions in production.

I subscribe to the O'Reilly library myself.

You know what! I love being a sys admin. I also love to write code. Being a sys admin allows me to work with a lot of people, which is something I really like. I also like it when I have little information but I can determine the root cause of an issue through analysis and critical thinking. I love being a system administrator in all of its ups and downs.

I am not sure if you are looking to make a career out of it but I have done very well financially as a system administrator. I hope you enjoy the reading. Feel free to contact me if you want. I love talking to people, especially those that share my passion for maintaining long uptime and helping others.

Sorry for the long article.

Install a Linux in a virtual machine or rent a server. Buy a good book about your chose distribution. Set the server up as your webserver. Install a Jabber/XMPP server. Install a mail server wth SMTP/IMAP etc. Learn the OSI model. Program a simple server in a system language like C or CPP that uses sockets to communicate with something.

...set yourself some goals and start hacking. The best way to learn is to set a goal and work until it's completed.

Rather than trying to learn from books, if this is a career move you want to make, then don't be cheap about it.

Find some good computer training courses offered where you live, that will give you the sys admin training that you want. Be willing to spend a few hundred to a few thousand dollars for it.

You will learn everything ten times faster and will be given reference materials to read and suggested books to buy.

You'll be able to get answers right there and then to the questions you have whenever something isn't clear or doesn't make sense.

It's well worth it to start with some training if you want to jump-start your career. And adding formalized training to your resume doesn't hurt either.

The material you'll want to use depends on the specialty in systems administration you may choose. Right off the bat, most sysadmins fall into the Unix camp or the Windows camp as a main specialty. For these the best you can do is get a VM with the operating systems and experiment and learn their features. Once you feel you are decently competent at doing basic sysadmin tasks (scripting, installing application servers, configuring networking, patches, etc), I suggest you get a certification for whichever "core" technology you want to be hired for.

If you've been a decent self-learner, you'll find that most UNIX and Windows certs add a little bit of obscure knowledge but are mostly lacking in lots of practical areas. That's OK, because certs don't make a sysadmin out of you; they only claim you're minimally competent in some area and give you a slight advantage when it comes to being hired if you have no experience in the field. These are generally expensive, but a few are worth your money (later on you might be able to get your employer to pay them for you).

Once you're actually in you'll see that, in practice, the technical part is not very difficult (it's mostly reading the manuals and memorizing a sufficient subset of an OS's functionality), but you will be mired when dealing with your employers/clients/end users when there are fires to put out, which means you'll have to learn how to deal with high-stress situations and being able to convince people to implement the technically superior solutions that will save you from extra work later on.

Be VERY sure about why you want to make this jump. In my experience, system administration is the most stressful career in IT and involves the longest hours (a being on-call 24/7 for several days at a time), and in some cases the least brain activity, since the day-to-day operations involve trivial tasks and waiting for the system to respond. The most important skills really come down to being able to say no and keeping it cool while being in a call with several execs breathing on your neck to get a production server up.

On the plus side, you get to play with some pretty cool toys and the money's very good.

Some thoughts from a system admin turned system engineer.

Learn, and use, a configuration management system. Chef or Puppet are really strong options (I like Chef), both written in Ruby. Not sure about Windows, if thats your platform; Chef plans to support Windows within the next year.

Put your software control skills to good use. Maintain your configuration with a Git or Subversion (or other) repository. I like Git because every checkout / clone is a full repository, so backups are easy :-).

Use open source tools whereever possible. You can put your developer skills to use by improving them.

Read Tom Limoncelli's "The Practice of System and Network Administration" - it is an excellent book that covers the gamut on system administration end to end, without being platform specific.

Find local user groups for your platform. Join Twitter and look for people talking about your interests. Get into IRC on the Freenode network and discuss system administration with other admins.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top