Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Books Software Media Programming Book Reviews Linux IT Technology

Linux Server Hacks 146

Wee writes "Linux Server Hacks is not a book which will teach you system administration. In fact, if you aren't already familiar with how to set up and run Linux, this book will likely confuse you. It is also not a book which will teach you how to break into Linux servers. The word 'hack' in this case is not a pejorative. What LSH will do is show you how to fully tweak that Linux box you already run. It will show you new (and possibly better) ways to do the things you already do. The book will probably not make you a better admin, but it will almost certainly save you some time or give you at least one 'Why didn't I ever think of that?' head-scratcher." Read on for the rest of Wee's review.
Linux Server Hacks
author Rob Flickenger
pages 221 (including index)
publisher O'Reilly
rating Very Good
reviewer Wee
ISBN 0596004613
summary 100 tips and tools useful for those who work with Linux servers (and workstations).

About the book

LSH is not just about the Linux operating system, per se. Despite the title, it spends more time covering applications which can run on Linux than it does the Linux operating system itself. It is composed of 100 "hacks" all grouped together into like areas, such as "Monitoring" and "Networking". The style sort of reminded me of O'Reilly's Cookbook series, and I find it to be an easy format to read. Indeed, if the book was larger, it could have easily been called "The Linux Server Cookbook."

