1.1 Linux系统管理员 1
1.1.1 简单的定义 1
前言页 1
译者序 1
前言 1
作者介绍 1
第一部分 Linux系统管理简介 1
第1章 什么是系统管理员 1
1.1.2 SAGE给出的定义 2
1.2.2 为客户服务的态度 3
1.2.1 Linux高手 3
1.2 必备的背景知识与技巧 3
1.3.1 用户管理 4
1.3 系统管理员职责与责任 4
1.2.3 善于接受挑战 4
1.3.3 网络管理 5
1.3.2 软硬件维护 5
1.4 小结 6
2.1.1 超级用户的UNIX命令 7
2.1 超级用户的得力工具 7
第2章 系统管理员必备工具 7
2.1.2 Linuxconf、Control-Panel与配置实用程序 17
2.2.1 Linux Documentation Project站点 21
2.2 管理员的Web资源 21
2.2.2 Linux Kernel Archives站点与Kernelnotes站点 22
2.2.3 Linuxcare站点 23
2.2.4 Linux Today站点 24
2.3 其他信息源 25
2.2.5 其他有用的Web站点 25
2.3.2 FTP档案 26
2.3.1 邮件列表 26
2.3.3 新闻组 27
2.4 小结 28
3.1.1 单机安装 29
3.1 缺省安装方法与自定义安装方法 29
第二部分 Linux概述 29
第3章 安装策略 29
3.2 克隆安装 32
3.1.2 可伸缩性问题 32
3.2.1 自定义方法 33
3.3.1 创建安装模板 43
3.3 基于模板的方法 43
3.2.2 使用kickstart文件与RPM 43
3.3.2 基于类的自定义 48
3.3.3 一个实现实例 49
3.4 小结 51
4.1.1 文件系统层次标准 52
4.1 文件系统布局映像 52
第4章 从何处获取信息 52
4.1.2 Red Hat文件系统布局 57
4.2.1 proc文件系统 58
4.2 检查进程 58
4.2.2 进程状态工具 65
4.2.3 检查设备 67
4.3.1 被分配的主版本号与从版本号 72
4.3 设备命名方案 72
4.3.2 其他的设备管理方案 73
4.4 小结 74
5.1.1 概述 75
5.1 Linux启动加载程序 75
第5章 系统启动与关闭 75
5.1.2 Linux加载程序LILO 76
5.1.3 LILO使用技巧与诀窍 82
5.1.4 LILO之外的其他启动加载程序 86
5.2.2 /etc/inittab脚本与rc脚本 87
5.2.1 内核启动与设备初始化 87
5.2 Linux启动过程与系统初始化脚本 87
5.2.3 关于运行级别的更多讨论 91
5.3 关闭系统 94
5.4 小结 95
6.1 内核Oops 96
第6章 系统失败诊断与恢复 96
6.2.1 在启动时确定硬件错误 97
6.2 硬件错误 97
6.2.3 即插即用设备 98
6.2.2 BIOS问题 98
6.2.4 PCI设备 99
6.3.1 使用/proc进行问题诊断 100
6.3 诊断工具 100
6.3.3 网络接口卡诊断 101
6.3.2 使用isapnp程序 101
6.3.4 DOS诊断工具 103
6.4.1 创建救援磁盘 104
6.4 创建与使用救援磁盘 104
6.4.2 启动救援会话 105
6.4.4 重新创建LILO 106
6.4.3 救援磁盘工具箱 106
6.4.7 紧急文件复制 107
6.4.6 修复分区 107
6.4.5 重写配置文件 107
6.5 系统日志分析 110
6.4.8 恢复被删除的文件 110
6.6 内核错误定位 112
6.6.1 内核错误解码 113
6.6.2 使用System.map文件 116
6.8 小结 117
6.7 寻求帮助 117
7.1.1 单独硬盘与多个硬盘 119
7.1 硬盘与分区的物理概念 119
第三部分 文件系统和硬盘管理 119
第7章 文件系统 119
7.1.2 分区策略 120
7.1.3 使用fdisk进行分区 121
7.1.5 使用sfdisk进行分区 125
7.1.4 使用cdisk进行分区 125
7.1.6 Disk Druid 127
7.2.1 文件系统工具 128
7.2 文件系统的创建与管理 128
7.2.2 使用fsck进行文件系统修复与维护 129
7.2.3 利用mount命令访问文件系统 134
7.2.4 空间分配策略与空间增长估计 135
7.3.1 Minix文件系统 136
7.3 文件系统类型 136
7.4.1 监视空间的使用情况 137
7.4 空间管理与限额 137
7.3.2 扩展2文件系统 137
7.3.3 其他文件系统类型 137
7.4.2 本地文件系统与共享文件系统 142
7.4.3 建立文件系统限额 143
7.5 小结 146
8.1 IDE设备命名 147
第8章 添加或替换硬盘 147
8.2.1 /etc/fstab文件格式 148
8.2 管理/etc/fstab文件 148
8.2.2 剖析文件系统配置文件 149
8.3.1 为什么需要使用SCSI 150
8.3 SCSI设备 150
8.3.2 SCSI链 151
8.3.4 受支持的SCSI设备 152
8.3.3 选择控制器 152
8.3.6 设备终端与SCSI ID 154
8.3.5 布线需要 154
8.3.7 SCSI设备命名方法 155
8.5 小结 156
8.4 其他设备 156
9.2.1 RAID使用目标 157
9.2 RAID概述 157
第9章 Linux与RAID 157
9.1 Linux RAID的支持背景 157
9.2.2 RAID级别 158
9.3 Linux软件RAID 161
9.3.1 RAID工具 162
9.3.2 所支持的RAID级别 165
9.3.3 实现软件RAID 169
9.4.1 RAID控制器驱动程序 187
9.4 硬件RAID与Linux 187
9.4.2 外部RAID设备 188
9.6 小结 189
9.5 其他信息来源 189
10.1.1 软盘驱动器 190
10.1 可移动介质设备 190
第10章 管理可移动介质设备 190
10.1.2 只读光盘驱动器 191
10.1.3 可刻录光盘驱动器与可改写光盘驱动器 192
10.2.1 向内核中添加对并口存储设备的支持 201
10.2 并口存储设备 201
10.2.2 Zip驱动器 202
10.2.3 并口ATAPI/IDE设备 203
10.3.1 mtools软件包 204
10.3 设置用户访问许可 204
10.3.2 为用户设置装配权限 206
10.3.3 可移动介质设备的自动装配 207
10.4 小结 209
10.3.4 混合方法 209
第11章 备份什么以及如何备份 211
第四部分 备份与恢复 211
11.1.3 面向任务的文件 212
11.1.2 用户文件 212
11.1 文件系统内容 212
11.1.1 系统配置文件 212
11.2.1 系统安装后添加的文件 213
11.2 查找新文件 213
11.3 备份策略 214
11.2.2 判断可用的备份设备 214
11.4 部分备份 217
11.5.1 备份原始操作系统 218
11.5 保持对最新Red Hat Linux的备份 218
11.5.3 日常备份操作 219
11.5.2 在应用程序安装之后进行备份 219
11.6.3 增量备份 221
11.6.2 部分备份 221
11.6 备份的类型 221
11.6.1 完全备份 221
11.7.1 临时性的家庭用户 222
11.7 使用循环备份调度表 222
11.7.2 典型的工作站 224
11.7.3 备份实例分析 226
11.7.5 其他可用备份介质 227
11.7.4 可写光盘的使用 227
11.8.1 使用tar进行备份 228
11.8 开发备份脚本 228
11.8.2 实现完全备份以及利用dump与restore进行恢复 229
11.8.5 专用备份软件 231
11.8.4 可能存在的备份问题与备份方法 231
11.8.3 利用cpio快速存档 231
11.9 小结 234
17.2.1 Samba概述 236
12.1.2 设备的选择标准 236
第12章 介质选择与存储 236
12.1 备份介质 236
12.1.1 磁带备份设备的信息源 236
12.1.3 自动加载器问题 237
12.1.4 介质的选择标准 238
12.2.3 SCSI磁带设备 240
12.2 磁带驱动器接口 240
12.2.1 软盘磁带设备 240
12.2.2 ATAPI磁带驱动器 240
12.3.2 外地存储 241
12.3 有关存储问题 241
12.3.1 现场存储 241
12.4 小结 242
12.3.3 多个副本 242
12.3.4 磁带委托存储服务 242
13.1.1 用户使用错误 243
第13章 恢复丢失的数据 243
13.1 数据丢失情况 243
13.1.2 避免用户错误的简单防止措施 246
13.1.3 病毒与其他破坏性软件 249
13.1.4 破坏性软件的防御措施 250
13.1.5 系统破坏者与对现实不满者 251
13.1.6 针对具有破坏性的人的系统防治措施 252
13.1.8 防治与恢复方法 253
13.1.7 硬件失败 253
13.1.9 其他数据丢失灾难情况 254
13.2.2 间接代价 255
13.2 数据恢复代价 255
13.2.1 直接代价 255
13.3.1 制定数据恢复计划 256
13.3 灾难后数据恢复计划 256
13.3.2 计划维护 258
13.4 小结 259
14.1 网络层次 261
第五部分 网络互连 261
第14章 TCP/IP与以太网 261
14.1.2 Internet层 262
14.1.1 网络访问层 262
14.2 IP地址 263
14.1.3 传输层 263
14.1.4 应用程序层 263
14.2.2 无分类IP地址 264
14.2.1 地址类型 264
14.3.1 以太网接口卡与线缆 265
14.2.3 子网互连 265
14.3 在以太网上运行TCP/IP 265
14.3.3 交换机 266
14.3.2 以太网集线器 266
14.3.5 选择以太网介质 267
14.3.4 使用交换机 267
14.4 添加以太网接口 268
14.5 路由 269
14.4.1 内核级配置 269
14.4.2 软件级配置 269
14.5.3 路由表 270
14.5.1 路由网关 270
14.5.2 路由配置 270
14.5.4 动态路由 275
14.6.2 DNS 280
14.6 名字服务 280
14.6.1 背景知识 280
14.6.3 UNIX与Linux系统上的名字服务 281
14.6.4 网络信息服务 286
14.7 小结 288
15.1.2 与其他操作系统实现共享 289
第15章 共享资源 289
15.1 网络的共享 289
15.1.1 与Linux/UNIX主机实现共享 289
15.2.1 建立本地打印机 290
15.2 建立打印队列 290
15.2.3 建立远程打印机 294
15.2.2 设置他人访问许可 294
15.3.1 NFS服务器配置 295
15.3 网络文件服务 295
15.3.2 /etc/exports文件 297
15.3.3 NFS客户配置 299
15.4 Automount监视程序与Autofs 301
15.3.4 AFS与Coda 301
15.4.1 BSD Automount监视程序 302
15.4.2 Linux Autofs 304
15.5 小结 305
16.1 为什么需要进行网络监视 307
第16章 网络监视 307
16.2 监视系统 308
16.3 Sniffer 312
16.3.1 使用Sniffer 314
16.3.2 使用Sniffer的危险 316
16.4 流量分析程序 317
16.4.1 判断网络瓶颈 321
16.4.2 分析流量的类型 322
16.5 小结 323
17.1.2 一个简单的NT网络 324
第17章 与WindowsNT网络的集成 324
17.1 Windows网络互连 324
17.1.1 专用术语 324
17.2 NT环境下的Linux与Samba 326
17.2.2 分析Samba配置文件 335
17.2.3 Linux与Samba作为客户操作系统 340
17.2.4 Linux与Samba作为服务器操作系统 342
17.2.5 Samba帮助的获取 345
17.3 小结 346
18.1 使用网络邻居 347
第18章 与其他网络操作系统的集成 347
18.2.2 向内核中添加IPX协议支持 348
18.2.1 NetWare互操作性选项 348
18.2 NetWare环境下的Linux 348
18.2.4 使用Linux作为NetWare客户 349
18.2.3 Novell网络互连的概念 349
18.2.5 Linux作为NetWare服务器 350
18.3.1 配置内核支持AppleTalk 362
18.3 AppleTalk环境下的Linux 362
18.2.6 启动mars_nwe服务器 362
18.3.2 在Linux系统上配置AppleTalk服务 363
18.4 小结 372
18.3.3 启动netatalk服务器 372
19.1.1 低级服务 373
19.1 选择将要提供的服务 373
第六部分 Internet服务 373
第19章 建立Internet服务 373
19.2 Internet服务inetd 374
19.1.4 其他Internet服务 374
19.1.2 Internet服务 374
19.1.3 远程登录服务 374
19.3 使用TCP-Wrapper 376
19.3.3 配置 377
19.3.2 访问控制 377
19.3.1 日志 377
19.4 xinetd替代inetd 379
19.3.4 测试tcpd配置 379
19.5.1 Telnet 381
19.5 标准服务:远程登录、程序执行与文件拷贝 381
19.5.2 R命令 382
19.5.3 SSH 385
19.6 小结 388
20.1 MTA、MUA与MDA 389
第20章 电子邮件 389
20.2 SMTP服务 390
20.4 配置邮件连接 391
20.3.2 IMAP 391
20.3 POP服务与IMAP服务 391
20.3.1 POP 391
20.6 选择MTA 392
20.5 处理垃圾邮件 392
20.7.1 sendmail功能与选项 393
20.7 sendmail 393
20.7.2 为不同配置情况设置sendmail 394
20.8.1 多个域 396
20.8 智能位 396
20.8.2 声明虚拟用户表 397
20.9.1 smail传输、导控以及路由 398
20.9 smail 398
20.8.3 测试与运行sendmail 398
20.9.2 smail配置 399
20.9.4 配置文件 400
20.9.3 工作站配置 400
20.9.5 导控文件 401
23.4 提出问题与寻求答案 403
20.9.6 路由文件 404
20.10.1 qmail传输选项 406
20.9.7 运行smail 406
20.10 qmail 406
20.11 exim 407
20.10.2 qmail消息处理 407
20.10.3 qmail用户ID与配置文件 407
20.11.3 邮件服务器 408
20.11.1 exim配置 408
20.11.2 exim工作站 408
20.12 邮件处理的辅助程序 409
20.11.4 垃圾邮件保护 409
20.13 fetchmail 410
20.14.1 spool访问 411
20.14 支持多个电子邮件客户 411
20.15.1 mail/mailx 412
20.14.2 上锁问题 412
20.15 流行的Linux电子邮件客户程序 412
20.15.3 xfmail 413
20.15.2 elm/pine 413
20.16.3 别名的结构 414
20.16 别名 414
20.16.1 管理别名 414
20.16.2 别名主控文件位置 414
20.16.5 别名与邮件列表 415
20.16.4 强制性别名 415
20.17.1 中间处理列表与非中间处理列表 416
20.16.6 别名的分布式管理 416
20.17 利用majordomo管理邮件列表 416
20.18 归档或不归档 417
20.17.2 开放列表与关闭列表 417
20.17.3 隐私与安全 417
20.19 配置纯摘要列表 418
20.21 选择与安装MTA 430
20.20 参考资料 430
20.24 小结 431
20.22 特殊的MTA 431
20.23 反垃圾邮件措施 431
第21章 FTP与匿名FTP 432
21.1 在服务器上建立FTP服务 433
21.1.1 在Wu-ftpd上配置匿名FTP 437
21.1.2 其他FTP服务器 438
21.2.1 保护FTP服务器 439
21.2 安全问题与法律问题 439
21.2.2 处理warez D00dz 446
21.3 小结 449
22.2.1 关于Apache工程 450
第22章 Web服务 450
22.1 Web服务简介 450
22.2 Apache 450
22.2.2 安装Apache 451
22.2.3 启动Apache与停止Apache运行 452
22.2.4 配置Apache 453
22.2.5 各种配置技术 458
22.2.7 Apache模块 461
22.2.6 Apache安全技巧 461
22.2.8 配置虚拟主机 463
22.2.9 Comanche 467
22.2.10 Apache插件 468
22.3.1 squid的特性 469
22.3 squid 469
22.3.3 配置squid 470
22.3.2 启动squid 470
22.4.2 Boa 471
22.4 其他Web服务器 471
22.4.1 Roxen Challenger 471
22.4.7 WN 472
22.4.3 dhttpd 472
22.4.4 fhttpd 472
22.4.5 ghttpd 472
22.4.6 thttpd 472
22.5 小结 473
23.1.1 服务器容量规划 474
第23章 新闻服务 474
23.1 运行新闻服务器 474
23.1.2 运行新闻服务器 475
23.2 INN与Friend 476
23.1.3 外购新闻服务 476
23.2.1 安装INN 477
23.2.2 配置INN 480
23.2.5 使用nntpcache 495
23.2.3 INN的垃圾新闻过滤选项 495
23.2.4 Diablo 495
23.3.1 文本客户程序 498
23.3 新闻客户程序 498
23.3.2 图形客户程序 500
23.3.3 阅读新闻的其他方法 503
23.5 小结 504
24.1.1 ICQ 505
24.1 Internet电话简介 505
第24章 Internet电话与会议 505
24.1.2 阻碍Internet电话广泛使用的几大问题 506
24.1.3 硬件需求 507
24.1.4 多点传送骨干网 508
24.2.1 IRC工作原理 510
24.2 Internet在线聊天 510
24.2.4 安装ircII 511
24.2.3 如何获取ircII 511
24.2.2 ircII 511
24.2.5 运行ircII 512
24.2.6 IRC的X Windows程序Zircon 513
24.2.7 X-Chat 514
24.3.1 ICQ、IP伪装与防火墙 515
24.3 ICQ与ICQ克隆程序 515
24.2.8 BitchX 515
24.3.2 Mirabilis的JavaICQ 516
24.3.3 licq 517
24.3.4 micq 518
24.4 多媒体会议工具 519
24.4.2 QSeeMe 520
24.4.1 Speak Freely 520
24.5 小结 521
24.4.3 Cu-SeeMe 521
25.1 确定安全需求 522
第25章 安全原则 522
25.2.1 口令 524
25.2 确保Red Hat服务器安全 524
25.2.2 文件系统 529
25.2.3 物理安全--系统的物理风险最小化 540
25.2.4 确保服务的安全 542
25.2.5 文件系统安全 543
25.3.1 检查日志文件 544
25.3 安全监视 544
25.3.4 检查/var/spool/cron 545
25.3.3 检查新的setuid/setgid文件 545
25.3.2 检查网络接口 545
25.3.8 保持软件的更新 546
25.3.7 时刻关注最新出现的威胁 546
25.3.5 检查/var/spool/atjobs 546
25.3.6 检查发生了改变的系统文件 546
25.4 制定安全策略 547
25.4.4 制定规则 548
25.4.3 反应策略 548
25.4.1 设置安全策略 548
25.4.2 维护策略 548
25.4.5 实施严格的执行策略 549
25.4.6 违反使用规则的处理 550
25.5 小结 551
第26章 防火墙策略 553
第七部分 安全与防火墙 553
26.1 防火墙类型 554
26.2 防火墙选项 556
26.3 Linux代理服务 557
26.4 Linux内核配置 558
26.5 SOCKS代理服务器 560
26.5.2 修改SOCKS配置文件 561
26.5.1 建立SOCKS 561
26.6 squid2 563
26.7.1 获取FWTK 564
26.7 TIS FireWall ToolKit 564
26.7.2 配置FWTK 565
26.7.3 配置Telnet代理 566
26.8 建立防火墙 568
26.9.2 理解报文过滤 572
26.9.1 安装ipchains 572
26.9 利用ipchains建立防火墙 572
26.9.3 防火墙实例 575
26.11 小结 577
26.10 调试防火墙 577
27.1.1 利用sudo设置特权 578
27.1 创建安全管理员工具箱 578
第27章 安全管理员工具箱 578
27.1.2 其他安全工具 585
27.1.3 安全工具资源 587
27.2.3 Linux入门站点 589
27.2.2 Red Hat安全信息 589
27.2 Web上的安全资源 589
27.2.1 USENIX Web站点 589
27.3.1 comp.security.announce以及其他USENET新闻组 590
27.3 Web之外的其他信息来源 590
27.3.2 安全邮件列表 591
27.3.3 其他邮件列表 592
27.4 小结 593
28.1.1 入侵事件处理原则 594
28.1 入侵者侵入系统之后 594
第28章 黑客攻击之后怎么办 594
28.1.2 收集入侵证据 595
28.2.1 分析系统日志 596
28.2 确定入侵的破坏程序 596
28.2.2 入侵检测工具 597
28.2.3 Trinux作为安全性工具 599
28.2.5 系统入侵后的清理工作 603
28.2.4 其他工具 603
28.3.2 备份的可信赖性 604
28.3.1 什么情况下应该废弃被破坏的系统 604
28.3 重新安装操作系统 604
28.4 小结 605
28.3.3 从安装介质重新安装系统 605
29.2 设置用户许可 607
29.1 向系统中添加用户 607
第八部分 用户管理与交互 607
第29章 用户与组 607
29.3 创建组 608
29.4.1 /etc/passwd文件 609
29.4 系统文件 609
29.4.2 /etc/group文件 610
29.4.3 /etc/shadow文件 611
29.4.6 /etc/skel目录 612
29.4.5 /etc/login.defs 612
29.4.4 /etc/gshadow文件 612
29.5.1 手工地添加用户 613
29.5 添加与删除用户账号 613
29.5.3 使用命令行工具添加用户 615
29.5.2 手工编辑/etc/passwd与/etc/group文件时应该注意的问题 615
29.5.5 关闭用户账号 621
29.5.4 在批处理模式下处理用户账号 621
29.6 删除用户帐号的时机 622
29.7.3 groupmod 623
29.7.2 groupdel 623
29.7 有效地使用组 623
29.7.1 groupadd 623
29.7.5 利用GUI工具添加组 624
29.7.4 grpck 624
29.9 newgrp命令 625
29.8 使用组设置话可 625
29.10.2 chfn 626
29.10.1 chage 626
29.10 与用户和组相关的其他系统命令 626
29.10.5 chsh 627
29.10.4 chown 627
29.10.3 chgrp 627
29.10.9 su 628
29.10.8 passwd 628
29.10.6 gpasswd 628
29.10.7 groups 628
29.11 小结 629
29.10.10 usermod 629
30.1.1 建立管理规则 630
30.1 “User”不是“Luser” 630
第30章 有效地与用户交互 630
30.1.2 处理用户打扰问题 632
30.1.3 通过培训使用户打扰最小 633
30.2.1 优秀帮助桌面的特点 635
30.2 开发帮助桌面 635
30.1.4 组合使用用户交互策略 635
30.2.2 帮助桌面的人员配备策略 636
30.2.3 开放源代码解决方案 637
30.2.4 为Red Hat系统建立基于WREQ的帮助桌面 639
30.3 学会如何说不 646
30.3.1 顾客并非总是正确的 647
30.3.2 处理麻烦用户 648
30.3.3 不允许任何例外 649
30.4 小结 650
31.1.1 shell之间的区别 651
31.1 shell入门 651
第九部分 shell、脚本编程与自动化 651
第31章 shell 651
31.1.2 选择作为交互使用的shell 652
31.2.2 通配符 653
31.2.1 bash的功能 653
31.1.3 交互模式与非交互模式 653
31.2 bash:Bourne Again shell 653
31.2.4 命令行输入完成 655
31.2.3 别名 655
31.2.6 输入输出重定向 656
31.2.5 管道 656
31.2.7 历史命令记录 657
31.2.9 作业控制 659
31.2.8 命令行编辑 659
31.2.11 启动交互式会话 661
31.2.10 内置命令 661
31.2.13 引用 662
31.2.12 非交互式会话的启动 662
31.2.14 bash变量 663
31.2.16 bash的优缺点 664
31.2.15 修改命令提示 664
31.3.2 通配符 665
31.3.1 tcsh的功能 665
31.3 tcsh: 增强的C shell 665
31.3.3 别名 666
31.3.4 命令行输入完成 667
31.3.7 输入输出重定向 668
31.3.6 管道 668
31.3.5 拼写纠正 668
31.3.8 历史命令记录 669
31.3.9 作业控制 670
31.3.10 内置命令 672
31.3.11 键盘绑定 673
31.3.12 启动与关闭交互式会话 674
31.3.14 变量 675
31.3.13 自动事件、周期性事件以及定时事件 675
31.3.15 编辑命令提示 677
31.4.2 公共域Korn shell 678
31.4.1 Z shell 678
31.3.16 tcsh的优缺点 678
31.4 其他shell 678
31.5 小结 679
32.1.2 shell脚本定义 680
32.1.1 shell脚本编程的重要性 680
第32章 shell脚本编程 680
32.1 shell脚本编程简介 680
32.1.3 脚本的解释执行与编译执行 681
32.1.4 选择脚本编程shell 682
32.2.1 bash语法 683
32.2 使用bash进行shell脚本编程 683
32.1.5 标准化脚本 683
32.2.2 创建与使用变量 685
32.2.3 表达式 687
32.2.4 控制结构 690
32.2.5 内置命令 696
32.2.6 解析命令行参数 703
32.2.7 使用函数 704
32.2.8 bash脚本示例 706
32.2.9 调试shell脚本 707
32.3.2 perl入门 709
32.3.1 perl的特性 709
32.3 perl脚本编程 709
32.3.3 perl控制结构 710
32.4.1 Tcl/Tk 711
32.4 其他语言 711
32.3.4 其他perl资源 711
32.4.2 Python 712
32.4.3 Eiffle 713
32.5.1 Make 714
32.5 编程工具 714
32.6 小结 715
32.5.3 CVS 715
32.5.2 RCS 715
33.1 管理系统中的诸多问题 716
第33章 自动化操作 716
33.1.1 任务的自动化 717
33.2 使用at执行一次性任务 718
33.1.2 自动执行定期性的任务 718
33.2.1 at实用程序 719
33.2.2 使用at的实例 721
33.2.4 atq实用程序 723
33.2.3 batch实用程序 723
33.2.7 at后台程序 724
33.2.6 atrun实用程序 724
33.2.5 atrm实用程序 724
33.2.8 指定可以使用at的用户 725
33.3.1 启动cron 726
33.3 使用cron 726
33.3.2 有效使用crontab 727
33.3.3 分析crontab文件中的表项 728
33.3.5 指定哪些用户可以使用cron 731
33.3.4 全局cron文件 731
33.4 调试cron作业 732
33.3.6 使用cron的例子 732
33.4.2 使用printf与echo作为调试工具 733
33.4.1 捕获输出结果 733
33.5 小结 734
33.4.3 检查日志文件 734
第34章 Linux系统性能优化 737
第十部分 系统性能优化与内核创建 737
34.1 性能优化的内容 738
34.2 代价与利益的权衡 740
34.2.2 系统需求 741
34.2.1 硬件开销 741
34.3 理解性能评价技术 742
34.2.3 性能加强 742
34.3.1 基于控制台的工具 743
34.3.2 图形化实用程序 747
34.3.3 实时性能数据与收集的性能数据 749
34.3.4 进程管理 750
34.5.1 确定系统中需要多少RAM 751
34.5 内存与交换空间 751
34.4 理解网络性能 751
34.5.2 确定实际的RAM需求 753
34.6.1 计算交换空间 754
34.6 交换空间优先级 754
34.6.2 分配交换空间 755
34.7.1 交换文件 756
34.7 交换分区与交换文件 756
34.8.1 为什么需要对内核进行修改 757
34.8 /proc中的可优化内核参数 757
34.7.2 交换分区 757
34.8.2 理解/proc 758
34.9 使用echo修改系统行为 759
34.10 小结 760
35.1.1 为什么需要重新编译?进行重新编译的原因 761
35.1 使用源代码 761
第35章 自定义Linux内核 761
35.1.2 获取源代码 762
35.1.3 Red Hat中所提供的内核源代码与补丁程序 765
35.1.4 内核源代码布局 766
35.2 在内核源代码中应用补丁程序 768
35.2.1 正式补丁程序与非正式补丁程序 768
35.2.2 从何处获取补丁程序 770
35.3 内核可加载模块 770
35.3.1 模块化内核的优点 771
35.3.2 打开模块支持功能 771
35.3.3 模块实用程序 772
35.3.4 不应该使用模块的情况 774
35.4 内核创建 774
35.4.1 配置Linux内核 774
35.4.2 修改makefile文件 793
35.5 处理内核的多版本问题 793
35.5.1 自定义安装脚本 797
35.5.2 运行make 797
35.6 小结 798
第36章 美国俄勒冈州波特兰的Centennial School District 799
36.2 如何涉及到Bynari 800
36.3 从Dallas到Portland 800
36.1 Centennial的背景 800
36.4 Connie的书面需求 801
36.5 工程小组的关注点 801
36.6 统计Centennial中的资源 802
36.8 Centennial选择使用Red Hat 803
36.9 所面临的挑战 803
36.7 组织行动目标 803
36.11 Red Hat 6.0 能够帮助实现Centennial的需求 804
36.12 Red Hat 6.0与Internet 804
36.10 关于Linux与Red Hat 6.0的问题 804
36.14 约束 805
36.15 技术专业训练以及可管理性 805
36.13 定义其他需求 805
36.18 工程计划 806
36.17 短期目标与长期目标 806
36.19 Web服务器 806
36.16 工程规范 806
36.20 应用程序安全访问管理 807
36.21 使用Samba进行网络认证、访问与用户管理 807
36.22 Centennial异构环境下的Samba 808
36.23 培训Centennial人员 808
36.24 关于Samba 809
36.24.2 使用Samba从WindowsPC上访问Red Hat 6.0系统 810
36.25 在Linux环境下对Macintosh计算机进行网络互连 810
36.24.1 使用Samba实现全局打印服务 810
36.26 受限的管理控制与网络访问 811
36.29 使用IP伪装 812
36.28 Internet访问 812
36.30 Linux2.2x内核 812
36.27 Centennial的进展 812
36.31 发布产品应用程序 813
36.32 电子邮件 813
36.33 实例:sendmai.cf文件 814
36.34 系统管理 814
36.35 管理用户与组 815
36.36 不同用户账号的管理情形 815
36.37 使用TCP Wrapper进行内容管理 816
36.38 使用FTP服务器下载文件 817
36.39 小结 818