RH358管理打印机和打印文件–配置和管理打印机

来到最鸡肋的章节。打印机上的使用肯定是windows上秒杀了,所以这功能应该毫不犹豫地在WIN上玩耍。

RH358专栏地址:https://blog.csdn.net/qq_41765918/category_11532281.html

文章目录

  • RH358管理打印机和打印文件--配置和管理打印机
    • 1. 描述CUPS打印体系结构
    • 2. 发现网络打印机与IPP
    • 3. 创建打印队列
    • 4. 打印文件和管理打印作业
    • 5. 管理打印机队列
    • 6. 课本练习
      • 1. 安装所需的软件和配置servera以允许它发现IPP Everywhere打印机。
      • 2. 在服务器上安装CUPS并配置打印队列,该队列将作业发送到所发现的网络打印机。
      • 3. 发送一些内容到您的新打印机。
      • 4. 配置my-printer打印队列以拒绝、然后接受传入的打印作业。
      • 5. 配置my-printer打印队列,使其接受新作业进入其队列,但不将其转发给打印机。
      • 完成实验。
    • 总结

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 ~]# yum install avahi cups-ipptool

调整防火墙规则,允许mDNS报文进入:

[root@host ~]# firewall-cmd --add-service=mdns
[root@host ~]# firewall-cmd --add-service=mdns --permanent

使用ippfind命令发现本地网络上所有可用的IPP打印机。这个命令有一个默认的一秒超时,所以使用-T SECONDS选项指定一个超时,以允许打印机有更多的时间响应。

[root@host ~]# ippfind -T 20
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 @224.0.0.251 -p 5353 server12.local
; <<>> 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#5353(224.0.0.251)
;; 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 ~]# yum install cups

在首次安装时,默认情况下不会启动CUPS。确保它已启用和启动:

[root@host ~]# systemctl enable --now cups

使用lpadmin命令创建打印队列。

[root@host ~]# lpadmin -p QUEUE-NAME -v DEVICE-URI -m everywhere -E
   -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 ~]# lpstat -v
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 ~]# lpadmin -d bwprinter

-x选项允许您删除打印机队列:

[root@host ~]# lpadmin -x bwprinter

4. 打印文件和管理打印作业

# 使用lp命令从shell中打印文件。作业将被发送到默认队列,除非使用-d选项指定另一个打印机。
[user@host ~]$ lp FILENAME
[user@host ~]$ lp -d QUEUE-NAME FILENAME# 如果没有参数,lp命令从标准输入读取。读取标准输入的能力使得该命令对于将其他命令的输出发送到打印机非常有用。
[user@host ~]$ tree | lp# 使用lpstat命令检查打印作业的当前状态。默认情况下,该命令只显示当前用户提交的作业。可以添加-u选项来显示所有用户提交的作业。
[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# 使用cancel命令取消打印机队列中的作业。指定要取消的作业ID:
[user@hots ~]$ cancel bwprinter-4# 还可以通过指定作业的ID号(本例中为作业4)来取消作业。如果不指定选项,则取消队列中的下一个作业。
# 使用-a选项取消特定队列的所有作业:
[user@hots ~]$ cancel -a bwprinter

5. 管理打印机队列

如果需要执行维护,可能希望停止或重新启动打印机队列的处理。可能还想检查队列是否正在处理作业,或者是否被禁用。

#暂停打印
在对打印机进行维护时,可以暂时禁用打印机队列,同时允许用户向该队列添加新作业。下面的示例禁用bwprinter的队列。可选的-r选项允许您指定打印机不打印的原因。
[root@host ~]# cupsdisable -r 'Replacing toner' bwprinter#使用cupsenable来配置队列以恢复打印:
[root@host ~]# cupsenable bwprinter#拒绝队列中的新打印作业
如果打印机长时间宕机,可以使用cupsreject命令将其配置为停止接受新作业。如果在运行此命令时启用了队列,则将处理队列中剩余的任何作业,直到队列为空为止。
[root@host ~]# cupsreject -r 'Out for servicing' bwprinter使用cupsaccept来配置队列以继续接受新的打印作业
[root@host ~]# cupsaccept bwprinter#注意:另一个用于维护的有用工具是lpmove命令,您可以使用该命令将作业从一个队列移动到另一个队列。#查看打印机队列状态
可以使用Lpstat -p命令查看所有活动打印机的状态,包括它们的队列是否已禁用打印作业处理或正在拒绝作业
[root@host ~]# lpstat -p
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 ~]# cupsdisable bwprinter
[root@host ~]# lpstat -p
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 ~]# cupsenable bwprinter
[root@host ~]# cupsreject bwprinter
[root@host ~]# lpstat -p
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 ~]# yum -y install cups-ipptool avahi[root@servera ~]# firewall-cmd --add-service=mdns
success
[root@servera ~]# firewall-cmd --add-service=mdns --permanent
success# 使用ippfind命令发现可用的网络打印机。指定5秒的超时时间,以便打印机有时间响应。
[root@servera ~]# ippfind -T 5
ipp://serverc.local:631/printers/rht-printer

