RH358管理打印机和打印文件–配置和管理打印机
来到最鸡肋的章节。打印机上的使用肯定是windows上秒杀了,所以这功能应该毫不犹豫地在WIN上玩耍。
RH358专栏地址:https://blog.csdn.net/qq_41765918/category_11532281.html
1. 描述CUPS打印体系结构
打印机在Red Hat Enterprise Linux中由CUPS管理,CUPS是一个开源、模块化的软件套件,最初由Easy software Products开发,目前由Apple领导。
CUPS可以使用许多协议与打印机和打印服务器通信。在大多数情况下,Internet打印协议(IPP)是使用CUPS与打印机通信的首选机制。该协议是对HTTP/1.1的修改,大多数现代网络和USB打印机都支持该协议,通常使用TCP端口631。CUPS可以支持直接连接的打印机(例如,使用并行、串行或USB通信),也可以使用较旧的网络协议,如LPD
CUPS提供了一组命令行工具和web界面,用于管理CUPS和提交打印作业。它还提供了一个守护进程(cupsd),用于管理每个已配置打印机的作业队列。打印机的每个队列都与一个描述打印机特性的PostScript printer Description (PPD)文件相关联,以及CUPS应该如何为在该打印机上打印准备作业。
2. 发现网络打印机与IPP
大多数网络打印机支持IPP Everywhere标准,它允许您查找、配置和打印到网络打印机,而不需要特定于硬件的驱动程序或其他软件。Apple Zeroconf规范处理打印机发现,这是由Avahi在红帽企业Linux和Bonjour在苹果的macOS实现。
-
打印机通过本地多播DNS (mDNS)使用DNS服务发现(DNSSD)来发布它的存在和基本功能。 -
当您第一次配置打印机队列时,CUPS使用此信息自动发现打印机特性并为该打印机构建自定义PPD。 -
当您的客户端为打印机准备打印作业时,CUPS首先将其格式化为打印机能够理解的页面描述语言(PDL),这是基于在何时从打印机获得的CUPS列表它创建了队列。这通常是PDF或光栅图像优化的打印机分辨率。 -
您的客户端使用IPP协议将格式化作业发送到打印机。
因为IPP Everywhere打印机用mDNS通告他们的本地网络存在和打印机功能,安装avahi包能够接收mDNS消息。cups-ipptool包提供了一个实用程序,可以用来发现本地IPP Everywhere打印机,ippfind。
安装Red Hat Enterprise Linux 8软件需要发现IPP Everywhere网络打印机:
[root@host ~]
调整防火墙规则,允许mDNS报文进入:
[root@host ~]
[root@host ~]
使用ippfind命令发现本地网络上所有可用的IPP打印机。这个命令有一个默认的一秒超时,所以使用-T SECONDS选项指定一个超时,以允许打印机有更多的时间响应。
[root@host ~]
ipp://server12.local:631/printers/bwprinter
前面的示例显示了一个可用于配置打印机的URI。server12.local是该打印机的mDNS名称。以 .local结尾的名字。Local是链接loca名称,它只在特定的网络上有意义。
要将mDNS名称解析为一个IP地址,在本地网络的机器上使用dig执行mDNS查找,使用端口5353上的多播地址224.0.0.251:
[root@host ~]
; <<>> DiG 9.11.13-RedHat-9.11.13-3.el8 <<>> @224.0.0.251 -p 5353 server12.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10716
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;server12.local. IN A
;; ANSWER SECTION:
server12.local. 10 IN A 192.0.2.12
;; ADDITIONAL SECTION:
server12.local. 10 IN AAAA 2001:db8:1001::c
;; Query time: 24 msec
;; SERVER: 192.0.2.12
;; WHEN: Fri May 29 15:18:22 CDT 2020
;; MSG SIZE rcvd: 73
您可以使用IPv4或IPv6地址代替server12.local 打印机URI中的本地名称:
ipp://192.0.2.12:631/printers/bwprinter
3. 创建打印队列
在为联网打印机识别uri之后,安装CUPS并在系统上为它们创建打印队列。
Red Hat Enterprise Linux 8将CUPS打印机管理软件作为发行版的一部分。安装cups包。
[root@host ~]
在首次安装时,默认情况下不会启动CUPS。确保它已启用和启动:
[root@host ~]
使用lpadmin命令创建打印队列。
[root@host ~]
? -p QUEUE-NAME定义打印机队列的名称。队列名称只能包含可打印的字符,被认为是保留大小写但不区分大小写的。
? -V DEVICE-URI指定打印机的URI,这可能是通过ippfind发现的。如果打印机不在本地链接上,或者您不想使用mDNS名称解析,那么将URI中包含主机名的部分替换为网络打印机的完全限定域名或IP地址。
? -m everywhere指定你想使用IPP everywhere打印机模型作为你的“驱动程序”。你应该在大多数网络打印机上使用它。
? -E立即启用打印机队列,并允许它开始处理新的作业。如果在-d、-p或-x选项之前指定,它在lpstat连接到服务器时强制加密的效果会有所不同。
使用lpstat -v命令确认打印机队列已定义。这个命令显示可用打印机队列的列表,这些队列具有各自打印机的设备uri。
[root@host ~]
device for bwprinter: ipp://192.0.2.12:631/printers/bwprinter
device for color: ipp://192.0.2.77:631/ipp/port1
可以使用-d选项设置默认的打印机队列目标。如果没有指定特定的目标,则打印命令将使用默认目标。下面的示例将默认目标设置为bwprinter:
[root@host ~]
-x选项允许您删除打印机队列:
[root@host ~]
4. 打印文件和管理打印作业
[user@host ~]$ lp FILENAME
[user@host ~]$ lp -d QUEUE-NAME FILENAME
[user@host ~]$ tree | lp
[user@host ~]$ lpstat
bwprinter-3 user 1024 Mon 18 May 2020 02:34:08 PM EDT
bwprinter-5 user 56198 Mon 18 May 2020 02:34:33 PM EDT
[user@host ~]$ lpstat -u
bwprinter-3 user 1024 Mon 18 May 2020 02:34:08 PM EDT
bwprinter-4 root 3072 Mon 18 May 2020 02:34:14 PM EDT
bwprinter-5 user 56198 Mon 18 May 2020 02:34:33 PM EDT
[user@hots ~]$ cancel bwprinter-4
[user@hots ~]$ cancel -a bwprinter
5. 管理打印机队列
如果需要执行维护,可能希望停止或重新启动打印机队列的处理。可能还想检查队列是否正在处理作业,或者是否被禁用。
在对打印机进行维护时,可以暂时禁用打印机队列,同时允许用户向该队列添加新作业。下面的示例禁用bwprinter的队列。可选的-r选项允许您指定打印机不打印的原因。
[root@host ~]
[root@host ~]
如果打印机长时间宕机,可以使用cupsreject命令将其配置为停止接受新作业。如果在运行此命令时启用了队列,则将处理队列中剩余的任何作业,直到队列为空为止。
[root@host ~]
使用cupsaccept来配置队列以继续接受新的打印作业
[root@host ~]
可以使用Lpstat -p命令查看所有活动打印机的状态,包括它们的队列是否已禁用打印作业处理或正在拒绝作业
[root@host ~]
printer bwprinter is idle. enabled since Thu 28 May 2020 05:23:49 PM CDT
printer color is idle. enabled since Sat 23 Nov 2019 12:29:47 PM CST
[root@host ~]
[root@host ~]
printer bwprinter disabled since Thu 28 May 2020 05:26:57 PM CDT -
Paused
printer color is idle. enabled since Sat 23 Nov 2019 12:29:47 PM CST
[root@host ~]
[root@host ~]
[root@host ~]
printer bwprinter is idle. enabled since Thu 28 May 2020 05:28:46 PM CDT
Rejecting Jobs
printer color is idle. enabled since Sat 23 Nov 2019 12:29:47 PM CST
6. 课本练习
[student@workstation ~]$ lab printing-config start
该命令确保在serverc上配置了IPP Everywhere打印机。您可以在web浏览器中通过以下URL查看发送到此打印机的打印作业:http://serverd/ippserver/ipp-everywhere-pdf。
1. 安装所需的软件和配置servera以允许它发现IPP Everywhere打印机。
安装提供发现联网打印机软件的软件包。
[root@servera ~]
[root@servera ~]
success
[root@servera ~]
success
[root@servera ~]
ipp://serverc.local:631/printers/rht-printer
2. 在服务器上安装CUPS并配置打印队列,该队列将作业发送到所发现的网络打印机。
安装提供CUPS打印服务器的包。
[root@servera ~]
[root@servera ~]
[root@servera ~]
-v ipp://serverc.lab.example.com:631/printers/rht-printer \
-m everywhere -E
[root@servera ~]
device for my-printer: ipp://serverc.lab.example.com:631/printers/rht-printer
[root@servera ~]
3. 发送一些内容到您的新打印机。
在web浏览器中查看打印机输出,网址如下:http://serverd/ippserver/ipp-everywhere-pdf。
创建打印作业。打印服务器根主目录下的anaconda-ks.cfg文件。
[root@servera ~]
request id is my-printer-1 (1 file(s))
4. 配置my-printer打印队列以拒绝、然后接受传入的打印作业。
[root@servera ~]
[root@servera ~]
lp: Destination "my-printer" is not accepting jobs.
[root@servera ~]
printer my-printer is idle. enabled since Wed 16 Jun 2021 05:37:37 PM CST
Out for service
[root@servera ~]
[root@servera ~]
request id is my-printer-2 (0 file(s))
5. 配置my-printer打印队列,使其接受新作业进入其队列,但不将其转发给打印机。
在测试确认作业已排队但未发送后,重新启用打印队列。
[root@servera ~]
[root@servera ~]
[root@servera ~]
request id is my-printer-3 (1 file(s))
[root@servera ~]
request id is my-printer-4 (1 file(s))
[root@servera ~]
my-printer-3 root 1024 Wed 16 Jun 2021 05:43:12 PM CST
my-printer-4 root 1024 Wed 16 Jun 2021 05:43:18 PM CST
[root@servera ~]
[root@servera ~]
my-printer-4 root 1024 Wed 16 Jun 2021 05:43:18 PM CST
[root@servera ~]
[root@servera ~]
如果Ipstat仍然在队列中列出作业,请给打印机几秒钟时间来处理这些作业,然后再次运行Lpstat。
完成实验。
[student@workstation ~]$ lab printing-config finish
总结
- 介绍CUPS打印体系结构。
- 介绍网络打印机与IPP。
- 如何创建和管理打印队列。
- 若喜欢金鱼哥的文章,顺手点个赞。也可点个关注,因为后续会不断上干货。
|