After a somewhat cheesy forward by ESR and a recognizably standard O'Reilly preface, LSH starts out the hacking with a section called "Server Basics," and it's here that most of the Linux-specific tips are. You get to learn how to pass args to LILO, stroll through /proc, tweak the Linux kernel, play with hdparm and so forth. This chapter left me thinking that this was all stuff every admin should know, and not much of it was new to me (if you've used Linux for more than a couple years you probably won't find much here that you haven't at least heard about before). If you are new to Linux however, then this chapter will be valuable even if you stop reading the book right at chapter two.

If the book had to be divided into two parts, the first chapter would be titled "Part 1: Linux the OS." The balance of the book would then be called "Part 2: Linux Applications." Subsequent chapters each tackle one area of services or applications that run on Linux, such as CVS or rsync or ssh, and it's very easy to find something interesting purely by looking through the table of contents. The book's grouping of hacks into like topics helps, I think, because you can easily pick out what you want to see more of without having to wade through that which you don't find terribly interesting. For example, if you only deal with your personal Linux workstation, then you can easily disregard the "Information Servers" chapter without missing other valuable content. I personally found the "Networking" and "Monitoring" chapters to be the most useful. The "Backups" chapter was interesting, the "Scripting" chapter not so much. Each chapter starts with a summary of what's to come, so if the table of contents isn't enough to find the good bits, then just reading those summaries can give you an idea of whether you'll find anything useful to you.

The book includes a fairly complete index, but I didn't use it very much. I found the table of contents, with its list of each hack's title, to be useful enough. I suspect that when I pick the book up a couple months from now looking for something I had read about I'll get more use out of the index.

What's to like

As I mentioned above, the book is very easy to read. Flickenger has a "conversational" writing style I found easy to parse. If you hang out with Linux geeks very much, you'll recognize his way of communicating and easily assimilate what he has to say. His advice is sound, his skill level high (the same can be said for the other contributors as well). The book's layout and organization made it easy to find specifics and will ensure that it gets used as a reference later on.

You might be wondering about the code samples in this book: there are a lot of them. I didn't check, but I think each hack had at least one CLI listing or bit of example code. This made the book much more valuable than if it simply told you want to do; "seeing" the hack in action helped tremendously. In fact, I'd have felt disappointed if Flickenger hadn't included as many examples as he did. Most of the code is Perl, with some shell mixed in. The example code is well written and properly placed, so if you don't know Perl or shell you'll still be able to make use of the hack.

Each hack can stand on its own. This makes the book easy to read, and ensures its place as a reference. I didn't read the book sequentially at first, but I went through the whole thing regardless. Some hacks refer to other hacks, and I found myself reading the book as if it was hypertext, as is mentioned in the preface. Again, this also means less time spent reading that which you already know (or find boring) and more time spent thinking about something more useful.

The book is distribution-agnostic. I couldn't find anything that would upset a Debian user or would flummox a Mandrake fan. While this might have more to do with the bulk of the hacks being on the application level, I found the lack of an axe to grind refreshing nonetheless.

The book doesn't assume l33t-ness nor coddle the reader. It assumes you know your stuff and are a professional, and in doing so finds its voice rather well. This gave me a sense of admiration for the author and allowed me to absorb the knowledge being imparted with ease.

Although not specifically about the book, O'Reilly has set up a website devoted to their "Hacks" series of books. Users can send in their own hacks, which helps flesh out the content in the print edition.

What could be better

ESR's forward, titled "How to Become a Hacker," was just silly. The forward added nothing to the book, and I find the whole "zen of hacking" schtick tiresome after only a short while. Yes, "hack" is a cool word, but one which easily suffers from overuse: it suffers a lot in ESR's forward. The forward also contains a plug for ESR's book, which I thought was somewhat tacky.

LILO is referred to in several places, but there is not a single mention of GRUB. Where the boot loader was being discussed, an "If you use GRUB, you'd want to do it this way..." aside would have been welcome.

The "Information Servers" chapter is very large, but only deals with BIND 9, Apache and MySQL. If you don't work with any of these three, then fully one quarter of the book will be useless to you. I would have really liked to see mail servers (especially Postfix and Qmail) mentioned, and including tweaks for an ftp daemon would have made the book that much more valuable. I would have also liked to see sshd covered; the book contains only ssh client hacks. Finally, a hack or three about PostgreSQL would have been nice.

The "Scripting" chapter could have been replaced with a "Security" chapter. There are only 4 scripting hacks, and they aren't all that useful. Although the book has a security-conscious mindset running throughout it, I felt the lack of a section devoted specifically to security was a glaring omission. In fact, I almost didn't buy the book when I noticed that the table of contents didn't list a security chapter. It was only after reading a hack or two that I could see security was going to be mentioned.

Another area I expected to see was one with hacks involving package management. A whole chapter dealing with this topic would have certainly been welcome to users of Red Hat, SuSE, et al. I suspect that such a chapter might have broken an unwritten editorial rule about remaining distribution neutral, however. And Debian users would have found anything beyond an apt-get one-liner superfluous, so I can forgive the "omission."

Although the title of the book is "Linux Server Hacks," someone using Linux as a workstation would also find the book helpful. For example, Flickenger includes two hacks on burning CDs, a hack on displaying the load average in the title bar of an xterm window, and so on. I got the impression that the server-centric focus wandered into desktop land quite a bit. Because of this, I thought that some hacks involving window managers should have been included. I've tweaked vnc to run blackbox on more than one occasion and expected to see things like that mentioned. This is a niggling complaint, however.

I found myself wishing the book was longer. At US$24.95 the price was right, but I would have rather paid US$34.95 for 150 total hacks.

Finally, the book looked somewhat rushed. There were more than a couple formatting errors (typeset characters visible, etc) sprinkled throughout, and all the code examples were unindented; it was as if all the tabs were stripped out by the printer. While the lack of indenting might confuse those who don't know Perl or shell, the only "real" consequence of this is that the lack of tabs in the makefile examples on pages 27 and 28 prevent them from working.

Summary

Based on this review, it might seem that the bad outweighs the good where Linux Server hacks is concerned. I don't think this is the case, and I would caution anyone against taking that view (rather, I'd have them glance through the book at the bookstore before deciding not to buy it). I think it should be noted that given the usually high quality of O'Reilly titles, it's far easier to spot what could be better than what is likeable. Like the old saying goes, nobody notices a clean kitchen unless it isn't.

