操作系统: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),文件名等信息,这些信息也可以在管理页面查看。
参考:鸟哥私房菜