Chinaunix首页 | 论坛 | 博客
  • 博客访问: 567329
  • 博文数量: 113
  • 博客积分: 3322
  • 博客等级: 少校
  • 技术积分: 1565
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-04 11:38
文章分类

全部博文(113)

文章存档

2012年(21)

2010年(92)

分类:

2010-03-03 09:41:11

第十二章 配置和使用打印服务
目标要求:
标示网络打印功能
配置和管理打印服务
开始和停止line printer(LP)服务
指定打印目的
使用LP打印服务
使用公共打印命令

介绍网络打印的基本功能
Solaris OS LP打印服务提供完整的打印环境,它允许通过系统和设置可以持续工作的打印软件工具来共享网络打印机。
在这一版本的solaris中修改了对打印机的支持,比起以前的solaris版本可以支持更多的种类的打印机。
Raster image processor(RIP)
RIP能够使得你的打印机并不驻留Postscript进程的能力。Solaris软件现在能够够提供RIP打印服务和支持这种技术。使用合适的驱动,你可以通过lpadmin命令来进行配置(或者使用Solaris Print Manager程序)

Postscript printer description(PPD)
PostScript是一种依靠Adobe 描述打印文档的语言。任何一种应用创建的ostScript输出到能够打印任何的PostScript能力的打印机。PPD文件描述设备依靠功能,当打印机的厂家出品的打印机的功能不参考PostScript的时候。

打印管理工具
在Solaris OS中LP打印服务软件包含以下几部分设置和管理打印机。
Solaris OS Print Manager---一个用户图形界面(GUI)提供配置和管理打印机的能力
LP打印服务命令-----命令行接口配置和管理打印机。这些命令同样提供在其他打印管理工具不能完成的功能。

客户/服务器模型
Solaris OS操作环境打印服务是在客户/服务器模型下的工具。
打印服务器:任何系统已经设置了管理的直接连接的打印机,或者在网络上绑定的打印机,打印服务器都可以使他被其他系统通过网络访问到。
打印客户端:传送打印需求到打印服务器的系统
作为系统管理员,设置打印机以使用户可以访问一个或多个打印机是重要的。
将打印机分配在几个打印服务器上。如果一个打印服务器变得不够用了,打印任务需要可以快速的并且简单的转向网络上的其他打印服务器。
Solaris OS支持本地,网络,远程打印机设置。
本地打印机:一个本地打印机是物理连接到系统的,并且是从这个系统访问的。
网络打印机:网络打印机是物理绑定到网络的,并且有自己的主机名和IP地址。网络打印机可以给没有直接连接到打印服务器的客户端提供打印服务。
远程打印机:远程打印机是一个在网络上的用户访问;那是任一个打印机物理连接到一个远程系统或者物理绑定到网络。

Solaris OS LP打印服务的一些基本功能
Solaris OS LP打印服务的一些基本功能包括初始化,队列,跟踪,故障通知,过滤。
初始化
在Solaris OS LP打印服务初始化一个打印机时会优先的传送一个打印需求以确认打印机在一个已知的状态中
队列
在Solaris OS LP中打印服务是按照队列进行打印请求的。预定的需求和其他打印需求一起等待被传送到打印机。
跟踪
在Solaris OS LP中打印服务跟踪每个打印需求的状况,以使root可以管理所有的需求,并且为普通用户可以查看或者取消他们的自己的需求。他同样把打印过程期间出现的所有错误记录入日志。
故障通知
在Solaris OS LP中当打印服务出现问题的时候,打印服务提供故障通知功能。故障通知功能打印一个错误消息到控制台或者发送一个邮件给root用户。
过滤
在Solaris OS LP中打印服务提供一个过滤功能为目的打印机的打印文件转换合适的打印类型。

LP打印目录结构
Solaris OS LP打印服务包括目录结构,文件和日志。下面部分将描述这个结构中的一些重要组成部分。

/usr/bin 目录
这个目录包含LP打印服务的用户命令。比如:lp ,lpstat cancel等命令。

/usr/sbin目录
这个目录包含LP打印服务的管理命令。比如:lpadmin, lpusers,lpshut等命令。

/usr/share/lib/terminfo目录
这个目录包含terminfo,数据库目录用于描述打印机和终端的能力。       

/usr/lib/lp目录
这个目录包含lpsched进程,LP打印服务使用的2进制文件。PostScript过滤器和标准打印机的程序接口。在/usr/lib/lp目录有两个重要的子目录是模式和脚本目录。

/usr/lib/lp/model目录
这个目录包含4种默认的打印机接口程序和shell脚本称为standard, standard_foomatic, netstandard和netstandard_foomatic脚本。
这个标准脚本支持本地打印机使用PostScript或者ASCII.。