2. 在服务器上安装CUPS并配置打印队列,该队列将作业发送到所发现的网络打印机。

安装提供CUPS打印服务器的包。

[root@servera ~]# yum -y install cups
[root@servera ~]# systemctl enable --now cups.service# 为指向远程打印机的名为my-printer的IPP Everywhere打印机创建一个打印队列。
[root@servera ~]# lpadmin -p my-printer \-v ipp://serverc.lab.example.com:631/printers/rht-printer \-m everywhere -E
[root@servera ~]# lpstat -v
device for my-printer: ipp://serverc.lab.example.com:631/printers/rht-printer# 将my-printer打印队列设置为默认队列
[root@servera ~]# lpadmin -d my-printer

3. 发送一些内容到您的新打印机。

在web浏览器中查看打印机输出,网址如下:http://serverd/ippserver/ipp-everywhere-pdf。

创建打印作业。打印服务器根主目录下的anaconda-ks.cfg文件。

[root@servera ~]# lp anaconda-ks.cfg
request id is my-printer-1 (1 file(s))

4. 配置my-printer打印队列以拒绝、然后接受传入的打印作业。

[root@servera ~]# cupsreject -r 'Out for service' my-printer
[root@servera ~]# ls -l | lp
lp: Destination "my-printer" is not accepting jobs.
[root@servera ~]# lpstat -p my-printer
printer my-printer is idle.  enabled since Wed 16 Jun 2021 05:37:37 PM CSTOut for service
[root@servera ~]# cupsaccept my-printer
[root@servera ~]# ls -l | lp
request id is my-printer-2 (0 file(s))

5. 配置my-printer打印队列,使其接受新作业进入其队列,但不将其转发给打印机。

在测试确认作业已排队但未发送后,重新启用打印队列。
[root@servera ~]# cupsdisable my-printer
[root@servera ~]# cd
[root@servera ~]# lp .bashrc
request id is my-printer-3 (1 file(s))
[root@servera ~]# lp .bash_profile
request id is my-printer-4 (1 file(s))
[root@servera ~]# lpstat
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 ~]# cancel 3
[root@servera ~]# lpstat
my-printer-4            root              1024   Wed 16 Jun 2021 05:43:18 PM CST[root@servera ~]# cupsenable my-printer
[root@servera ~]# lpstat

如果Ipstat仍然在队列中列出作业,请给打印机几秒钟时间来处理这些作业,然后再次运行Lpstat。

完成实验。

[student@workstation ~]$ lab printing-config finish

总结

  • 介绍CUPS打印体系结构。
  • 介绍网络打印机与IPP。
  • 如何创建和管理打印队列。
  • 若喜欢金鱼哥的文章,顺手点个赞。也可点个关注,因为后续会不断上干货。

