系统管理指南:打印

使用 LP 打印命令管理打印机(任务图)

表 6–1 使用 LP 打印命令进行打印机管理(任务图)

任务 

说明 

参考 

添加打印机描述。 

使用带有 -p 选项的 lp 命令添加打印机描述。

如何使用 LP 打印命令添加打印机描述

设置系统的缺省打印机。 

为用户指定缺省打印机目标,以使用户无需键入打印机名称。 

如何使用 LP 打印命令设置系统的缺省打印机目标

使标题页成为可选。 

可以使用户选择在提交打印请求时关闭标题页的打印。  

如何使用 LP 打印命令使标题页成为可选

关闭标题页。 

通过设置打印机的 -o banner=never 变量,您可以在所有情况下关闭标题页。

如何使用 LP 打印命令关闭标题页

定义一类打印机。 

可以通过使用 lpadmin -c 命令将打印机归为一类。

可以将打印机归为以下类:

  • 打印机类型

  • 位置

  • 工作组

如何使用 LP 打印命令定义打印机类

设置打印机的故障警报。 

打印服务可以在检测到打印机故障时通知您。将 -A 选项与 lpadmin 命令一起使用,以设置打印机的故障警报。

如何使用 LP 打印命令为打印机设置故障警报

设置打印机的故障恢复。 

您可以选择不接收任何故障通知。您可以找出有关打印故障的原因,以便可以更正问题。将 -F 选项与 lpadmin 命令一起使用,以定义故障恢复选项。

如何使用 LP 打印命令设置打印机故障恢复

限制用户对打印机的访问。 

要控制用户对打印机的访问,请在打印服务器上创建允许列表和拒绝列表。 

如何使用 LP 打印命令限制用户对打印机的访问

使用 LP 打印命令设置打印机定义

为网络中的打印机设置定义是一项渐进的任务,它允许您为用户提供更有效的打印环境。例如,可以为站点的所有打印机指定打印机描述,以帮助用户查找打印机所在的位置。或者,您可以定义一类打印机,为打印请求提供最快的处理速度。有关使用 LP 打印命令设置打印机定义的更多信息,请参见设置打印机时指定 PPD 文件。

许多打印机定义可以使用 Solaris Print Manager 进行设置或重置。有关更多信息,请参见使用 Solaris Print Manager 设置打印机定义。

以下过程提供了有关使用 LP 打印命令设置或重置打印机定义的逐步说明。这些过程显示如何快速设置或重置打印机定义。

Procedure如何使用 LP 打印命令添加打印机描述

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。

  2. 添加打印机描述。


    # lpadmin -p printer-name -D "comment"
    -p printer-name

    指定要为其添加描述的打印机的名称。

    -D "comment"

    指定打印机的特征,如位置或管理联系人。将 shell 可能解释的字符(如 *、?、\、!、^)用单引号引起来。

    有关更多信息,请参见 lpadmin(1M) 手册页。

  3. 验证 Description 信息是否正确。


    # lpstat -p printer-name -l
    

示例 6–1 添加打印机描述

以下示例说明如何为打印机 luna 添加打印机描述。


# lpadmin -p luna -D "Nathans office"

使用 LP 打印命令设置缺省打印机目标

您可以为用户指定缺省打印机目标,以便用户在使用打印命令时无需键入打印机名称。在将一台打印机指定为缺省打印机之前,系统上的打印服务必须可识别该打印机。

通过设置以下任一项来设置用户的缺省打印机目标:

当应用程序提供打印机目标时,打印服务将使用该目标,而不管您是否设置了系统的缺省打印机目标。如果应用程序未提供打印机目标,或者您在使用打印命令时未提供打印机名称,则打印命令将按特定顺序搜索缺省打印机。下表显示系统缺省打印机目标的搜索顺序。

表 6–2 缺省打印机目标的搜索顺序

搜索顺序 

使用 /usr/bin/lp 命令

使用基于 LPD 的兼容命令(lpr、lpq 和 lprm)

第一 

LPDEST 变量

PRINTER 变量

第二 

PRINTER 变量

LPDEST 变量

第三 

系统的缺省打印机 

系统的缺省打印机 

Procedure如何使用 LP 打印命令设置系统的缺省打印机目标

  1. 在要在其中设置缺省打印机的系统上以超级用户 lp 或同等角色的身份登录。

  2. 设置系统的缺省打印机。


    # lpadmin -d [printer-name]

    -d printer-name 指定要用作系统缺省打印机的打印机的名称。如果您不指定 printer-name,则系统将设置为没有缺省打印机。

  3. 检查系统的缺省打印机。


    # lpstat -d
    