Netstandard脚本支持网络打印机。Netpr模式打开网络连接打印机并且发送数据到打印机。
standard_foomatic和netstandard_foomatic脚本为打印机更好的使用新的RIP功能和从/usr/lib/lp/model/ppd来的文件提供优势。
当打印机被配置适合方式的脚本要从/usr/lib/lp/model复制到/etc/lp/interfaces/printer_name。
Root用户能够修改任何打印机的接口脚本。
比如:
/etc/lp/interfaces/printer_name 文件的内容:
Nobanner参数的修改。
nobanner="no"


nobanner="yes"

/usr/lib/lp/postscript 目录
这个目录包含所有的Solaris OS LP 打印服务PostScript过滤器程序。与这些过滤器相适应的描述器文件在/etclp/fd目录。

/etc/lp 目录

这个目录包含LP服务器的配置目录和文件。

你能够看到这些配置文件的内容。但是,你不能直接编辑这些文件。可以使用lpadmin命令和使用printmgrGUI接口进行编辑。
在/etc/lp目录下有3个重要的打印机配置子目录,是fd,interfaces和printers目录。
/etc/lp/fd目录包含设置打印过滤描述器文件。这些文件描述了过滤特性和确切的过滤程序点。
   
/etc/lp/filter.table文件中包含了过滤查询表。               
/etc/lp/interfaces目录包含了任何打印机的接口脚本文件。当打印机被配置,打印服务会复制一个合适的默认打印接口脚本从/usr/lib/lp/model到/etc/lp/interfaces/printername文件。
/etc/lp/printers目录包含了任何一个打印机服务的子目录。
举例下面是一个打印机名字为printerB的文件例子。
#        cat /etc/lp/printers/printerB/configuration
Banner: optional
Content types: postscript
Device: /dev/null
Interface: /usr/lib/lp/model/netstandard
Printer type: PS
Modules:
Options: dest=printerB,protocol=bsd

/var/spool/lp 目录

这个目录包含了当前要求的打印序列的列表

lpsched进程是用于跟踪系统中任意一个打印队列。

/var/spool/lp/tmp/system-name
/var/spool/lp/requests/system-name
本地打印请求在 /var/spool/lp/tmp/system-name目录中包含一个文件
和在/var/spool/lp/requests/system-name 目录包含另一个文件。
远程打印请求在/var/spool/lp/tmp/system-name目录中包含2个文件。
同时在/var/spool/lp/requests/system-name 目录中包含一个文件。
只有root用户和LP用户能够访问在var/spool/lp/requests/system-name目录下的信息。
只有提交打印请求的用户,root用户和lp用户能够访问/var/spool/lp/tmp/system-name目录下的信息。
当完成一个打印请求后,打印服务所结合的信息文件会追加到/var/lp/logs/requests文件。
/var/spool/print目录包含了客户侧请求打印服务的状态。

/var/lp/logs 目录
这个目录包含了打印请求的历史信息。
/var/lp/logs/requests 包含关于已完成的打印请求的信息。

来自网络的打印请求
/usr/sbin/inetd 网络服务进程
使用svcs –a命令来检查打印服务的状态:
#        svcs -a |grep ’print’
disabled       16:59:17 svc:/application/print/server:default
online         16:59:49 svc:/application/print/cleanup:default
offline        16:59:35 svc:/application/print/ipp-listener:default
offline        17:00:43 svc:/application/print/rfc1179:default

使用svcadm 命令能够启动和关闭服务,通过重新启动来改变服务的运行状态。
#        svcadm enable svc:/application/print/server:default
#        svcs -a | grep ’print/server’
online         19:01:09 svc:/application/print/server:default

当打印请求到来的时候,inetd进程处理与服务相适应的服务器程序。打印服务器监听打印请求通过inetd进程。当有请求的时候启动in.lpd进程。


/usr/lib/print/in.lpd 进程
Inetd进程启动in.lpd程序,有时需要参考适配器协议。In.lpd 程序服务于打印协议的网络监听服务。打印协议提供一个远程接口。这个协议定义了一个标准的请求为打印客户端到打印服务器。

网络打印协议(IPP)监听器
IPP监听solaris OS超文本传输协议(HTTP)的请求端口631。这个监听器接收打印客户端的请求和连接这些请求的打印系统。
当打印服务器配置完成,IPP监听服务自动启动:
#        svcs ipp-listener
online         19:01:11 svc:/application/print/ipp-listener:default

打印客户端需要知道打印服务器的名字和打印机的名字。比如:


