Unix打印审批管理客户端命令行Command-Line

在现代的Linux环境里,最普遍使用的打印系统通常是CUPS。PaperCut NG可以配置并入到CUPS以便利跟踪打印。在遗留下Unix系统的CUPS通常是没有打印选项的,通过打印机工具来执行,如:lp或lpr。LPR/LPD是未鉴定的打印协议,因此用户是与打印工作一致联合的,无法被信任。代替的是,鉴定必须在PaperCut NG应用层上执行。PaperCut NG客户端工具用窗口的鉴定在“假定2:多用户的Mac使用窗口鉴定”里有讨论。这是一个很好的选项但并不是仅适合于终端环境。仅终端环境可以通过打印审批队列支持(请查看第九章的“打印审批管理”了解更多详细的信息)。拥有打印审批队列的工作是基于浏览器界面的,然而仅对终端用户有利,命令行也是提供发布工作给客户端的。

使用一个实例将是对此程序最好的解释:

  1. John使用lp命令从他的Unix终端部分打印Postscript文件。此工作在用户名身份“john”下抵达队列。(虽然名称不是真实的)

  2. 管理员已经激活了PaperCut NG打印审批管理的打印队列。此工作是放置在一个支持是状态里。

  3. John必须现在鉴别,证明她的身份并审批打印工作。他通过打印审批管理命令行选择客户端。

  4. John输入命令 release-print-job,此命令通过系统管理员已被设立。

  5. John输入他的用户名和密码,证实工作的名称,费用和页数并审批打印工作。查看以下的输出实例:

        Please enter your username: john
        Please enter your password:
        Current balance: $8.00
        18:04:13 - Name: "Configuring Linux", Pages: 2, Cost: $0.40
        Print this job? [yes]
        Released 1 job(s).
                        
  6. 打印工作和John的支付帐户。

激活打印机审批管理是一个全面的选项 – 它影响到所有用户的所有打印工作。在一些环境里,她可能不适合通过打印审批管理控制所有打印工作 - 例如:打印工作发源于Windows系统已经鉴定并且应该直接打印工作。交替策略对同一台打印机是有两个队列的。第一个队列不使用打印审批管理选项并仅允许从工作站/用户鉴别打印工作,而要激活其它队列要用打印审批管理选项。

PaperCut NG可以通过LRP/LPD管理打印队列并使用各种不同的方法显示访问。可选择的Windows系统成分,“对于Unix的打印服务”可以使用Windows主机系统上的队列。如果队列在Linux主机上那么可利用CUPS的LPD界面。

提示

Windows系统管理员可以通过LPR/LPD控制打印队列设置打印机的许可。队列的设置明确拒绝从SYSTEM帐户访问而不是通过LPR访问的许可。

安装命令行Command-Line打印审批管理客户端

下列的安装说明假定的是已经有Unix系统管理经验的读者。

  1. 确保在您的系统上安装Java 1.5或新的版本。在终端核查Java的版本类型。如果您不是Java5(1.5)或更高的版本,请先进行安装,Java是对大多数Unix操作系统可利用的。

  2. 从您的主服务器复制打印审批文件到您期望设立的命令行打印审批管理客户端系统。这些可以在[app-dir]/release里找到。如果您运行的是Windows主服务器,那么这个文件夹将通过默认值共享(可通过//[server]/release)。您可以使用诸如: Samba(smbclient)工具来帮助复制这些文件。确保所有文件在文件夹里被复制并细心保存现有的文件。

    推荐的打印审批管理命令行客户端安装的位置是:/usr/local/papercut/release/。

  3. 确保命令行打印审批管理客户端对所有的用户有执行许可。这可以用以下的命令在审批目录里完成:

        chmod 755 ./pc-release-cmd-line.sh
                                

  4. 为了方便,命令行打印审批管理客户端可以使用别名创建。这是一个典型的通过输入以下全部文件概要或每个用户的文件概要来完成的:
        alias "release-print-job" = \
            "/usr/local/papercut/release/pc-release-cmd-line.sh
                                
  5. 用户现在将能够通过release-print-job的类型审批他们的打印工作。

它也可以对lp创建‘包'运行命令行有利于打印审批管理客户端,之后用户发送打印工作。下列script print-doc 提供了一个实例:

    #!/bin/sh
    echo "Printing document using lpr..."
    /usr/bin/lpr "$@"
    echo "Printing done, calling program to release job..."
    sleep 1
    cd /usr/local/papercut/release
    ./pc-release-cmd-line.sh
    echo "Done."
                   

为了方便用户,命令行打印审批管理客户端应该在所有终端系统上安装并执行打印。