None of the "bad" things would keep me from recommending this book, and I found Linux Server Hacks to be a very useful -- both as a future reference and as "thumb through while waiting for the train" sort of read. There's not much in it which is "new", and most of the hacks would border on common sense for the seasoned sysadmin (although I'd be willing to be that even the most grizzled admin would find something new or interesting). Indeed, nearly all the information in the book can probably be found on the web somewhere. It is nice, however, to have everything collected in one place and organized into specific groups. Linux Server Hacks would make a good addition to the bookshelf of anyone, regardless of their skill level, who finds themself administering a Linux machine, be it a server or workstation.

Table of contents

  1. How to Become a Hacker
  2. Preface
  1. Server Basics
  2. Revision Control
  3. Backups
  4. Networking
  5. Monitoring
  6. SSH
  7. Scripting
  8. Information Servers


You can purchase Linux Server Hacks from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

This discussion has been archived. No new comments can be posted.

Linux Server Hacks

Comments Filter:
  • by totallygeek ( 263191 ) <sellis@totallygeek.com> on Wednesday March 19, 2003 @12:09PM (#5544455) Homepage
    This is an older book, but definately a great read for anyone that doesn't want to "re-invent the wheel" to fix everyday problems...

    UNIX Papers
    for UNIX Developers and Power Users
    ISBN 0-672-22578-6

    Like I said, it is old, but sed, awk and C haven't changed over the years. This has some great information on shell scripting, NFS, and email.

  • Good book. (Score:2, Informative)

    by Horny Smurf ( 590916 ) on Wednesday March 19, 2003 @12:10PM (#5544469) Journal
    I agree that the ESR forward should have been deleted. However, this book is a nifty collection of various hacks that probably would take you forever to stumble upon if they weren't in this book. (You're probably too busy administering or programming to experiment all day long).

    Using RCS/CVS to track revisions to settings files is just an example. I've seen far too many /etc/* files that have lines commented out, no explanation why. Having a revision history clean the clutter, makes a backup, and lets you know why and when something was changed.

    That's the sort of time saving, "ehy didn't i think of that" tips you'll find.
  • by Graelin ( 309958 ) on Wednesday March 19, 2003 @12:11PM (#5544476)
    It already is. [oreilly.com]

    Our company tried the safari thing for a while. It's very sweet, many many books online covering a wide variety of topics.

    You pay for the books you use, and you can add / remove books at your leisure. Some books are worth more than others. It really makes a lot of sense.

    Not sure what the costs are for individual use. Considering their "group" rates, I'd say their individual rates are probably very fair.

    Personally, I don't like online books too much. I'd rather be able to kick back and drink a beer and read. Can't do that with a 19" CRT. :)

    Perhaps when web-pads are more mainstream (and thinner and lighter)...
  • Hack dedicated to /. (Score:5, Informative)

    by locknloll ( 638243 ) on Wednesday March 19, 2003 @12:13PM (#5544492) Homepage
    Hack #79 [oreilly.com] in the book is about Distributed Server Load. The first paragraph has some nice reference to Slashdot:
    If you serve a particularly popular site, you will eventually find the wall at which your server simply can't serve any more requests. In the web server world, this is called the Slashdot effect, and it isn't a pretty site (er, sight).
    :-D
  • by Espen ( 96293 ) on Wednesday March 19, 2003 @12:18PM (#5544526)
    For Pete's sake: It's "foreword" (ie. fore-word). Defined as "A word said before something else; hence, an introduction, a preface." (OED).

    Why the heck would it be called 'forward'? Do people who make this mistake think it is the suggested reading direction?
  • by xchino ( 591175 ) on Wednesday March 19, 2003 @12:20PM (#5544538)
    All of this information is searchable in google. By buying the book you are paying for the convenience of having everything consolidated right there in front of you, in a searchable (index) format. You could also go with a Safari subscription from O'reilly to acheive the same effect with a webpage.
  • Another Review (Score:4, Informative)

    by Eater706 ( 659993 ) on Wednesday March 19, 2003 @12:29PM (#5544609) Homepage
    I wrote this last week, if you're looking for a bit more detail..

    Those who love UNIX (and UNIX-inspired operating systems) will surely adore Linux Server Hacks by Rob Flickenger. For decades, a mysterious sect of bearded wizards has dominated the inner sanctums of our network infrastructures, inspiring the awe of onlookers by crafting clever scripts and piping output in ingenious ways most of us never even thought of. This small but marvelous book attempts to steer apprentice wizards in the noble direction of clever system administration, with examples taken from experience in O'Reilly's own LAMP [onlamp.com] networks.

    The book begins with a refreshing introduction (by esr [catb.org]) detailing what it means to be a hacker. No, not the hax0ring w4r3z d00dz [honeynet.org] of frequent media attention, but the aforementioned bearded variety who spend most of their waking effort forging uncommon techniques for solving otherwise dull problems. Kudos to Mr. Flickenger (and O'Reilly) for not only acknowledging the difference, but celebrating it.

    As the title would indicate, the audience of this book is the administrator in charge of a server--that is, a Linux box performing only a couple of dedicated tasks, probably of a network-oriented nature. Although Linux enthusiasts from the desktop realm are not part of the intended audience, they will almost certainly pick up a thing or two from the material anyway.

    The book is organized into the following sections:

    • Sever Basics is a variety of general purpose tips that don't fit into the other major categories. Some of the more interesting items include:
      • Persistent daemons with init
      • Building complex command lines
      • Using xargs with tricky arguments
      • Effectively using sudo
      • Makefiles for automating administrative tasks

      I think the real magic of this chapter isn't necessarily the tips themselves, but the creative process behind them; the author is demonstrating a methodology for dealing with common problems by introducing clever solutions. This will ideally inspire the reader to deal with other problems in the same creative manner.

    • Revision Control. Servers with multiple administrators may benefit from using a revision control system to handle changes to configuration files. This section illustrates using RCS, with examples of checking config files in and out of the system. This provides a segway into using CVS for controlling revision of large software projects.
    • Backups becoming a nuisance? Approach them from a new angle by implementing some of the tips from this chapter. Examples including automated incremental backups over tar, rsync, and ssh; archiving with pax; and even some very creative (if not a little scary) ideas like piping your backups over ssh directly into cdrecord. The UNIX philosophy is illustrated well: simple tools working well together as an efficient solution.
    • The Networking chapter covers material that is no doubt already familiar to security-conscious Linux users. However, iptables newbies (or those transitioning from ipf or pf) will appreciate the netfilter primer and discussion of masquerading (NAT) and TCP port forwarding. Some tunneling and encapsulation techniques are also detailed here.
    • Monitoring details the use of syslog, and a great deal more. Networking aspects are given ample attention, without any redundant information in respect to the previous chapter. Some simple tips are given (like using lsof to track down elusive processes) as well as more advanced ideas (like a short shell script to perform an IP fail-over.)
    • SSH tips: are you still tapping out a password every time you hop to a new machine? If you administrate more than a few, this can be distracting and tedious. This chapter illustra
  • by alienmole ( 15522 ) on Wednesday March 19, 2003 @12:58PM (#5544763)
    I noticed that too. I reckon this one's a losing battle - there's too much similarity between the two words, in meaning as well as sound. The first meaning listed for "forward" at m-w.com is "1 a : near, being at, or belonging to the forepart b : situated in advance" - pretty applicable, wouldn't you say? Think of the forward hold of a ship, or the U.S. Forward Command Center in Qatar.

    In addition, a creative person challenged on this issue might notice that "foreword" dates to 1842, whereas "forward" dates to the 12 century. One could imagine that "foreword" was in fact considered quite a clever pun, when it was first used. And at a mere 160-odd years old, it's virtually newfangled - not great material for an argument against the changing of language...

  • by dissy ( 172727 ) on Wednesday March 19, 2003 @03:21PM (#5546209)
    > Crontabs do not have the ability to run commands say, every other week,
    > or every other month

    Sure it does. Atleast the one that comes with linux (GNU?)

    The time fields are: min hour day month day-of-week
    * means any/all of course.

    You can do

    * * * 1/2 * /path/to/every-other-month.sh
    Runs on the ODD months, make it 2/2 to run on the even months.

    0/10 * * * * /path/to/every-10-minutes.sh
    Runs every 10 mins where the last digit is 0 (00 10 20... 50)

    Or in the case of backups or something, run it every two hours between 9pm and 5am (9pm, 11pm, 1am, 3am, 5am - non business hours) and also run it once durring lunch (noon)
    0 21-5/2,12 * * * /path/to/backup.sh

    Ok so thats not how you would want to run backups I'd imagine, but you get the idea of the timing commands atleast :)

    In the last field you can put a day (IE mon) and say /2 for every other day, or tue/2 for every other day in the other set.
    I'm not really sure if mon/2 would do every other monday, or every other day starting the count on monday (which is what i think)
    If that is the case, I would hope mon/14 would work (On monday, every 14 days/2 weeks) but I have never tried that.
    If your backup script does any logging, perhaps you can create a simple script that logs when it runs to a file, and add it in crontab as
    (assuming midnight) 0 0 * * mon/14 /path/to/testscript.sh

    no doubt just a #!/bin/sh and date >> /root/testscript.output

    To do every other week using the day of week may not be possible, so your code example is still valid. But that is only because the number of days in a month very and dont fall on any obvious boundrys.

    The only two examples ive ever used were twice a month (1st and 15th) [0 0 1/15 * *] and every other day-of-week that depends if the day is even or odd. This is close to what you want, but unfortunatly as each month changes, if there are an odd number of days in the month, the order changes. Only when there are an even number of days in the month does next month continue on the same pattern.
    [ 0 0 2/2 * mon] for example.

    Hope that helps abit

  • by doodleboy ( 263186 ) on Wednesday March 19, 2003 @04:07PM (#5546607)
    You and me both. I've used unix and linux for 10 years and I still compulsively buy *nix books, even though many tread the same tired ground. Two of the best for experienced users:

    Linux in a Nutshell (3rd ed.). Hands down, the best linux reference on the planet.

    Unix Power Tools (2nd ed.). The best unix (linux) book ever made. It's a bit heavy on tools that aren't overly popular on linux (csh, etc.) but many of the articles are superb examples of the unix problem solving paradigm. With all the hyperlinks in the margins, it's nearly impossible to read more than a couple of pages in a row.

    Speaking of compulsively buying O'Reilly books, I recently picked up Linux Server Hacks and Building Secure Servers with Linux, by Mick Bauer. Can't comment too much on the former, because I'm still reading the latter. Always liked Bauer though. Much common sense.
  • by MobyTurbo ( 537363 ) on Wednesday March 19, 2003 @05:53PM (#5547485)
    O'Reilly's "Unix Power Tools" is undoubtedly one of the best books for learning how to do powerful things in Linux or any *nix. Unfortunately it's gone up in price in the third edition, but that means that the coveted first edition is easier to aquire via used book sources. :-) This book will teach you to be a scripting guru. If you are more of a beginner, I'd reccomend O'Reilly's "Running Linux" as being the best of this genre.

    For learning how to program on Linux there is "Begining Linux Programming" from Wrox. From O'Reilly and from other publishers, get books on scripting languages such as Perl, Python, or Tcl; a scripting language is a very valuable thing in the *nix environment. Don't forget shell scripting for that matter, Kernighan and Pike have the definitive work, "The Unix Programming Environment" on Bourne Shell scripting among other things and you may also want to get a book that covers Bash too. Also if you have deep pockets, anything by W. Richard Stevens is a good reference on Unix and TCP/IP network programming.

Stellar rays prove fibbing never pays. Embezzlement is another matter.

Working...