示例 6–2 设置系统的缺省打印机目标

以下示例说明如何将打印机 luna 设置为系统的缺省打印机。如果未设置 LPDEST 或 PRINTER 环境变量,则将打印机 luna 用作系统的缺省打印机。


# lpadmin -d luna
# lpstat -d
system default destination: luna

使用 LP 打印命令打印标题页

标题页标识提交打印请求的用户、对应的打印请求 ID 以及何时打印该请求。标题页还具有可修改的标题,以帮助用户标识其打印输出。

通过标题页可以很方便地确定打印作业的拥有者,这在许多用户将作业提交到同一打印机时特别有帮助。但是,打印标题页会使用更多的纸张,在打印机仅有几个用户时可能是不必要的。在某些情况下,不需要打印标题页。例如,如果打印机中装有特殊纸张或表单(如工资表),则打印标题页可能会导致问题。

缺省情况下,打印服务会强制打印标题页。但是,您可以使用户选择在提交打印请求时关闭标题页的打印。您可以通过 lpadmin 命令或 Solaris Print Manager 设置此选择。如果您为用户提供了选择,则他们必须使用 -o banner 选项关闭标题页的打印。

此外,如果您不需要标题页,则可以关闭标题页以便从不打印它们。您可以通过使用 lpadmin 命令或通过 Solaris Print Manager 关闭标题页的打印。

下表说明用于管理标题页打印的命令选项。

表 6–3 标题页打印

所用命令 

标题页打印 

是否覆盖? 

lpadmin -p printer -o banner 或

lpadmin -p printer -o banner=always

必需且打印 

如果您是常规用户并使用 -o nobanner,则打印请求。但是,忽略 nobanner 参数。

如果您是超级用户 (root) 或其他特权用户,则不忽略 nobanner 参数。

lpadmin -p printer -o nobanner

lpadmin -p printer -o banner=optional

缺省情况下启用,但是可以使用 lp -o nobanner 命令基于每个请求进行禁用

不适用 

lpadmin -p printer -o banner=never

Disabled 

如果您是常规用户,则不可以。如果您是超级用户 (root) 或 lp 用户,则可以覆盖此选项以导致生成成组传送页。

Procedure如何使用 LP 打印命令使标题页成为可选

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。

  2. 使标题页成为可选。


    # lpadmin -p printer-name -o banner=optional
    
    -p printer-name

    指定要使其标题页成为可选的打印机的名称。

    -o banner=optional

    使用户可以在提交打印请求时不指定标题页。

  3. 验证标题页是否可选。命令输出包含以下行:Banner not required。


    # lpstat -p printer-name -l
    

示例 6–3 使标题页成为可选

以下示例说明如何在打印机 luna 上使标题页成为可选。


# lpadmin -p luna -o banner=optional

Procedure如何使用 LP 打印命令关闭标题页

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。

  2. 关闭标题打印。


    # lpadmin -p printer-name -o banner=never
    
    -p printer-name

    指定要关闭其标题页的打印机的名称。

    -o banner=never

    在所有情况下禁用标题页打印。

  3. 验证标题打印是否已关闭。


    # lpstat -p printer-name -l
    

    命令输出包含以下行:Banner not printed。

  4. 向打印机提交打印请求以确保不打印标题页。


示例 6–4 关闭标题页的打印

以下示例说明如何在打印机 luna 上禁用标题页的打印。


# lpadmin -p luna -o banner=never

使用 LP 打印命令设置打印机类

通过 LP 打印服务,您可以将在本地连接的若干打印机归为一类。您只能通过使用 lpadmin -c 命令执行此任务。

设置打印机类后,用户可以将该类而不是单台打印机指定为打印请求的目标。此时会使用该类中可用于打印的第一台打印机。这样,就可充分地利用各台打印机,从而更快地完成打印过程。

打印服务不能识别任何缺省打印机类。打印机类仅在对其进行定义后才存在。

下面是定义打印机类的一些方法:

或者,一个类可能包含按特定顺序使用的若干台打印机。LP 打印服务始终按打印机添加到类的顺序来检查是否存在可用的打印机。因此,如果要首先访问高速打印机,请先向类中添加高速打印机,然后再添加低速打印机。因此,高速打印机可处理尽可能多的打印请求。在使用高速打印机时,低速打印机保留为备用打印机。


注 –

仅在本地打印机类中的打印机之间才能平衡打印请求。


与打印机名称类似,类名必须是唯一的,并且最多可以包含 14 个字母数字字符和下划线。

