在 Linux 上设置打印机的 12 个 CUPS lpadmin 命令示例
CUPS 代表通用 UNIX 打印系统。
lpadmin 是一个命令行工具,用于配置 CUPS 提供的打印机和类队列。
运行 CUPS 的系统是一个主机,它可以接受来自客户端计算机的打印作业、处理它们并将它们发送到适当的打印机。它还可用于设置服务器默认打印机或类。
本教程介绍如何使用 lpadmin 命令示例在 Linux 环境中添加新打印机、设置打印机选项和管理打印机。
1. 添加新打印机
要添加名为“HPLaserJetP3015”的新网络打印机,请使用带有 -p 选项的 lpadmin 命令,如下所示:
# lpadmin -p HPLaserJetP3015 -v socket://19.86.82.172 -P
/usr/share/cups/model/HP/LaserJet_P3005-Postscript.ppd
# lpstat -v
device for HPLaserJetP3015: socket://19.86.82.172
要验证当前是否配置了打印机,您可以使用如下示例所示的命令:
# lpstat -p HPLaserJetP3015 -l
printer HPLaserJetP3015 is idle. enabled since Sun Jan 11 16:11:41 2015
2. PPD 和日志文件
在上面的示例中,PPD 文件(也称为 PostScript 打印机描述)由供应商创建,用于描述其 PostScript 打印机可用的整套特性和功能,它们通常位于 /usr/share/cups/model/ 目录下.
如果您在配置打印机时遇到任何问题,请检查以下位置的日志以获取任何错误消息。此位置可能会根据 Linux 的不同发行版而改变。
# ls -l /var/log/cups/*
-rw-r--r-- 1 root lp 6851 Jan 11 16:19 /var/log/cups/access_log
-rw-r--r-- 1 root lp 13207 Jan 11 16:19 /var/log/cups/error_log
3. 在并口上配置打印机
要在并行端口 (/dev/lp0) 上配置打印机,请使用 lpadmin 命令,如下例所示:
# lpadmin -p HPDESKJET882 -v parallel:/dev/lp0 -m
/usr/share/cups/model/HP/DeskJet_882C-cdj880.ppd
4. 查看打印机设置的所有可用端口
还可以使用 lpinfo 命令列出所有可用于配置打印机的可用端口或接口,
# lpinfo -v
network socket
direct hp
network http
network ipp
network lpd
direct parallel:/dev/lp0
direct scsi
network tpvmgp
network tpvmlp
network smb
5. 多个打印机类
CUPS 始终按照将打印机添加到类中的顺序检查可用的打印机。
您可以将一台或多台打印机添加到一个类中,当其中一台打印机不可用时,该类中定义的另一台打印机将处理打印作业请求。
在类中添加打印机不是强制性的。一个打印机类本身可以是其他类的成员,因此您可以定义打印机类以实现打印的高可用性。
配置打印机类后,您可以使用与指向单个打印机相同的方式打印到打印机类。
例如,如果您有 2 台 Laserjet 打印机和 2 台deskjet 打印机。您可以创建一个名为“Class-Laserjet”的类,包含 2 个 Laserjet 打印机,然后创建另一个名为“Class-Deskjet”打印机的类,然后创建另一个包含这 2 个类的类。
这样,即使laserjet 或deskjet 打印机都出现故障,另一类也可以为打印作业提供服务。
6. 将打印机添加到类
要将打印机添加到类中,请使用以下命令。
# lpadmin -h localhost -p HPLaserJetP3015 -c myclass
要验证打印机是否属于打印机类:
# lpstat -c myclass
members of class myclass:
HPLaserJetP3015
7. 从类中删除打印机
要从类中删除打印机,您可以使用 lpadmin 命令,如下例所示:
在本例中,myclass 有两台打印机:
# lpstat -c myclass
members of class myclass:
HPLaserJetP3015
从 myclass 中删除 HPDESKJET882 打印机,如下所示:
# lpadmin -p HPDESKJET882 -r myclass
将其移除后,您将只看到 HP Laser Jet 打印机:
# lpstat -c myclass
members of class myclass:
HPLaserJetP3015
8. 删除整个打印机类
使用 -x 选项,您可以删除该类。如下所示。
# lpstat -c myclass
members of class myclass:
HPLaserJetP3015
# lpadmin -x myclass
# lpstat -c myclass
lpstat: Unknown destination "myclass"!
请注意,即使您删除了该类,打印机配置仍然存在。
9.更改打印选项
要更改打印机的打印选项,您可以执行以下命令。
使用 lpoptions 命令列出打印机的所有可用选项,如下所示。
在此示例中,您将看到所有已激活的选项都以星号符号为前缀。如果没有星号,则使用默认设置。
# lpoptions -p HPLaserJetP3015 -l
PageSize/Page Size: *A4 Letter 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5
EnvMonarch Executive Legal
PageRegion/PageRegion: A4 Letter 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5
EnvMonarch Executive Legal
Resolution/Resolution: 150x150dpi 300x300dpi *600x600dpi 1200x1200dpi
InputSlot/Media Source: *Default Tray1 Tray2 Tray3 Manual
Duplex/Double-Sided Printing: DuplexNoTumble DuplexTumble *None
10.更改打印机分辨率
要将打印机的分辨率更改为 300x300dpi,可以使用 lpadmin 命令,如下所示:
# lpadmin -p HPLaserJetP3015 -o Resolution=300x300dpi
# lpoptions -p HPLaserJetP3015 -l
以下是您可以使用 lpadmin 和 -o 选项为任何打印机设置的其他选项,如上例所述,
- job-k-limit=value – 设置每用户配额的千字节限制。该值是千字节的整数。
- job-page-limit=value – 设置每个用户配额的页面限制。该值是可以打印的整数页数;双面页面计为两页。
- job-quota-period=value – 设置每个用户配额的会计期。该值是整数秒数。
- job-sheets-default=banner – 设置用于打印作业的默认标题页。
- name=value – 为打印机设置 PPD 选项。可以使用带有 lpoptions(1) 命令的 -l 选项列出 PPD 选项。
- name-default=value – 设置打印机的默认服务器端选项。
- port-monitor=name – 指定的端口监视器必须列在打印机的 PPD 文件中。
- printer-error-policy=name – 设置当打印机后端无法将作业发送到打印机时使用的错误策略。
- printer-is-shared=true/false – 将打印机设置为共享/已发布或未共享/未发布。
- printer-op-policy=name – 设置与打印机关联的 IPP 操作策略。该名称必须在 cupsd.conf 的 Policy 部分中定义。默认操作策略为“default”。
11. 从配置文件中删除打印机
要从打印机配置文件中删除 CUPS 打印机,您可以使用 -x 选项,如下所示:
# lpstat -v
device for HPLaserJetP3015: socket://19.86.82.172
# lpadmin -x HPLaserJetP3015
# lpstat -v
lpstat: No destinations added.
12. 允许/拒绝用户或组配置打印机选项
您可以允许单个用户或组使用 lpadmin 命令配置打印机选项。
以下命令将允许用户 karthik 在 HPLaserJetP3015 打印机上配置打印机选项:
# lpadmin -p HPLaserJetP3015 -u allow:karthik
您还可以阻止用户更改设置/选项或使用以下命令配置打印机。
以下命令将拒绝用户 karthik 在 HPLaserJetP3015 打印机上配置打印机选项:
# lpadmin -p HPLaserJetP3015 -u deny:karthik
如果有需要允许访问的组,可以使用@符号前面的组名。多个用户名或组可以用逗号分隔。
例如,以下将允许来自 sysadmin 组的用户配置打印机选项。
# lpadmin -p HPLaserJetP3015 -u allow:@sysadmin
以下将拒绝开发人员组中的用户配置打印机选项。
# lpadmin -p HPLaserJetP3015 -u deny:@developer
- 点赞
- 收藏
- 关注作者
评论(0)