Chapter 7. System Administration

Introduction

Credit: Donn Cave, University of Washington

In this chapter, we consider a class of programmer—the humble system administrator—in contrast to every other chapter’s focus on a functional domain. As a programmer, the system administrator faces most of the same problems that other programmers face, and should find the rest of this book of at least equal interest.

Python’s advantages in this domain are also quite familiar to any other Python programmer, but its competition is different. On Unix platforms, at any rate, the landscape is dominated by a handful of lightweight languages such as the Bourne shell and awk that aren’t exactly made obsolete by Python. These little languages can often support a simpler, clearer, and more efficient solution than Python. But Python can do things these languages can’t, and it’s often more robust in the face of things such as unusually large data inputs. Of course, another notable competitor, especially on Unix systems, is Perl (which isn’t really a little language).

One thing that stands out in this chapter’s solutions is the wrapper: the alternative, programmed interface to a software system. On Unix, this is usually a fairly prosaic matter of diversion and analysis of text I/O. Python has recently improved its support in this area with the addition of C-level pseudotty functions, and it would be interesting to see more programmers experiment with them (see the pty module). The pseudotty device is like a bidirectional pipe with tty driver support, so it’s essential for things such as password prompts that insist on a tty. And because it appears to be a tty, applications writing to a pseudotty normally use line buffering instead of the block buffering that can be a problem with pipes. Pipes are more portable and less trouble to work with, but they don’t work for every application.

On Windows, the situation is often not as prosaic as on Unix-like platforms, as information may be somewhere in the registry, available via APIs, or available via COM. The standard Python _winreg module and Mark Hammond’s win32all package give the Windows administrator access to all of these sources, and you’ll see more Windows administration recipes here than you will for Unix. The competition for Python as a system administration language on Windows is feeble compared to that on Unix, so this is another reason for the platform’s prominence here. The win32all extensions are available for download from Mark Hammond’s web page at http://starship.python.net/crew/mhammond/win32/Downloads.html. win32all also comes with ActiveState’s ActivePython (http://www.activestate.com/ActivePython/). To use this extremely useful package most effectively, you also need Python Programming on Win32, by Mark Hammond and Andy Robinson (O’Reilly, 2000).

While it may be hard to see what brought all the recipes together in this chapter, it isn’t hard to see why system administrators deserve their own chapter: Python would be nowhere without them! Who else can bring an obscure, fledgling language into an organization and almost covertly infiltrate it into the working environment? If it weren’t for the offices of these benevolent anarchists, Python would surely have languished in obscurity despite its merits.

Get Python Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.