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.