并非必须定义打印机类。仅当您确定使用打印机类对网络上的用户有益时,才应该添加它们。

Procedure如何使用 LP 打印命令定义打印机类

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。

  2. 定义打印机类。


    # lpadmin -p printer-name -c printer-class
    
    -p printer-name

    指定要添加到一类打印机中的打印机的名称。

    -c printer-class

    指定一类打印机的名称。

  3. 验证打印机是否属于某个打印机类。


    # lpstat -c printer-class
    

示例 6–5 定义一类打印机

以下示例说明如何在打印机类 roughdrafts 中添加打印机 luna。


# lpadmin -p luna -c roughdrafts

使用 LP 打印命令设置打印机故障警报

如果选择此任务,则 LP 打印服务可以在检测到打印机故障时通知您。通过 lpadmin -A 命令或 Solaris Print Manager,您可以选择以下任一方法来接收打印机故障通知:

但是,lpadmin -A 命令为您提供了接收所选程序指定的消息的其他选项。通过 lpadmin -A 命令,您还可以有选择地关闭已知错误的通知。

除非指定一个程序传送故障通知,否则故障警报的内容是预定义的消息,该消息指明打印机已停止打印并需要进行修理。

下表列出了可以使用 lpadmin -A 命令为打印机设置的警报值。也可以为打印轮、字体盒和表单设置这些警报值。

表 6–4 打印机故障警报值

-A alert 的值

说明 

'mail [username]'

通过电子邮件将警报消息发送到打印服务器上的 root 或 lp,或者发送到指定的 username(它是用户的名称)。

'write [user-name]'

将警报消息发送到打印服务器上的 root 或 lp 控制台窗口,或者发送到指定 username(它是用户的名称)的控制台窗口。指定的用户必须登录到打印服务器才能获取警报消息。

'command'

运行每个警报的指定 command 文件。在执行该文件时,保存并恢复环境变量和当前目录。

quiet

在修复故障之前停止警报。当您、root 或指定用户收到重复警报时使用该值。

none

不发送任何警报。如果您不指定打印机的故障警报,则该值为缺省值。 

Procedure如何使用 LP 打印命令为打印机设置故障警报

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。

  2. 为打印机设置故障警报。


    # lpadmin -p printer-name -A alert [-W minutes]
    -p printer-name

    指定要为其指定打印机故障警报的打印机名称。

    -A alert

    指定当打印机发生故障时会发出哪种警报。其中一些有效值包括 mail、write 和 quiet。

    -W minutes

    指定出现故障警报的间隔时间(分钟)。如果不指定此选项,则发送警报一次。

  3. 验证是否已正确发送故障警报。


    # lpstat -p printer-name -l
    

示例 6–6 设置打印机的故障警报

以下示例说明如何设置打印机 mars,以将故障警报通过电子邮件发送到名为 joe 的用户。每隔 5 分钟发送一次提醒。


# lpadmin -p mars -A 'mail joe' -W 5

以下示例说明如何设置打印机 venus,以将故障警报发送到控制台窗口。每隔 10 分钟发送一次提醒。


# lpadmin -p venus -A write -W 10

以下示例说明如何停止打印机 mercury 的故障警报。


# lpadmin -p mercury -A none

以下示例说明如何在修复打印机 venus 故障之前停止故障警报。


# lpadmin -p venus -A quiet

使用 LP 打印命令设置打印机故障恢复

如果您选择不发送任何故障通知,仍可以找出有关打印机故障的原因并更正问题。LP 打印服务不会继续使用有故障的打印机。除打印机故障警报外,您还可以在打印请求需要时,提供指示装载打印轮、字体盒和表单的警报。

您只能使用 lpadmin -F 命令来定义打印机的故障恢复选项。此任务在 Solaris Print Manager 中不可用。

打印机故障可能很简单,如纸张不足或者需要更换碳粉盒等。更严重的问题可能包括打印机整体故障或电源故障。

修复打印机故障后,在出现故障时处于活动状态的打印请求将采用以下三种方式之一开始打印:

LP 打印服务需要有单独的打印过滤器,才能从打印停止时所在页的顶部继续打印。此打印过滤器记录由缺省打印过滤器设置的控制序列。打印机使用这些控制序列跟踪页边界。如果使用指定的打印过滤器无法进行恢复,则 LP 打印服务将通知您。有关编写过滤器的信息,请参见如何创建新的打印过滤器。

如果您希望在修复打印机故障之后立即恢复打印,请通过使用 enable 命令启用打印机。

下表列出了可以使用 lpadmin -F 命令为打印机设置的故障恢复值。

