Linux Admininstration Resources?
shadfc asks: "I'm starting a new job as the system administrator for a small company in Tampa. They currently have 10 Red Hat servers (they are open to distribution change) that have not been actively maintained for a few months. I'm a Junior in College with a decent amount of Linux experience, but this will be my first job in this kind of position and responsibility. I'm asking for resources that can help fill in the holes in my knowledge and help make me a better administrator. Quality books on the subject would be preferred, but any advice is welcome. Thanks!"
O'Reilly publishing has listing of all Linux commands, at least those that are expected to behave in a conformist way from distro to distro.
Try the "Practical Guide" series by Mark Sobell; the homepage is here.
dtach - A tiny program that emulates the detach feat
They currently have 10 Red Hat servers (they are open to distribution change) that have not been actively maintained for a few months.
Can you give us the IP addresses of these machines?
Seriously though, make sure those babies are patched and secure before you worry about learning anything.
-----BEGIN GEEK CODE BLOCK----- Version: 3.12 GIT d? s: a-- C++++ UL++++ P++ L+++ E- W++ N o-- K- w--- O- M+ V PS+ P
Ever since I began using Linux on a Day to Day basis I have had this book ( I have 3rd edition though). Some people say you can learn all you need through man pages and Faqs but this book like others in the nutshell series by O'Reilly exposes you to information in a way that you can digest bits and nuggets at your leisure instead of plodding through terse texts or poor examples in larger texts.
An Education is the Font of All Liberty
but "The Practice of System and Network Administration" is very, very handy. Full of best practices and day-to-day scenarios and how best to handle them. See it here at Amazon. I have found the advice contained in there to be indispensible as I am maturing as a sysadmin.
He said distro change, not platform.
*sigh* I just broke the doctrine of PDFTT...
First link on Amazon. Indispensible.
http://www.google.com/
LINUX: Rute User's Tutorial and Exposition
From the Introduction:
This book covers GNU/LINUX system administration, for popular distributions like RedHat and Debian, as a tutorial for new users and a reference for advanced administrators. It aims to give concise, thorough explanations and practical examples of each aspect of a UNIX system. Anyone who wants a comprehensive text on (what is commercially called) ``LINUX'' need look no further--there is little that is not covered here.
(if you're going to switch)
debian is very nice maintenance and security wise. there's very little like it.
Check out the "Linux Administration Handbook" by Evi Nemith, Garth Snyder, Trent R. Hein et. al. It's published by Prentice Hall and is a pretty good overview of the tasks you'll be expected to do.
Also, check out the books in Sybex's Craig Hunt Linux Library series - he doesn't actually write all of them but most are pretty good. (Don't know how O'Reilly let him escape after writing the excellent "TCP/IP Network Administration".)
~~~~~~~
"You are not remembered for doing what is expected of you." - Atul Chitnis
Linux Administration Handbook by Nemeth et al. Her Unix System Administration Handbook is a classic. This one is targetted at Linux. Very nice. Great artwork too.
Limoncelli and Hogan.
Evi Nemeth's book.
Aeleen Frisch's book.
Mark Burgess' book.
http://www.sage.org/
Note that all are active in SAGE.
.@.
Before I get modded to oblivion, hear me out.
Whenever you install software, or perform an update, don't just jump into the RPMs. Build it from scratch on a dev box or something. Get really really familiar with the package. RPMs gloss over a lot of detail that a good sys admin should know or at least have written down somewhere. Aside from the minuta of the package you're bound to learn a thing or two about how to set up a system. Some packages require a lot of security prep-work before they will work. Others will not. After you've seen enough of both worlds you'll understand why they should and how to implement it. Last but not least, all the README files you'll go through will likely teach you some neat tricks that can be applied everywhere.
Second, embrace your distro. If you're going to stick with RedHat see if you can get up2date working properly. Or with debian, apt-get hourly from a local "approved" package mirror. These things make your life a lot easier if done right.
Books are fine and good but they're usually out of date. Understanding the system will enable you to handle the changes between the print date of the book and the release date of the software.
Try to get topic-specific books if you can. It's impossible to cram all aspects of the admin life into a great tomb - even a dozen of them. You'll certainly be lacking detail. Check out Safari (no link, sorry.) They have an enourmous library and their parent company makes some of the best techincal books ever.
Lastly, KISS. Use a real load balancer, get an SSL accelerator, get a hardware firewall. Yes yes, Linux can do all these things - but you'll spend much more time maintaining it than you would the Cisco box. (If that won't start a flamewar on here, nothing will.)
And, lest I forget, good luck!
Especially in enterprise environments, a wrong command or insufficient planning of some critical tasks can have severe side-effects. When I started administration, I installed GNU/Linux onto an old desktop PC which wasn't any longer good enough as a workstation but sufficient as a "playground" box. System upgrades, new kernel releases, complex shell scripts and even MTA or WWW server settings can be tested without disturbing other people's work. Internet access is only necessary as far as a HTTP proxy is concerned, to get updates.
When I was learning Linux, I visited the Guides and HOWTOs every 5 minutes. www.linuxdoc.org and click on the sysadmin guide, networking guide etc.
/etc, /sbin, /usr/sbin and read the man pages of every file you dont understand... for example you run into tune2fs, want to know what the heck is it, so you read the man page.
To learn Linux itself, do a very basic install of a simple distro like slackware, or just a basic install of redhat on a test box, goto each directory like
After a while you'll get the feel of Linux. You really dont have to know each command or how to use it.. man pages are available everywhere.
Try to compile your own kernel. That in itself teaches you alot about Linux and its capabilities. Beside that its the tools you have to know, such as apache, php, mysql, samba, nfs, ftpd, nmap, snort, sendmail/qmail/exim/postfix etc. Know the HOWTOs, guides, and man pages and youll never really need to buy books.
Any major problem you run into has already been fixed in the newsgroups. Goto groups.google.ca, and find your problem. Remember not to run Beta versions of services on your server for now... I'd even stay away from the 2.6 kernels until youve really tested the hardware on your side and are sure of it.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
All you need is BOFH
Read up on the true professionals
Slashdot Sig. version 0.1alpha. Use at your own risk.
http://www.tldp.org/ I learned alot about stuff there reading the admin guides and how to's. :)
good luck.
Companies should be able to hire basic competancy and willing to learn enthusiasium over stodgy experience and self assuredness. I hate working with cocky sysadmins, and imho you run into more and more of them that are older nowadays. Young blood that feigns wisdom usually looks like a fool, and old folks that flaunt wisdom are no better. People that know who they are but do not need to keep reminding everyone else are the best people to do business or work with and I would rather deal with them over percieved security advantages for the ease of interaction when shit does go wrong.
An Education is the Font of All Liberty
If you have to ask for advice on /. , your company has obviously hired the wrong guy.
If you're going to stick with RedHat see if you can get up2date working properly.
I'm not a sysadmin, I just use my home box (FC1, soon FC2), but in my experience, up2date is a slow, buggy, unreliable piece of crap. Go with yum. Not only is it faster and more stable, but you get more data from it, it allows you to install and uninstall stuff semi-automagically, and you can script it if you want.
Note: NEVER script upgrades on a production machine. Useful stuff to script would be "yum check-upgrade", and maybe add a file with a list of packages that you're anxiously awaiting an upgrade for (say, if you know that there's a security hole that will be fixed soon).
Learn to use screen. It'll let you keep a "virtual terminal" open from day to day without leaving the physical terminal at all unlocked, you'll be able to transfer the virtual terminal home (or from one computer to another) very easily, and it allows for easy logging, which you'll definitely want (hmm, what was it I did yesterday that made the box crash?).
It's easy to use, and it comes installed by default in most (all?) distros I've ever seen.
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
Google Groups
Julius Caesar - Act I, Scene i: "What mean'st thou by that? Mend me, thou saucy fellow!"
Nothing get's debuged on a production system. If it doesn't work it gets pulled off and fixed in the development environment.
Take root away from everybody and never give it out. Everyone has to learn this the hard way. Maybe you won't have to.
Standardize your OS installations and push back on mass customization. The users complain, but in the end they're more appreciative of a consistent working environment, then anything else.
Following these guidelines can help you sleep at night. When the pager goes off it's because a piece of hardware failed, not because some jackasses custom compiled perl installation that they didn't tell you about is chewing CPU and allowing hackers to use your systems as a pr0n site.
"Who hasn't slipped into the break room for a quick nibble on a love Newton before?" - Mr. Peterman.
Do you know what a Miserable Failure is?
Oh, for cryin' out loud -- take your political troll somewhere else.
There's definitely a place for politics on the web, and google-bombing is... well, not particularly "fair", but it's out there (and you're allowed to fight back). But please do it somewhere other than here.
Get a blog!
Get "Linux In A Nutshell". Every Linux admin should have a copy of this wonderful book around. It is a great refernce book that has helped me numerous times when I forget soemthing or wanted to view more info on a certain command but didn't want to wade through the man pages. There is also sections on bash, rpm, and other things you may find useful. For the most part with regards to security just keep all software installed up2date and don't run unneeded services. And don't forget to check the logs and document every change you make to the system and you should be fine.
Backup important stuff.
Download all the rpms for the RH versions they are using from update.redhat.com into a directory for each version.
Then move the conflicting versions of RPMs elsewhere (sometimes there are multiple versions of the same package conflicting - move the older version elsewhere). Then do:
date >> rpm.log
rpm -Fvh *.rpm >> rpm.log 2>&1 &
tail -f rpm.log
Any errors, you have the rpm.log and fix em.
For once in my life, spam was useful. There was a book being advertised called the Universal Command Guide that has helped me when I knew how to do something in one OS, but not another (in my case, Linux to AIX). It does not have everything, however it will help you in a jam when you forget how to create a new logical volume or something similar.
Body in a woodchipper...HA HA!
Btw, this and the other books listed in replies are on Canonical Tomes in the System Administration section which is confirmation that they are highly thought of.
Red Hat puts up a good set of manuals on their site.
This is a subset of what you will need to know, but it's very useful to know how to do things "The Red Hat Way". I would *discourage* trying to immediately do everything manually (like, say, modifying your initscripts to directly start up dhcpcd or something similar). You'll get a bunch of configuration that doesn't play nicely or auto-upgrade cleanly to new versions. It's much easier to have things set up properly, and be able to examine a working system when learning how things work (and I *do* recommend digging around on the system, through the initscripts and the config files, but it should come second). Occasionally you'll want to do something for which there is no easy, automated configuration setup available, and it's good to know what to do then and when it's necessary.
I'd set up a test box pronto to play with and to test out configuration changes.
May we never see th
I was in a similar situation about 4 years ago! When I had not even started college.
I would firstly forget about the distro switch, this change is something too complicated for a start, especially if you are not used to those particular servers.
You should learn the internals of services running on the machines. Get a spare machine, install the same Red Hat release running on those servers and install the same services. Now try to make them work the same way they are on the servers. This is a shot in the air, but you can start with bind, apache, sendmail (or whatever mta you've got), etc. Google is your friend here, if you look for help about this programs you would find the dns howto, the apache documentation (also installed locally) and a package called sendmail-cf for example.
While playing with this kind of things, you will soon have some problem you can't get along with, you can ask for help in usenet, but try groups.google.com before. 99.99% of times you'll find someone in the same situation, most of the times with a solution in the same thread.
Don't worry for unix/linux basics, while doing this kind of things you'll learn what you need, just be patient. You say you have a "decent amount of Linux experience", so you don't need a basic general linux book, which otherwise would be a must.
After some time with this things, when you have a decent knowledge of the situation, you can improve with books of a particular subject. This depends on the situation, for example, if a samba server is something important for the company, get a book about samba, etc. Manpages or internal documentation are also a good source of knlowledge.
Last but not least, subscribe to a security mailing list, you have to be alert to new security failures, I can't recommend you anyone in english, Bugtraq is too high volume IMHO.
Good luck.
I'm a redhat man. I've used debian, used to be a slackware zealot.
/usr/bin/*' from time to time. Nothing compares to LFS, and that maniacal crew of lfs-users.
Then I built three boxes from source, by hand. LinuxFromScratch.org is a book + source code. It's like buying a kit plane, but you get instructions to make the tools too.
Building my third box, I realized I had to start over again because of the lack of package management, so I built it using checkinstall ( google it ). The result? A redhat box. I just use Fedora/Workstation now, but....
You learn so much from the LFS, and more importantly the mailing list/IRC channel, it really should be job #1 for anyone wanting to 'learn linux'. I've read dozens of books, been to college courses. I've even 'man
I recommened it to any linux neophyte that really wants to be an admisitrator. If I had my way, it would be a mandatory requisite before letting anyone work on my servers.
Second to that: Nemith's Linux Administration Handbook. (prentice hall)
Third: Google. (google)
Fourth: Mastering Regular Expressions (o'reilly)
Before I part with'em: two pennies weigh ~4.996+/-0.014g, have a zinc core, and the face of Lincoln. You can keep 'em.
So don't go trying to switch distros on them, or install a different mail transport, or whatever. They may be in need of security updates and you should start rolling those out, a few/day until you catch up. But evidently what they have is working, so don't fsck with it unless you discover a problem. That approach may not be very "proactive", but until you've got some real-world experience in running someone else's shop, it's best to err on the side of conservatism. And odds are they've got enough stuff that genuinely is broken to keep you busy for a while.
http://alternatives.rzero.com/
Not to knock your intelligence but your little bit of Unix experience isn't going to help much here. Putting you in this position is like entering a 16-year-old who just got his drivers licence in the Indy 500; you might understand the basics but there's a lot things that crawl around under the surface of a well-functioning system that you probably don't know exist.
With that out of the way, a few things
my sig's at the bottom of the page.
Get one (preferably two) test systems and install and prep them as if they were the machines you were using. Hell, get one of those 10 servers and make a backup of it and restore it to your test systems.
Essential System Administration by O'Reilly is pretty good (although it covers a lot of ground...good for theory and the "why is it like this?" stuff). Linux Server Hacks (also on O'Reilly) is quite handy as well.
FreeBSD for the impatient.
Roll your own RPMs or debian packages. This give you the benefit of customization plus the benefits of a package manager. Using a package manager really reduces the headaches of documenting what is installed where and what version. If you add sudo to the mix, then you have a good idea of who to ask about the changes as well.
Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.