前一段时间我在坛子上问了一些打印方面的问题,解决了一大半
现在把我觉得有用的贴上来,希望对后来者有帮助
我欢迎大家回帖,但是希望大家尽可能把打印方面的心得或资料先贴上来,
这样后来的可以在贴子的前面找到自己所需要的。
基本概念 回复于:2005-06-04 13:01:14 |
和在Windows下共享网络上其它主机所连接的打印机一样,在装有SCO Unix主机的网络上也能很方便地实现打印机的共享。对于TCP/IP网络,远程打印机联网为Client/Server模式。在联网的计算机中,没有安装打印机的Unix系统机器,可以将打印作业发送到安装了打印机的Unix系统机器上。本文所讨论的网络打印机,和真正意义上的完全通过网络安装与配置的打印机不同,是通过配置假脱机程序达到经过网络在远程主机所连接的打印机上打印的目的。本文不涉及网络本身的讨论,假定TCP/IP网络是开通的,下面就网络打印机的配置过程做一简要叙述。
该方法需要在打印服务器上配置一个本地打印机,并使它能接受远程主机的打印请求。具体步骤如下。 1.配置打印接口 此项工作的实质是把相应口的驱动程序连入核心。打印机既可以安装在Unix主机的并口上,也可以安装在串口上。 (1)若安装在COM1口上,则不必在系统中配置,它是系统默认的串口。若连接在COM2口或其它非智能多串卡的口上时,则需执行mkdev serial 命令,或进入scoadmin,选择Hardware/Kernel Manager-> Serial port,此时屏幕显示: Description Ports IRQ I/O addr IBM-COM1 1 4 3F8 并有Add、Delete、Modify三个选项。选择Add,此时屏幕显示: Description Ports IRQ :[ 3 ] IBM-COM2 1 AST 4 I/O addr [2f8] … 其中第一列为串口或多口卡的名称,第二列为端口数。随着每行选项的不同, 显示的IRQ和I/O addr取值也不同,但可直接修改。选中IBM-COM2后回车,此时在IBM-COM1下显示: IBM-COM2 1 3 2F8, 表明串口配置成功。 (2)若安装在并口上,则需执行mkdev parallel命令或进入scoadmin,选择Hardware/Kernel Manager ->Parallel Port, 此时屏幕显示: Parallel Port Initialization There are no parallel ports configured Do you wish to: 1.Add a parallel port 2.Remove a parallel port 3.show configuration 4.help select an option or enter q to quit: 敲入1,回车,此时屏幕显示: Please select the I/O address for the adapter: 1.Parallel Adapter at address :378-37f 2.Parallel Adapter at address:3bc-3be 3.Parallel Adapter at address: 278-27a 4.Other configuration Select an option or enter q to quit: 这里给出四种选择。这一步应根据系统硬件的实际配置进行选择,同时还应兼顾给出的I/O地址范围。一般情况下,可选择1,回车后屏幕提示: Should this port use interrupt (default [7]): 如果使用中断向量7则回车,屏幕显示:The device node is /dev/lp0 ,表明并口配置成功。 (3)新的核心生成后,使用命令hwconfig -c检查该口与其它设备有无冲突。显示的信息内容: name=serial base=0x2F8 offset=0x7 vec=3 dma=- unit=0 type=standard nports=1 name=parallel base=0x378 offset=0x2 vec=7 dma= - unit=0 若最后显示No obvious conflicts in hardware settings 则表示没有冲突。若提示有vector 或address冲突,则需要删除所加口,选择其它配置。 (4)对所设接口和打印机的连接进行检查。检查的办法是直接给打印机发送数据。对于串行打印机使用命令: date > /dev/ttynn ,ttynn代表打印机所用串口(如COM1为tty1a,COM2为tty2a);对于并行打印机使用命令:date >/dev/lpn,lpn代表打印机所用并口(主并口为lp0)。命令把当前日期送到打印机上打印,如果打印机打印正确,表明所用接口配置正确。若打印机没有输出,把打印机及打印电缆连接到另外一个能正常打印的系统上测试:如果工作正常,说明所用打印接口的硬件有问题,应删除此接口并重新配置其它接口。 2.设置打印机 (1)使用mkdev lp 命令或进入scoadmin,选择Printers->Printer Manager->Printer->Add Local,此时屏幕显示: Add Local Printer Name:[ ] Description:[ ] Model:[ ] Device:[ ] 这一步要逐一填入相应的内容。Name代表准备添加的打印机名;Description代表注释字段;Model代表打印机类的名字,可用↓选择,如Epson、HP等,一般可选standard;Device代表打印接口的名字,如/dev/tty1a、/dev/lp0,也可用↓选择。选OK后回车,打印机就设置完成了。再选Set To Default将它设为缺省打印机。 (2) 进入settings->Control,此时屏幕显示: Printer Control [ ]Enable Printing [ ]Accept New Local Jobs [ ]Accept New Remote Jobs 将光标移到各选项后按空格键,若在[ ]中加上,表示选中此项,使打印机既接受本地打印,又接受远程打印。 3.为客户机建立信任 在/etc/hosts文件中加入客户机的IP地址及主机名,在/etc/hosts.equiv中加入客户机的主机名及需要使用远程打印机的用户名。若客户机上所有用户均需使用远程打印机,则只加入客户机的主机名即可。 经过上述3步,打印服务器上需做的工作就完成了。下面再叙述一下客户机上需做的工作。 1/etc/hosts中加入打印服务器的IP地址和主机名。 2用命令mkdev lp或进入scoadmin,选择Printer->Printer Manager->Printer->Add Remote->Unix,此时屏幕显示: Add Remote Unix printer Host :[ ] Printer:[ ] 在Host选项中填入(或用↓选择)打印服务器的主机名,在Printer选项中填入打印服务器上所加的打印机名称。选OK后回车,打印机就设置完成了。再选Set To Default将它设为缺省打印机。 客户机上打印机的设置与打印服务器上打印机的设置是完全不同的,因此,不需对串口(或并口)进行配置,打印机本身也是虚拟的。 上述工作完成后,在客户机上就可用lp命令直接在远程打印机上打印了。lp不是直接操作打印的命令,它的功能是向打印服务提交打印作业的请求。Unix系统的打印工作是由打印服务进程来控制的,每当系统引导进入多用户状态时,打印服务便自动地启动。lp命令提交的每个请求对应一个唯一的ID号request-id,在对打印请求注销、修改或查看时,都要用到ID号。在SCO Unix系统中,打印请求的信息分别存放在目录:/usr/spool/lp/temp 和/usr/spool/lp/requests下。在temp下,每个打印请求有request-id-0和request-id-1两个文件。request-id-0中存放诸如打印文件名、优先级、打印机类型、打印份数等内容;request-id-1是打印源文件的完全拷贝,打印的数据就取自这个拷贝。在requests下,文件名为request-id-0,内容为打印请求的一些描述信息。在客户机上使用lp命令后,在本机上并不产生打印请求,而是通过网络在打印服务器上产生打印请求,打印文件的内容通过网络复制到打印服务器的/usr/spool/lp/temp/request-id-1文件中,并通过远程打印机打印出来。 |
基本概念 回复于:2005-06-04 13:12:51 |
上面的共享有时会有问题,下面这个是上面的补充
常见的问题 1、sco unix 5.0.5 增加远程打印机 退出再进入时(mkdev lp) 为何看不到打印机? 2、两台机器,一台hostname为server76,一台hostname为printsvr,在printsvr上安装了一台名为print的本地打印机。现在想在server76上安装一台远程打印机,指向printsvr上的print打印机。 使用scoadmin->printers->Printer Manager->printer->Add Remote->unix增加,host选择printersvr,在选择打印机的时候,出现错误: Failed to retrieve list of local printers and their descriptions. detail信息为: Failed to retrieve list of local printers and their descriptions. server76 failed to connect to server76. Please check the following: * your .network configuration * your network connection * rhost permissions on the remote site * that SCOadmin is installed at the remote site Failure with connection to server. Remote child on machine printsvr has terminated. The child program /etc/sysadm.d/bin/osaserver has terminated. Server process exited with exit(1). Error with server process: Permission denied. 本人判断是两台主机的信任关系有问题,但是察看hosts.equiv,发现server76和printsvr分别在对方的hosts.equiv中出现,应该没有什么问题。 问题的解决方法(我本人用的是方法1) 1、(lvgq2001的回复)这是SCO的BUG,你用 lpstat -o all 如果能够看到该打印机的信息 就说明已安装了。 BUG解决方法:(nanfeng的回复) (1) cd /usr/spool/lp/admins/lp/printers/<RemotePrinterName> (2) touch alert.vars (3) vi alert.sh 内容如下: ## YOUR COMMAND STARTS HERE -- DON'T TOUCH ABOVE!! mail root ## YOUR COMMAND ENDS HERE -- DON'T TOUCH BELOW!! (4) chmod 660 alert.* (5) chown lp:lp alert.* (6) /usr/lib/lpshut (7) /usr/lib/lpsched (8) accept <RemotePrinterName> (9) enable <RemotePrinterName> 2、如果是信任关系 (lw371的回复) /.rhosts的属性应为600 即-rw-------- |
基本概念 回复于:2005-06-04 13:16:17 |
这个时打印管理的,是吹拂的晨风在Tru64 UNIX板块的原创
我自己总结了一些打印机的安装和维护,不过可能不是专门针对Tru64的,在这里也贴出来,希望对大家有帮助! 打印机通常连接在系统的串口或并口上,首先要保证这样的端口对打印机是可用的,这就需要对端口进行设置。打印机的安装大致分为这样几步:配置所用端口、连接打印机与主机、向系统中添加打印机的驱动程序、进行必要的打印机配置等。 打印机通过特定的端口与计算机相连。如果是并行打印机,使用标准的接口电缆把计算机的并行端口与打印机相连。然后要对打印机使用的端口进行配置。配置并口时,系统会提示选择所安装并口的I/O地址和中断号,大多数情况下使用默认值就可以了。并口设备文件的命名规则为:/dev/term/a是第一个并口,即LPT1;/dev/term/b是第二个并口。如果是串行打印机,用RS-232电缆把计算机的串口与打印机相连,然后执行admintool程序,对该端口进行配置,串行打印机必须能够支持XON/XOFF或者DTR(数据终端准备好)协议,并且按照这些协议进行配置。 配置好端口,连接好打印机后,需要测试连接是否正确,测试的方法是利用输出重定向,将一条命令的执行结果重定向到打印机,看看打印机上是否打印出命令的执行结果。对串行打印机,可以使用命令:#date>/dev/ttya(假设打印机连接到COM1);对并行打印机,可以使用命令:#date>/dev/term/a(假设打印机连接到LPT1) 如果连接正确,打印机上应该打印出当前日期。如果日期没有打印出来,就需要检查故障所在,可能的情况有:端口是否配置正确;使用的端口设备是否正确;连线是否正确;打印机的硬件设置是否正确等。 当把打印机正确连接到主机之后,就可以通过直接发送数据到端口设备进行打印,但是,还无法通过打印命令向打印机发送打印请求,更不能使用UNIX系统的打印作业队列管理功能,所以还必须把打印机添加到系统中,添加打印机的命令为lpadmin 此后还要执行enable命令来启动打印机,执行accept命令使该打印机能够接收用户的打印作业。这两条命令的格式为:enable 打印机名 accept 打印机名 在UNIX系统中,把文档在打印机上打印称为发送打印请求。发送打印请求使用lp命令,该命令执行后,将返回一个打印请求ID号,这个ID号唯一标志了每个打印请求,在注销、修改打印请求或查看其状态时,都要使用这个ID,lp命令的格式为:lp –d dest files,其中files是要进行打印的文件名,打印将按照文件在命令行中出现的先后次序进行,如果在命令行中没有给出要打印的文件名,系统就打印来自标准输入的内容。-d选项用来指定打印作业要发送到哪一台打印机,dest是所指定的打印机名或类名,如果不指定,系统将把打印请求发送到默认打印机上。 Lp命令只是提交打印作业请求,这个请求要能被执行,需要3个条件,一是打印服务已启动,二是系统中至少有一台默认打印机,三是默认打印机能够接受打印请求。如果要注销一个打印请求,可以使用cancel命令,其格式为:cancel [request_ids][printers],cancel request_ids(取消打印请求);cancel printers(取消打印机上的所有请求) 要使打印机或类拒绝任何新的打印请求,可以使用命令: /usr/lib/reject –r[reason] 打印机名或类名 拒绝打印请求,仅仅是使打印机不再接收受新的打印请求,但并不会注销当前打印队列中的任何请求,也不会移动他们。 如果系统中有多台打印机,可以把打印任务由一台打印机转移到另一台打印机,要转移打印请求,可以使用:/usr/lib/lpmove request_id 打印机名,有时希望将一台打印机上的所有打印请求转移到另一台打印机,可以执行:/usr/lib/lpmove 打印机名1 打印机名2 这时打印机1不再接收新的打印请求,相当于打印机1使用了reject命令。 每当系统引导进入多用户状态时,打印服务就自动地启动(/etc/rc2.d/S80lp);每当系统关闭时,打印服务也随之关闭,所以,一般情况下打印服务的启动和关闭并不需要手动地执行,如果出于特殊的需要,也可以进行人工干预,一旦停止了打印服务,所有的打印活动都将停止;并且,所有中断的打印作业在打印服务重新启动后,不能再继续完成。停止打印服务可以使用命令: #/usr/lib/lpshut 启动打印服务: #/usr/lib/lpsched 打印服务的每次启动和关闭活动,不论是手工方式,还是自动方式,都被记录再/usr/spool/lp/logs/lpsched文件中。 配置打印机,主要使用lpadmin命令: 如果一台打印机不再使用,可以删除这台打印机: lpadmin –x 打印机 如果系统中有多台打印机,可以设置其中一台为默认打印机,这样用户在打印时即不需要指定打印机,所有的打印请求被自动发往这台默认打印机。设置默认打印机的命令为: lpadmin –d 打印机 也可以通过定义环境变量LPDEST来设置默认打印机。想取消默认,则使用:lpadmin -d 打印机类的操作 打印机类由一组打印机组成,这组打印机按照一定的顺序排列,打印请求发送到一个类时,系统将按照类中打印机的排列顺序,找到第一个空闲的成员打印机去完成打印请求,类概念的引入,可以使系统更好的利用打印资源。打印时,只需要把打印请求发送给这个类,打印机的调度工作则由系统内部完成。一台新增加到系统的打印机不属于任何类,要把一台打印机增加到一个类中,可以使用命令:lpadmin –p 打印机名 –c 类名。打印机和类名必须唯一,如果命令行中指定的类名在系统中还不存在,那么执行这个命令后,将创建这个类,并把命令行中指定的打印机加到这个类中,删除打印机类可以使用:lpadmin –x 类名,删除指定的打印机类时,不删除作为类成员的打印机。注意:不论是删除打印机,还是删除类,必须保证所要删除的打印机或类上没有等待的打印请求。 如果仅仅希望把打印机从它所属的某个类中删除,可以使用:lpadmin –p 打印机名 –r 类名。 打印机权限设置 对于某台打印机,可以限制只有一部分用户使用打印机。一种方法是通过设置文件权限来实现,既然打印机是一台设备,有对应的设备文件名,那么就可以对这个文件的属主、与属主同组的其他用户分别设置权限。这种方法的缺陷是缺乏灵活性,不能对某个具体的用户设置权限。另一种方法是通过对一台打印机定义允许和不允许名单来实现。一个用户可以属于允许名单或不允许名单。这两个名单的定义应遵循下述规则: 1)允许名单中包含所有允许使用这台打印机的用户,而不允许名单中包含所有不允许使用这台打印机的用户。 2)如果允许名单不空,则不使用不允许名单;如果允许名单为空,则使用不允许名单,如果两个名单为空,则这台打印机没有使用限制。 3)如果将any或all放入允许名单,则允许所有人使用打印机。如果将any或all放入不允许名单,则禁止除了用户lp和root以外的所有人使用打印机。 允许名单和不允许名单分别用下面的命令来定义: /usr/lib/lpadmin –p打印机名 –u allow: 用户名列表 /usr/lib/lpadmin –p打印机名 –u deny: 用户名列表 打印机状态的查看: 在维护和使用打印机的过程中,经常需要了解打印机当前的状态,为此,系统提供了lpstat命令。使用lpstat命令可以全面地了解系统中打印机的配置,系统的默认打印机、打印机类及其成员、打印机的端口设备名、打印机是否接受打印请求等,lpstat命令的格式为: lpstat 选项 lpstat支持的选项有: -a 打印机或类:显示打印机接收打印请求的状态,默认为all,即显示系统中所有打印机和类 -c 打印机类:显示类的名字和它们的成员打印机。默认为系统中所有的类 -d :显示系统中默认打印机 -o 打印机 –l:显示打印机上所有打印请求的输出状态,-l可以使显示信息更详细。 -p 打印机:显示打印机状态,可以指定多台打印机,默认为系统中所有的打印机 -t 列出所有的打印请求 -u 用户名:显示指定用户的打印请求的输出状态,可以指定多个用户,默认为所有用户。 -v 打印机:显示打印机的端口设备名 最后,总结一下打印机的管理和使用方法。普通用户只能发送打印请求,注销自己的打印请求,查看打印机的状态,管理员除了这些操作外,还可以对打印机进行设置 普通用户可以使用的命令 lp 发送打印请求 cancel 注销打印请求 lpstat 检查打印机的状态 管理员命令列表 /usr/bin/disalbe 禁止指定的打印机 /usr/bin/enable 开启指定的打印机 /usr/lib/accept 使打印机可以接受打印请求 /usr/lib/reject 使打印机拒绝打印请求 /usr/lib/lpadmin 对打印机进行配置 /usr/lib/lpfilter 建立或改变处理程序定义 /usr/lib/lpforms 建立或改变预打印格式 /usr/lib/lpmove 转移打印请求 /usr/lib/lpsched 启动打印服务 /usr/lib/lpshut 关闭打印服务 /usr/lib/lpusers 设置或改变用户的打印请求优先级级优先级设置 |
基本概念 回复于:2005-06-04 13:27:52 |
我没有把手头所有的资料贴上来,因为有些是相同问题的不同处理,
另外我也没有完全测试过,贴上来的操作性我觉得比较强。 此外我自己使用过程的一点心得: unix下的打印设置基本是保存在文件中的,利用这一点可以很好的为我们服务。 比如我们安装了多台共享打印机后,但缺省打印机只有一个,而缺省打印机的名字存放在 /usr/spool/lp/default中 我们可以通过程序修改这个文件来设置缺省打印机,而程序可由用户执行,就不需要管理员参与了 其他的文件大家可以自己找一找(我没记下来,对不住了) 希望这些东西对大家有用 |
纳兰婷 回复于:2005-06-04 19:32:24 |
8错~~~好东东 |
jlccvixen 回复于:2005-06-05 21:42:48 |
不错是个好东东啊! |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/