操作系统:centos6.0

主要软件:cups,samba,ghostpostscript

打印机:richo 3025

主要功能:通过samba将打印机共享给局域网用户,并实现对打印内容的监控

主要有三大步:本机安装打印机,通过samba共享,监控打印

步骤:1、安装cups,本文使用的是centos系统自带的cusp1.4.2的版本(主要包含cups,cups-libs)

yum install cups*;

2、nmap 打印机IP地址,查看打印机支持的协议端口(本文打印机支持的协议比较多,其中有一个Appsocket/HP JetDirect:9100),在添加打印机的时候,就知道此处的用处了。

3、浏览器输入http://localhost:631登录cups管理界面,选择administration->addprinter->appsocket/HPJetDirect->socket://hostname:9100

4、选择相应的打印机型号,确定即可

5、回到首页,printers->单击要选择的打印机->(有两个下拉列表框),其中一个有print test page,看打印是否成功。

至此完成本机安装打印机。

6、安装samba,修改配置文件:/etc/samba/smb.conf

注意:此处securty需为user,不然在告知samba,cups提供xp用户的驱动时,会出错。

[global]

...(仅列出打印机相关部分)

printcap name=cups

load printers=yes

printing=cups

[printers]共享名必须为printers

comment =All Printers

printable=yes

browsable=yes

public=yes

valid users=@users root可以使用的人员

path=/var/spool/samba打印队列的地方,暂存数据

printer admin=root打印机管理员

...

这样samba就可以提供打印服务了,但驱动还需要用户自己选择安装。

因为打印是通过postscript语言实现的,所以如果局域网内有多种打印机,也只需要提供postscript的驱动程序,用户就可以使用打印机了。

7、到http://www.cups.org/windows/software.php下载cups-windows-6.0-1.i386.rpm,并安装

8、到xp系统c:\windows\system32\spool\drivers\w32x86下把4个ps开头的文件,拷贝到服务器的/usr/share/cups/drivers/下,并全部改成小写

这里的驱动仅对xp用户有用

9、再次修改samba配置文件:vim /etc/samba/smb.conf

...

[print$]共享名必须是这个

comment=printer drivers

path=/etc/samba/drivers驱动存放路径

browable=yes

read only=yes

write list=root

...

10、重启samba服务:service smbd restart

11、告知samba,cups提供xp用户的驱动:cupsaddsmb -H samba主机名 -U root -a -v

注意此时的密码是驱动管理员的samba密码,不是系统用户的密码,可通过smbpasswd -a root进行设置

闪过很多信息,如果没有错误信息,在/etc/samba/drivers/下多出32x86目录,表示安装成功

到此为止,xp用户即可,自行下载打印机驱动,而无需手动安装驱动。如果要监控用户打印的内容,保证数据的安全,进行下面的配置。

12、在centos桌面,系统->管理->打印->服务器->高级->保留任务文件(允许重新打印)

13、文件保存在/var/spool/cups/,有以打印队列id命名的postscript,此文件一般比较大,打印几K的文件,此文件可达到10+M,由于此文件是postscript格式,里面的内容看不懂,而且文件相当大,不便于保存,因此想办法转换成其他格式

14、安装ghostscript

15、ps2pdf ps文件 out文件名,这样就会保存成pdf文档(用vim打开还是乱码,因此不便于自动化脚本读取处理,但临时没有进行其他的处理)

打印信息的log文件存放在:/var/log/cups/,page_log记录了,打印时间,用户(samba),文件名等信息,这些信息也可以在管理页面查看。

参考:鸟哥私房菜