第1章 节省您的精力 1
1.1说明文档:要知道它是一件好东西 1
1.2说明文档:记录正在进行的工作 2
1.3说明文档:使用wiki 3
1.4说明文档:同一个安装下运行多个独立的wiki 4
1.5脚本:设置显示样式 8
1.6处理Perl中的变量 8
1.7充分测试脚本 11
1.8版本控制:使用Subversion别名 13
1.9版本控制:为Subversion日志消息添加标签 14
1.10版本控制:加入多个文件到Subversion 14
1.11版本控制:让Subversion忽略文件 16
1.12版本控制:分割库 17
1.13版本控制:建立库的分支 19
1.14版本控制:合并库 20
1.15测试:要知道它是一件好东西 20
1.16重复劳动 22
第2章 集中管理网络资源:Kerberos、LDAP和NFS 25
2.1建立Kerberos身份验证系统 25
2.1.1服务器的安装与配置 26
2.1.2 Kerberos客户机设置 31
2.2设置Kerberos SSH登录系统 31
2.3搭建LDAP服务器 34
2.3.1 OpenSSL 34
2.3.2 LDAP服务器 36
2.4完成LDAP搭建:使用Kerberos进行身份鉴别 39
2.4.1搭建数据库 39
2.4.2测试 41
2.4.3排除故障 41
2.5填充LDAP数据库 42
2.6建立LDAP客户端 45
2.7使用LDAP服务器 47
2.7.1 ldapsearch 48
2.7.2 ldapadd 48
2.7.3 Idapmodify 49
2.7.4 ldapdelete 50
2.8搭建一个从LDAP服务器 50
2.9搭建备份Kerberos服务器 55
2.10使用脚本添加一个新用户到LDAP 58
2.11使用LDAP脚本进行修改和删除操作 62
2.12使用一个脚本查询LDAP 66
2.13向LDAP添加新域 68
2.14自动挂载NFS系统 70
2.15 连接苹果电脑到Linux NFS服务器 71
2.16提高NFS系统的性能 72
第3章 监控与升级 74
3.1 Nagios:建立集中监控 74
3.2在Nagios中添加另一台主机 78
3.3在Nagios中使用模板 78
3.4使用Nagios中的主机工作组和服务 79
3.5设置Nagios报警 81
3.6定义Nagios命令 82
3.7写Nagios插件 83
3.8在Nagios中设置NRPE插件 85
3.9启用Nagios中的外部命令 88
3.10同步根目录安装 90
3.11设置Puppet 91
3.11.1设置一个客户端 93
3.11.2设置网站清单 93
3.12创建Puppet和资源的依存关系 96
3.13 Puppet:管理其他类型 96
3.14在Puppet中设置节点 98
3.15在LDAP中定义Puppet节点 100
3.16 Puppet:使用Facter和模板 102
3.16.1客户Fact 104
3.16.2其他变量 104
3.17使用ClusterSSH 105
第4章 系统备份及数据管理 107
4.1计算网络中所有磁盘的总容量及当前使用情况 109
4.2查找文件更换频率 112
4.3备份wiki 113
4.4备份MySQL 115
4.5备份Kerberos和LDAP 116
4.6用自动化的rsync实现快速恢复 118
4.7使用带有SSH密钥的rsync 123
4.8通过电子邮件创建离站式备份 124
4.9使用anacron为笔记本电脑备份 128
4.10基本的数据恢复工具:fsck和dd 128
4.11使用Foremost恢复数据 131
4.12数据恢复工具:Autopsy 132
4.13数据的安全擦除 134
第5章 文件系统管理 136
5.1用tune2fs命令将ext2转化为ext3 136
5.2对自动fsck检查进行更改 137
5.3在大型文件系统及目录中节省空间 138
5.4磁盘、UUID及Labels管理 139
5.5随时更改磁盘大小 141
5.6 RAID及madadm命令 146
5.7使用rsnapshot软件 150
5.8其他文件系统的管理 153
5.8.1 ext4文件系统 153
5.8.2 XFS文件系统 154
第6章 保护您的系统 156
6.1使用和限制SSH密钥 156
6.2用keychain管理密钥 158
6.3通过ssh限制rsync 160
6.4ssh选项:保持您的连接处于激活状态 162
6.5ssh选项:减少输入 163
6.6通过现有的ssh连接传输文件 164
6.7Kerberize您的SSH设置 166
6.8用Kerberos设定和执行密码策略 167
6.9用pam_cracklib设定和执行密码策略 169
6.10检查密码策略 170
6.11限制sudo 171
6.12sudo:找出要用的密码 173
6.13用iptables阻止暴力攻击 174
6.14用chkrootkit监视非法入侵 177
6.15用cron-apt进行更新 179
第7章用Apache进行工作 181
7.1使用apache2命令行 181
7.2Apache2:处理模块 185
7.3为Apache2设立一个SSL证书 187
7.4用SSL编译和配置Apache 189
7.4.1测试 192
7.4.2故障诊断 192
7.5用htaccess保护网站的安全 193
7.6保护网站的安全:具有Kerberos的Apache 195
第8章 更好地使用命令行 198
8.1使用bash提供的快捷键 198
8.2书写自己的bash函数 202
8.3用bash实现可编程的自动补全 204
8.4使用find命令 207
8.4.1参数 208
8.4.2表达式 209
8.5使用xargs 210
8.5.1使用xargs进行查找 210
8.5.2 xargs和文件内容 211
8.5.3移动文件 212
第9章 文件中的文本操作 214
9.1使用more和less命令以及压缩文件 214
9.2发挥sed的威力 216
9.2.1删除行 217
9.2.2替换 218
9.2.3追加、插入以及更改行 220
9.3使用awk:代码片段与快速参考 221
9.4使用Perl操纵文件内容 223
9.5当不是ASCII编码时:处理UTF-8编码 226
9.5.1在X11中输入UTF-8字符 227
9.5.2在Vim中输入UTF-8字符 230
9.6从二进制文件读取文本 231
第10章 信息输入和输出 234
10.1在X中更改键盘映射 234
10.2建立按键与程序的链接 235
10.3用Ipadmin自动安装打印机 237
10.4怎样使打印出来的文本文档具有可读性 239
10.5使用ssh-X进行远程登录 241
10.6使用GDM进行远程登录 241
10.7使用VNC或其他类似软件进行远程登录 242
第11章 系统故障追踪 245
11.1节约时间 245
11.2初始检查 247
11.3查看diff命令的输出 249
11.4运行strace查看系统调用 251
11.4.1设置strace选项 254
11.4.2在封装的shell脚本中运行strace 255
11.5运行ltrace及库调用 255
11.6使用syslogd进行日志记录 257
11.7使用syslog集中日志 260
11.8绘制日志数据图以定位问题:perl、gnuplot命令 261
第12章 时间管理和人员管理 265
12.1管理系统管理员工作的中断驱动性质 265
12.2记录工作和问题 267
12.3售票系统:利用RT 268
12.3.1安装 269
123.2基本配置 269
12.3.3创建RT 271
12.34权限 273
12.3.5scrips 274
12.4通过E-mail创建RT票签 275
12.5为RT创建一个安全设置 276
12.6完成大项目 278
12.7和同事的相处 279
附录Perl小提示 282
Perl模块和CPAN 282
有用的模块 284
Perl语法注解 286