RH358管理打印机和打印文件--配置和管理打印机相关推荐

  1. 计算机 打印 速度慢,处理打印机在打印文件时打印速度过慢的原因

    打印机是上班人员经常要用到的工具,那么打印机在打印文件时速度很慢是怎么回事呢?是什么造成的呢?如果现在你还不知道,那你就应该了解一下啦,接下来给大家讲讲打印机打印速度慢的原因,一起去看看吧. 操作方法 ...

  2. 打印机无法打印,配置端口显示错误?

    打印机无法打印,配置端口显示错误,请求的资源在使用中,其他电脑都能正常打印,唯独这一台电脑无法打印. 打开"运行",输入"services.msc",找到&qu ...

  3. 使用python和pywin32模块实现连接打印机批量打印文件

    使用python实现连接打印机批量打印文件 python打印文件 python连接打印机 python打印文档文件 python打印图片文件 python批量打印文文件 python打印文件 pyth ...

  4. java 打印机编程_JAVA实现连接本地打印机并打印文件的实现代码

    JAVA实现连接本地打印机并打印文件的实现代码 发布时间:2020-08-31 15:52:25 来源:脚本之家 阅读:96 作者:piaoyunlive 实现代码一 import javax.pri ...

  5. 在你计算机上没有配置打印机,打印机没有打印设置,详细教您打印机无法打印怎么解决...

    打印机是越来越普遍了,经常有网友问打印机驱动安装完了怎么不能打印?打印机无法打印是打印机最常见的一种问题,其实这个问题的因素是多方面的,下面,小编就来跟大家介绍打印机无法打印的解决方法了. 在网上会时 ...

  6. 计算机服务里打印设置在哪,打印机模式打印在哪里,教您打印机模式怎么设置...

    打印机已经和工作融为一体了,而打印操作是一项必要的办公人员技巧.我们都知道打印机默认双面打印模式,不仅有效率,最重要是环保,降低二氧化碳排放,增加纸张利用率.但是我们也会出于需要进行一些设置打印机模式 ...

  7. 惠普打印机只打印一半_惠普打印机打印出来一半有字一半没字为什么

    重装驱动吧.打印机的安装一般分为两个部分,一个是打印机跟电脑的连接,另一个就是在操作系统里面安装打印机的驱动程序. 如果是安装USB接口的打印机,安装时在不关闭电脑主机和打印机的情况下,直接把打印机的 ...

  8. 惠普打印机只打印一半_惠普打印机如何安装 惠普打印机加墨方法【介绍】

    对于多数上班族和学生党来说,平时办公和学习不仅仅离不开 电脑 ,与此同时还需要 打印机 起到辅助作用.目前市场上的打印机品牌较多,惠普就是其中知名度较高的一个牌子,拥有大批的消费群体.但是有些人在将打 ...

  9. Linux 文件与目录管理,玩转文件和目录管理的相关命令

    Linux 文件与目录管理 Linux的目录结构为树状结构,最顶级的目录为根目录 / 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们 更新学习资料: https://edu.csdn. ...

最新文章

  1. R语言ggplot2可视化左对齐两个可视化图像的画图区域(边缘)实战
  2. 11g 新特性 Member Kill Escalation 简介
  3. 常见RAID的各级别的特性简介(RAID0、1、5、6、10)
  4. linux内核定义,Linux内核定义的常量
  5. 为什么你们的Note.js 里面没有sap.ui.core.Control.extend()这样的代码,但是runtime有自动生成有
  6. C#输入姓名或者拼音码(姓名的首字母,大小写均可)进行快速模糊查找
  7. 5月份美网络游戏用户达8700万 同比增长22%
  8. mysql atlas路由_MySQL中间件 Atlas-1.0.3 安装记录
  9. Python numpy学习笔记(一)
  10. java 下划线_Java SE 9:“ _”(下划线)更改
  11. ubuntu主题美化
  12. 矩阵按键之行列式扫描
  13. 蓝桥杯嵌入式STM32G431——第十二届第一场省赛停车计费系统真题及代码
  14. 51单片机8位数码管时钟c语言,基于c51单片机8位数码管显示电子时钟程序
  15. 计算机删除其它用户,如何通过注册表删除多余的账号如何删除电脑其它用户
  16. Canvas实例之鼠标移动特效(彩色小球)
  17. kafka问题之Listener method could not be invoked with the incoming message
  18. Spark大数据分析案例之平均心率检测[2021]
  19. P3918 [国家集训队]特技飞行
  20. JAVA科学计数法,金额数字,转换为中文大写字

热门文章

  1. 排队打水(排序不等式)
  2. 麦肯锡7S模型(转载)
  3. MG-SOFT 导入MIB文件
  4. 计算机中丢失IDAP,certify_ldap.dll
  5. php实现文件遍历,php ---- 文件遍历
  6. Multisim14.0 电路仿真 并显示各节点各支路的电压电流
  7. Qt中model/view设计模式
  8. 蓝桥杯国王的烦恼java,国王的烦恼 蓝桥杯
  9. 美团点评武汉场后台开发
  10. 八、正则表达式与JSON