精读笔记(RHCA 英文教材)· RH358 Chapter 5 Managing Printers and Printing Files
精读笔记(RHCA 英文教材)· RH358 Chapter 5 Managing Printers and Printing Files
教材原文:RHCA 官方英文教材(教材第 11~12 页)(OCR 整书版已从本站移除,本页为章节精读) 说明:本教材到手版本为 Instructor Guide(讲师手册),第 5 章含 Schedule/Objectives/Key Takeaways/Instructor Tips;正文细节需配合学生手册与实验。本笔记按“讲义要点 + 必要补充”双语整理。 关联知识:
分章笔记/01-Linux/02-08-Ansible自动化、02-05-服务管理与安全(systemd 服务管理);前置:RH358 Chapter 1 systemd 服务 + Chapter 2 NetworkManager
Chapter 5 | Managing Printers and Printing Files(管理打印机与打印文件)
- 一句话目标:Configure systems to print to a network printer that supports IPP Everywhere, and manage existing printer queues.(配置系统向支持 IPP Everywhere 的网络打印机打印,并管理已有打印队列)
Chapter Objectives(本章目标,双语)
By the end of this chapter, students should be able to:
- Create and manage a printer queue for a network printer, and use command-line tools to print files and manage printer queues.(为网络打印机创建/管理打印队列,用命令行工具打印文件与管理队列)
- Automate network printer configuration using Ansible.(用 Ansible 自动化网络打印机配置)
Chapter Schedule(课时表,共 85 分钟)
| Section | 主题 | 方法 |
|---|---|---|
| 1 | Configuring and Managing Printers | Lecture 20 分钟 + Guided Exercise 15 分钟 |
| 2 | Automating Printer Configuration | Lecture 5 分钟 + Guided Exercise 20 分钟 |
| - | Lab(Performance Checklist) | 25 分钟 |
Key Takeaways(本章要点 5 条)
Install and use the tools needed to discover IPP Everywhere networked printers.(安装并使用发现 IPP Everywhere 网络打印机所需的工具) Install CUPS and use the lpadmin command to create and manage a print queue.(安装 CUPS,用 lpadmin 创建与管理打印队列) Manage print jobs with the lp, lpstat, and cancel commands.(用 lp / lpstat / cancel 管理打印任务) Adjust print queue print job handling with the cupsenable, cupsdisable, cupsaccept, and cupsreject commands.(用 cupsenable/cupsdisable/cupsaccept/cupsreject 调整队列对打印任务的处理) Automate printer installation and administration with Ansible.(用 Ansible 自动化打印机的安装与管理) 中文归纳考点:① 打印机发现工具;② CUPS + lpadmin 队列管理;③ 作业管理三命令;④ 队列启停/收件四命令;⑤ Ansible 自动化。
Instructor Tips and Suggestions(讲师提示:实验环境拓扑)
- 教室评分脚本把 serverd 配成 IPP Sample server(带 Apache),把 serverc 配成 CUPS 打印服务器。
- IPP Sample server 被改造为“把打印任务存盘”,再经 Apache 网页发布 → 学生可浏览打印任务内容(相当于真实打印机的替身)。
- IPP Sample server 监听 8000 端口、不用 mDNS 通告自身;serverc 的 CUPS 有一条指向 IPP Sample server 的打印队列,监听 631 端口并用 mDNS 通告。
- 结论:学生在 serverc 上“发现打印机”,但要看打印结果需浏览 serverd 的 Apache(为什么发现的是 serverc、作业却出现在 serverd)。
补充精讲 A:IPP Everywhere 与打印机发现(Key Takeaway 1 对应知识)
- IPP(Internet Printing Protocol):现代网络打印协议(替代老式 LPR/raw 9100);IPP Everywhere 是“免驱动”标准:打印机通过 IPP 自报能力,客户端不需要厂商驱动即可打印。
- 发现方式:IPP Everywhere 打印机用 **mDNS/DNS-SD(Avahi)**通告服务 → 客户端用
ippfind命令发现网络打印机并拿到其 IPP URI。 - 关键命令与包: | 命令/包 | 作用 | | --- | --- | |
ippfind(cups-client 提供) | 按 mDNS/DNS-SD 发现 IPP 打印机并输出ipp://host:631/ipp/print形式的 URI | |ipptool| 直接对 IPP 打印机发请求做诊断(cups 自带) | |lpinfo -v| 列出可用后端/设备(含发现的网络打印机) | - 打印 URI 形态:
ipp://serverc.lab.example.com:631/printers/QUEUE_NAME(CUPS 队列)或 IPP Everywhere 直连ipp://ip:631/ipp/print;老式还有socket://ip:9100(raw)、lpd://ip/queue。
补充精讲 B:CUPS 队列与作业管理(Key Takeaway 2~4 对应知识)
- CUPS(Common UNIX Printing System):服务
cups(systemctl enable --now cups),Web 管理台http://localhost:631;包名cups(含服务与命令)、cups-client(含 ippfind 等客户端工具)。 - 队列 = 用户打印的目标对象;创建队列核心是
lpadmin: | 命令 | 作用 | | --- | --- | |lpadmin -p QUEUE -v URI -E -m everywhere| 新建队列:-p 队列名、-v 设备 URI、-E 启用、-m everywhere 免驱动模型 | |lpadmin -p QUEUE -v URI -E -m everywhere -D "desc" -L "loc"| 加描述/位置(方便用户识别) | |lpadmin -x QUEUE| 删除队列 | |lpadmin -d QUEUE(或lpoptions -d QUEUE) | 设为默认队列 | |lpstat -p/lpstat -d/lpstat -t| 查看队列状态 / 默认队列 / 全量概要 | - 作业管理(提交/查看/取消): | 命令 | 作用 | | --- | --- | |
lp -d QUEUE 文件| 打印文件到指定队列(返回作业号,如 job 42) | |lpstat -o QUEUE/lpstat -o| 查看队列中的作业 | |cancel 42/cancel -a QUEUE| 取消单个作业 / 清空某队列全部作业 | |lpoptions -p QUEUE -o media=A4等 | 设置队列默认选项 | - 队列“启停/收件”四命令(考点,别混淆): | 命令 | 语义 | | --- | --- | |
cupsenable QUEUE/cupsdisable QUEUE| 继续/暂停处理已排队的作业(disable 后队列仍在、可继续收新作业但不打印) | |cupsaccept QUEUE/cupsreject QUEUE| 允许/拒绝接收新作业(reject 后提交会被拒) | - 组合用法:维护时先
cupsreject(不再收新活)→cupsdisable(停处理)→ 干活 →cupsenable→cupsaccept恢复;也可加-r "原因"给用户提示(cupsdisable -r "Printer maintenance")。 - 排障:
lpstat -t(总体状态)、lpstat -p QUEUE(是否 idle/disabled)、cupsenable QUEUE复位、看/var/log/cups/error_log;本机试打测试页lp -d QUEUE /etc/issue。
补充精讲 C:用 Ansible 自动化(Section 2 对应知识)
- 课程讲义口径:自动化打印机安装与管理主要分两步——① 装 CUPS 与发现工具;② 用模块/命令建队列。
- 推荐做法(社区集合声明式):
community.cups集合的cups_queue模块管理队列(name/uri/state=present|absent/enabled/accept 等),控制节点需ansible-galaxy collection install community.cups;本课程若未安装集合,退而用command/shell调lpadmin建队 +cupsenable/cupsaccept复位,配合notifyhandler 重启/刷新 cups。 - 通用 playbook 骨架(无专属模块时与其它章口径一致): | 目标 | 模块/命令 | | --- | --- | | 安装 CUPS |
dnf(cups、cups-client) | | 启动并开机自启 |service(name: cups, state: started, enabled: yes) | | 放行打印端口 |firewalld(service: ipp / ipp-client,631/tcp 与 mDNS 5353/udp 视需要) | | 建/删队列 |community.cups.cups_queue(或 command: lpadmin …) | | 队列复位 |command: cupsenable / cupsaccept| - 章节 Lab(推断口径):在 serverc 上安装 CUPS 并创建一条指向 IPP Sample server(serverd:8000)的队列,用 lp/lpstat/cancel 走完整作业生命周期,再写 playbook 复现队列创建(可能含“先 cupsreject/cupsdisable 再操作”的维护演练)。
核心词汇表
| 英文 | 中文速记 |
|---|---|
| CUPS | 通用 UNIX 打印系统(服务/631 端口/Web 管理台) |
| IPP / IPP Everywhere | 互联网打印协议 / 免驱动网络打印标准 |
| mDNS / DNS-SD(Avahi) | 组播 DNS / 服务发现(打印机通告与发现) |
| ippfind / lpinfo | 打印机发现工具 / 后端设备列举 |
| print queue | 打印队列(用户打印目标) |
| lpadmin(-p/-v/-E/-m/-x/-d) | CUPS 队列管理命令 |
| URI(ipp:// 等) | 打印设备地址 |
| lp / lpstat / cancel | 提交作业 / 查作业与队列 / 取消作业 |
| cupsenable / cupsdisable | 继续 / 暂停处理已排队作业 |
| cupsaccept / cupsreject | 允许 / 拒绝接收新作业 |
| lpoptions | 队列/作业默认选项 |
| error_log | CUPS 日志(/var/log/cups/error_log) |
| driverless | 免驱动打印(-m everywhere) |
本章自测
- Key Takeaways 五条分别是什么?IPP Everywhere 与老式驱动打印的本质区别?
- 创建一条指向网络打印机的队列,lpadmin 最少要哪几个参数?怎么删除、设默认?
- lp / lpstat / cancel 分别做什么?作业号在哪个命令的输出里?
- cupsenable/cupsdisable 与 cupsaccept/cupsreject 的语义差异?维护打印机时四个命令的正确顺序?
- 讲师提示里为什么“在 serverc 发现打印机、却在 serverd 看到作业”?两个服务各监听什么端口?
- ippfind 输出的 URI 长什么样?和 CUPS 队列 URI 有什么区别?
- 自动化打印机队列有哪两条路线(集合模块 vs 通用模块)?各自依赖什么?
- 从零配置一台能用的 CUPS 打印服务器,写出完整命令序列(安装→服务→建队列→验证)。
