> For the complete documentation index, see [llms.txt](https://freebsd-journal-cn.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://freebsd-journal-cn.bsdcn.org/20150708-qi-ye-ji-freebsd/book-review.md).

# 书评：《系统管理与网络管理技术实践》

* 原文：[Book Review](https://freebsdfoundation.org/our-work/journal/browser-based-edition/freebsd-in-the-enterprise/)
* 作者：**Greg Lehey**

系统管理与网络管理技术实践（*The Practice of System and Network Administration*）

* Thomas A. Limoncelli、Christina J. Hogan、Strata R. Chalup
* Pearson/Addison-Wesley Professional
* ISBN 9780321492661
* 1,056 页
* 纸质书定价：$59.99
* 电子书定价（含 EPUB、MOBI、PDF）：$47.99
* FreeBSD 期刊读者专享：Limoncelli 两本著作可享 35% 折扣，请访问出版商页面 <http://informit.com/tposa>，结账时输入优惠码：TPOSA35

出版商注：第 3 版计划于 2016 年春季发行。

在系统管理类书籍中，你期望看到什么？我对这类书籍的衡量基准是 Evi Nemeth、Garth Snyder、Trent R. Hein 和 Ben Whaley 合著的《UNIX/Linux 系统管理技术手册》（下文简称 Nemeth）。而 Thomas A. Limoncelli、Christina J. Hogan 和 Strata R. Chalup 合著的《系统管理与网络管理技术实践》（下文简称 Limoncelli）则截然不同。为什么？

要回答这个问题，值得退一步想想你希望从一本系统管理书中获得什么。尽管我十分推崇 Nemeth 一书，却几乎从未真正用过它。我有许多书，查找信息时可能选其中一本，或者越来越多地在网络上查找。脚本语言或 Unix 文件系统导航这类问题尤其如此，它们并非系统管理独有，虽然 Nemeth 对这些内容有详尽描述。即便是系统管理部分，也主要局限于几个特定的非 BSD 系统。即便我使用他们描述的某个系统，其他系统的内容对我用处不大，而且我所关心的信息很可能已经过时，因为这类书大约每五年才出一个版本，远低于软件更新频率。

Limoncelli 的作者们选择描述一套完全不同的技能。他们描绘了全景：如何在大公司或至少中型公司中作为系统管理员生存下来。他们眼中“小公司”是指有 100 名员工的企业。书中这里那里会提到具体软件，但内容同样适用于 BSD、Solaris、Linux 甚至 Microsoft。他们没有重复造轮子。即便没有这些细节，他们汇集的内容也已足够庞大，超过 1,000 页，而且更多内容对普通读者来说是切题的。

一个小批评：我认为书名起错了。这是一本关于（大型）系统管理的书，而非系统维护。对我而言，第 364 页讨论客户服务接口基本原理时豁然开朗。本书的核心是人际互动，而非琐碎的技术细节。相比之下，Nemeth 把这个问题作为书末一个小小支线处理。

这类书的一个大问题是从哪里开始读。没有哪两位读者想了解的内容是相同的。而通读 1,000 页文字需要不少时间。作者们把第 1 章做成了一种带注释的索引来应对这个问题：“当……时该做什么”，涵盖文档化策略、度过重大故障、寻找新工作、优化洗碗机输出（大概是玩笑，但我仍没看懂）等主题。总共有 48 种不同的切入本书的方式。我能看出作者恨不得给纸质书加上超链接。

书的其余部分分为四个部分。每章分两半，标题为“The Basics”（基础）和“The Icing”（锦上添花），其后是简短的小结（Conclusion）和一系列练习。这些练习是用来思考的，而非追求正确答案。例如：

你的站点有多少个电子邮件命名空间？谁控制它们？

书中有很多小型案例研究，大多不到半页长，用以阐释与正文相关的真实案例。这些案例常常只涉及其中一位作者，有时还展示作者之间的意见分歧。我觉得这非常出色：它让你更清楚地区分哪些是毫无争议的最佳实践，哪些是个人偏好。

第一部分“Foundation Elements”（基础要素）处理系统管理的结构性问题：计算机、服务、客户交互等等。谈的是结构，不是细节。一台工作站？两台？还是几百台。它们带来的问题与一两台截然不同。如何保持更新？如何确保非技术背景的新员工能使用机器，而不用整天给你打电话？如何以最少的精力维持运行？如何确保服务器始终在线？这些都是我曾经抱怨过的问题，而本部分一一作了回应。有一章关于数据中心，包括物理布局和维护设备概览的实用建议。这大概是作者们最接近细节的地方。本部分还描述了灾难恢复（什么，没有灾难？当然有灾难）、安全策略、关于客户关系的两章，分别题为“Helpdesks”（帮助台）和“Customer Care”（客户关怀）。还有一章关于职业道德。

“Customer Care”是本书方法论的一个好例子。我经常抱怨帮助台。你常常被转接到一个除了照本宣科、确认你按指示操作（无论是否必要）之外所知甚少的人。本书特别警告不要使用过于机械的脚本，那只会让客户沮丧。另一个例子：“escalation”（升级）在许多帮助台似乎是陌生的词，但书中从双方角度进行了讨论。“Customer Care”一章提出并阐述了解决问题的九步流程，包括多种迭代选项。

第二部分“Change Processes”（变更流程）有些杂糅。最明显相关的章节是“Change Management”（变更管理）和“Server Upgrades”（服务器升级）。前者讲规划，后者讲执行。机器升级这个话题我特别在意，敢写的书不多。但还有“Centralization and Decentralization”（集中与分散）和“Debugging”（调试）这类主题。尤其是后者（本部分第一章）似乎并不适合放在这里。正如作者所说，它与上一部分“Customer Care”一章相关。

下一部分“Providing Services”（提供服务）是本书最接近传统系统管理的内容。这里有关于电子邮件、打印和备份的建议。但即便在这里，侧重点也与其他书不同。第一章是“Service Monitoring”（服务监控），传达的信息是：如果你无法监控，就无法管理。电子邮件？Nemeth 讨论如何搭建 sendmail、exim、postfix。Limoncelli 几乎不提单个软件，更关注可靠性、可维护性和可扩展性。你对电子邮件地址有什么策略？如果有人加入公司，与已有员工同名怎么办？两家公司合并时，如何合并电子邮件地址？

web 服务一章风格类似。奇怪的是，有些服务没有覆盖：DNS 呢？几乎没有提及。

顾名思义，“Management Practices”（管理实践）是书中技术性最弱的部分。内容不错，但许多内容同样适用于其他领域。“A Guide for Technical Managers”（技术管理者指南）引起了我的注意：几十年前我曾处在这个位置，在技术人员和管理者之间走钢丝很难。内容不错，但读完之后我感到有些失望。我说不清原因，也许反映的更多是我自身的问题而非本书的问题。虽然他们说的都对，但我很难产生共鸣。你的感受可能不同。

有两个附录：一个描述缩略语，另一个是题为“The Many Roles of a System Administrator”（系统管理员的多种角色）的 26 页内容。其中并非都是正面的！你不会在这里找到 BOFH（来自地狱的混蛋操作员），但管理员能做错的事情很多，这有助于你识别它们。

那么这本书有什么问题？很少。许多方法论看起来官僚，但在其环境中良好的流程不可或缺。它感觉专业而非极客，我怀疑正因如此 Nemeth 将保持其崇拜地位。但当我需要查阅系统管理书籍时，我会选择 Limoncelli。•

**GREG LEHEY** 是一名退休的内核黑客。他是 FreeBSD 项目的提交者和前核心团队成员，曾是 NetBSD 项目的提交者。他是 Vinum 卷管理器的作者。著作包括《Porting UNIX Software》和《The Complete FreeBSD》。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://freebsd-journal-cn.bsdcn.org/20150708-qi-ye-ji-freebsd/book-review.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
