This review was originally printed in the September 2009 edition of the UKUUG newsletter, which is now defunct.
Title: Automating System Administration with Perl (2nd edition)
Authors: David N. Blank-Edelman
As the owner of the first edition, I’ve been waiting for several years for an updated text to cover everything which has changed in Perl during that time. At double the length of the previous edition, and with complete rewrites of some chapters (particularly spam filtering, which has necessarily come on a long way), this book does not disappoint.
The book begins with some basics, such as installing modules and getting started on the three major platforms which Perl supports (namely Unix/Linux, OS X and Windows). Some important ground rules are also covered, such as taking care when reading data – particularly if supplied by those notorious and untrusty “users” – and how to drop privileges as soon as possible. Most of this will be familiar territory to experienced Perl programmers, but it serves as a good grounding for sysadmins who are just starting to pick up the language.
The main section of this book is where the meaty topics reside. Manipulating filesystems, working with configuration files, network monitoring and email handling – most of the common system tasks which you could ever want to automate are covered in depth in dedicated chapters. Particularly pleasing is the chapter dedicated to security – something which every programming book should at least touch upon but so few manage to do so. All the code examples are written with ‘use strict’, so you can rest assured that there are no subtle bugs relating to mistyped or undefined variables lurking around.
The final part of the book contains several appendices covering topics such as XML, SQL and LDAP, which are highly useful short introductions to these areas. If you’ve ever wanted to know how a particular technology works and how to get it running with Perl in 10-15 minutes, these tutorials will give you the initial foothold to get started. You can even learn how to convert VBScripts to Perl, should you be in the unfortunate position of needing to do so.
Overall, I can only say that if you want to automate system tasks and Perl is your language of choice (or the one your boss has thrust upon you) you should buy this book, even if you have a copy of the first edition. This is the sort of book which has a permanent place reserved for it on my desk, as opposed to lying on a shelf gathering dust, and it already has several bookmarks scattered throughout it. Now, if only there was an Automating System Administration with Python title available…