表 6–5 打印机故障恢复值

-F recover-options 的值

说明 

beginning

在故障恢复之后,从文件开头重新开始打印。 

continue

在故障恢复之后,将从停止打印的页面的顶部开始进行打印。此恢复选项需要打印过滤器。

wait

在故障恢复之后,打印停止,直到您启用打印机。在通过使用 enable 命令启用打印机之后,从打印停止时所在页的顶部开始打印。此恢复选项需要打印过滤器。

Procedure如何使用 LP 打印命令设置打印机故障恢复

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。

  2. 为打印机设置故障恢复。


    # lpadmin -p printer-name -F recovery-options
    
    -p printer-name

    指定要为其指定故障恢复的打印机的名称。

    -F recovery-options

    指定以下三个有效恢复选项之一: beginning 、continue 或 wait。

    有关更多信息,请参见 lpadmin(1M) 手册页。

  3. 验证是否正确设置了打印机故障恢复。


    # lpstat -p printer-name -l
    

示例 6–7 设置打印机故障恢复

以下示例说明如何设置打印机 luna,以从打印停止时所在页的顶部继续打印。


# lpadmin -p luna -F continue

使用 LP 打印命令限制用户对打印机的访问

您可以控制哪些用户可以访问某些打印机或所有可用打印机。例如,您可以禁止一些用户在高品质打印机上打印,以便最大限度地减少开支。要限制用户对打印机的访问,可以通过在打印服务器上使用 lpadmin -u 命令创建 allow 和 deny 列表。通过 Solaris Print Manager 仅能创建 allow 列表。如果不创建上述任一列表,则打印机对所有可对其进行访问的用户均可用。

allow 列表包含允许访问指定打印机的用户的名称。deny 列表包含被拒绝访问指定打印机的用户的名称。

allow 和 deny 列表的规则在下表中进行了说明:

允许列表和拒绝列表的规则 

用户结果 

不创建 allow 和 deny 列表。或者,如果将这两个列表保留为空。

所有用户均可以访问打印机。 

在 allow 列表中指定 all。

所有用户均可以访问打印机。 

在 deny 列表中指定 all

拒绝服务器上除 root 和 lp 用户之外的所有用户访问打印机。

在 allow 列表中建立任何项。

忽略 deny 列表。仅有列出的用户才能访问打印机。

创建拒绝列表,但是不创建 allow 列表或者将 allow 列表保留为空。

拒绝 deny 列表中列出的用户访问打印机。

由于打印服务器负责控制对打印机的访问,因此只能在打印服务器上创建 allow 和 deny 列表。如果创建 allow 和 deny 列表,则打印服务器将以排它方式控制用户对打印机的访问。

下表列出了可以添加到 allow 列表或 deny 列表中以用于限制用户对打印机的访问的值。

表 6–6 允许列表和拒绝列表的值

user-list 的值

说明 

user

任何系统上的 User

all

所有系统上的全部用户 

none

不包括任何系统上的用户 

system!user

仅 system 上的 User

!user

仅本地系统上的 User

all!user

任何系统上的 User

all!all

所有系统上的全部用户 

system!all

system 上的所有用户

!all

本地系统上的所有用户 

Procedure如何使用 LP 打印命令限制用户对打印机的访问

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。

  2. 允许或拒绝用户访问打印机。


    # lpadmin -p printer-name -u allow:user-list [deny:user-list]
    -p printer-name

    指定对其应用 allow 或 deny 访问列表的打印机的名称。

    -u allow:user-list

    指定要添加到 allow 访问列表的用户名。您可以使用此命令指定多个用户名。使用空格或逗号来分隔名称。如果使用空格,请用引号将名称列表引起来。

    -u deny:user-list

    指定要添加到拒绝用户访问列表的用户名。您可以使用此命令指定多个用户名。使用空格或逗号来分隔名称。如果使用空格,请用引号将名称列表引起来。

    指定的用户将会添加到打印服务器上以下某个文件中打印机的 allow 或 deny 列表中:


    注 –

    如果将 none 指定为 allow 列表中 user-list 的值,则在打印服务器上不会创建以下文件:


  3. 验证以下命令输出中 Users allowed 或 Users denied 标题下的信息是否正确:


    # lpstat -p printer-name -l
    

示例 6–8 限制用户对打印机的访问

以下示例说明如何仅允许用户 nathan 和 george 访问打印机 luna。


# lpadmin -p luna -u allow:nathan,george

以下示例说明如何拒绝用户 nathan 和 george 访问打印机 asteroid。


# lpadmin -p asteroid -u deny:"nathan george"