/usr/lib/lpsched守护进程
LP打印服务的调度进程叫做lpsched。这个调度守护进程升级关于打印机设定和设置信息的LP系统文件,并且管理通过lp和lpr命令发送个系统的需求。
Lpsched守护进程在打印服务器上调度所有本地打印需求。他同样追踪打印机的状态和打印服务器的过滤器。当一个打印机完成需求时,如果在打印服务器的需求队列中还有需求的话,lpsched调下一个需求。
每个打印服务器必须有并且只有一个lpsched守护进程运行。它的启动是通过 svc:/application/print/server:default service当系统启动的时候,lpsched父进程产生lpsched子进程服务于打印作业。

Solaris OS 打印进程
用户通过lp或者lpr命令从打印客户端提供打印请求。

本地目的打印机
Solaris OS LP打印服务检查几个资源为本地的目的打印机的打印请求。
如果命令行没有指定目的打印机的名字,用户的shell环境会检查。
你能够设置LPDEST或者PRINTER环境变量来定义默认的打印机名称。LP命令检查LPDEST和PRINTER。Lpr命令用倒叙方法来寻找打印机。
如果没有指定目的打印机名的变量,solaris OS LP打印服务会在下列文件中寻找默认的变量设置:

$HOME/.printers文件
用户能够设置属于自己的.Printers文件在自己的家目录中。只需要在文件中加入下面的行:
_default printername
如果$HOME/.printers文件不存在指定的目的打印机名。Solaris OS LP打印服务检查/etc/printers.conf文件。

/etc/printers.conf文件
/etc/printers.conf文件的每个条目用于描述目的打印机。例如:host1是打印服务器的名字同时printerA是打印机名字,在这个文件中就是以下面的方式出现的:
_default:\
        :use=printerA:\
printerA:\
        :bsdaddr=host1,printerA,Solaris
        :description=printerA
如果_default变量没有设置,则_default变量的名字检查在服务数据库上。(比如:NIS)

printers.conf.byname文件
printers.conf.byname文件是NIS上的/etc/printers.conf文件。在这种情况下_default变量在printers.conf.byname文件中定义打印机。
_default:bsdaddr=servername,printername:
如果目的打印机的名字不能定位任何一个配置资源,则打印请求不能完成。

介绍本地的打印过程
当本地用户提交打印请求到本地打印机。Lp或者lpr命令提交打印请求到lpsched进程,lpsched进程在呼叫打印作业。
过程如书上图所示。

远程打印过程
当用户提交打印请求到远端打印机,lp或者lpr命令发送打印请求到远端打印服务器。
过程如书上图所示。

配置打印服务
在solaris OS上设置打印机服务,需要完成以下几个步骤。
     任务                            描述
  设置打印机                    通过网络或者系统连接物理打印机
  设置打印服务                  配置系统管理和访问打印机。
  设置打印客户端                配置系统访问远程打印机
  确认打印机访问                确认打印服务器连接所有的打印客户端连接到打印服务器

使用solaris OS打印管理
#        /usr/sbin/printmgr &
通过图形界面操作,在这里就不详细描述了。

设置系统的默认打印机
Root用户能够运行lpadmin命令来设置个人打印机或者系统为所有的打印请求设置一个打印机组。
# lpadmin –d printername
# lpadmin –d printer-classname

举例:
#        lpadmin -d printerE
设置系统默认目的打印机
#lpstat –d
system default destination: printerE
检查系统的打印机的默认设置。
#lp myfile
request id is printerE-514 (1 file)
发送打印请求到默认打印机printerE。

移出客户端打印机配置
手工移出客户端打印机配置,执行下面的步骤:
1.        在打印客户端用root用户登陆从LP打印服务中移出打印机。
2.用lpadmin命令删除关于客户端的打印机信息。
# lpadmin –x printername
#        lpadmin -x printerD
从系统中删除printerD打印机。
在/etc/printers.conf文件中删除指定的打印机。

移出服务器端的打印机配置
手工移出服务器端的打印机配置执行以下步骤:
在连接配置打印机的打印服务器上用root用户登陆。
停止请求打印机的打印队列。
#        reject printerD
停止打印机。
#        disable printerD
删除打印服务器上的打印机。
#        lpadmin -x printerD
这个步骤的目的是从打印机服务器的/etc/lp/printers目录和/etc/printers.conf文件中删除打印机的配置信息。

开始和停止LP打印服务
LP打印服务是由lpsched进程启动的,由lpshut命令来停止的。

启动LP打印服务
Lpsched进程启动或者重新启动LP打印服务。
下面的例子是从命令行启动lpsched进程。
#svcadm enable application/print/server

停止LP打印服务
当引入命令使打印服务disable的时候,任何打印机正在打印机的工作都将停止。
Lp打印机服务disable。这个方法可以停止打印服务器的打印服务。
#svcadm disable print/server
#svcs -a | grep print
disabled       19:12:16 svc:/application/print/server:default
online         16:59:49 svc:/application/print/cleanup:default
online         19:01:10 svc:/application/print/rfc1179:default
offline        19:12:16 svc:/application/print/ipp-listener:default

指定目的打印机
在Solaris OS用户可以使用lp命令或者lpr命令来提交打印请求。
注意:Solaris OS LP打印服务接受来自于SVID的/usr/bin/lp和来自于BSD 的/usr/ucb/lpr命令提交的打印请求。

使用lp命令
lp命令位于/usr/bin目录下。Lp命令提交打印作业到默认的打印机或者其他打印机通过指定打印机名。命令举例:
$ /usr/bin/lp        filename
$ /usr/bin/lp -d        printername filename

使用lpr命令
lpr命令位于/usr/ucb目录下。Lpr命令和lp命令具有同样的功能特性。提交打印作业请求到默认的打印机或者其他的打印机。
$ /usr/ucb/lpr        filename
$ /usr/ucb/lpr –P         printername filename

使用LP打印服务
LP打印服务是设置一些软件命令,效用和允许用户打印文件的过滤,root用户设置和管理打印操作。
只有root用户可以使用下面的命令
Accept               允许打印请求队列到指定打印机
Reject                阻止已有的打印序列的打印请求到指定的打印机
Enable               激活指定的打印机
Disable              停止指定的打印机
Lpmove              移动打印请求从一个默认打印机到另一个

接受打印作业
作为root用户你可以在打印服务器上使用accept命令允许打印请求队列到指定的打印机。

使用accept命令
你可以使用accept命令允许打印请求队列到目的名。这个目的名是指定的打印机名或者是打印机组。
命令格式如下:
# /usr/sbin/accept        destination(s)
下面的例子是root用户使得打印机请求队列到printerD.
#        accept printerD
目的 "printerD"现在接受请求。

拒绝打印请求
做为root用户你可以在打印服务器上使用reject命令拒绝打印请求队列到指定的打印机。

使用reject命令
你使用reject命令阻止打印请求队列并且停止用户提交的到打印机队列的请求。
命令格式:
# /usr/sbin/reject        -r “reason" destination(s)
下面的例子显示如何使用-r”reason”参数输入解释拒绝到打印机的打印请求。用户使用lpstat –a或者lpstat –t命令看文本注释。
#        reject -r "Replacing Toner Cartridge" printerD
目的 “printerD” 将不在接受打印请求。

激活打印机
在打印服务器上作为root用户你可以使用enable命令来激活指定打印机。

使用enable命令
Enable命令能够激活打印机,让提交打印请求的打印队列可以工作。
命令格式为:
# /usr/bin/enable        destination(s)
下面的例子是激活打印机 printerD.
#        enable printerD

停止打印机
在打印服务器上作为root用户你可以使用disable命令来停止指定打印机。

使用disable命令
Disable命令停止打印机,并且停止打印机上正在等待打印请求的打印队列。
默认情况下,当正在打印机上打印的请求接收到disable命令后,再一次enable打印机的时候,会重新再打一次。命令格式为:
# /usr/bin/disable -c | -W -r        “reason” destination
Disable命令的参数
-c               停止当前的打印作业和停止打印机。当前作业下次不再打印。
-w               在停止当前打印机之前等待打印作业完成。
-r                当打印机停止的时候告之原因。
举例使用disable命令
#disable -W -r “Printer down for maintenance” printerD
打印机“printerD”现在是disabled

移动打印作业
你使用lpmove命令移动一个或者所有的打印请求从一个目的打印机到另一个目的打印机。

使用lpmove命令
Lpmove命令格式为:
# /usr/sbin/lpmove        source_destination target_destination
使用lpmove命令移动一个或者全部打印请求需要进行的步骤。
在打印服务器端成为root用户
使用reject命令停止已发送但未进行的打印机请求。这个步骤提示用户打印机已经不在接受请求。
#        reject -r “PrinterC is down for repairs” printerC
目的 “printerC”已经不在接受请求。
使用lpstat命令显示有多少打印请求需要移动这个步骤需要标示打印请求标示号(IDS)便于选择为进行的打印请求到另一个打印机。
#        lpstat -o
printerC-29        sys41!user1         61426      Jan 07 12:30

.使用lpstat命令确认目的打印机接受的打印请求
#        lpstat -a printerA
printer printerA accepting requests since Tue Jan 1

移动打印请求
举例移动全部的打印请求从printerC到printerA..
#lpmove printerC printerA
move in progress ...
total of 5 requests moved from printerC to printerA

举例移动一个或者多个单一打印请求从printerC到printerA。
#lpmove printerC-32 printerC-33 printerA
total of 2 requests moved to printerA
.如果所有的打印请求从printerC移走,printerC拒绝自动接受请求。当printerC再次启动,使用accept命令允许打印作业队列到printerC
#accept printerC
destination “printerC” now accepting requests
阅读(2860) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

为什么删我号2010-03-03 10:19:49