linux下打印机共享及监控
操作系统: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),文件名等信息,这些信息也可以在管理页面查看。
参考:鸟哥私房菜
转载于:https://blog.51cto.com/sweetbear/763598
相关文章:

【H.264】x264命令详解:x264 --fullhelp
1、简述 宏区块: macroblock:。是一种图像压缩的术语。 宏区块是运动预测的基本单位,一张完整的图像(frame)通常会被切割成几个宏区块。h.264 的宏区块大小是可变的,常用 16x16 pixels。 帧类型 “帧”基础知识: 影片可以看作是由一张张连续的图片组成的,每幅图片就…

东大漆桂林、清华李涓子、复旦肖仰华等大牛确认出席CTA峰会!5月一起打卡杭州...
5月26日-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心召开。首届CTA核心技术及应用峰会将聚焦人工智能,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。20…

【Oracle Database】数据库用户管理
创建用户 SQL> create user soe identified by soe default tablespace soe temporary tablespace temp; User created.查询用户的默认表空间 SQL> set line 200 SQL> col username for a30 SQL> col account_status for a20 SQL> select username,account_stat…

MySQL两主多从,且故障转移配置
一、角色划分1、MySQL数据库规划主机名 IP地址 角色 mysql_server_idweiliaodb1 192.168.1.233 master1 1weiliaodb2 192.168.1.234 master2 2weiliaodb3 192.168.1.235 slave1 3monitor 192.168.1.240 mmm_mon -2、虚拟IP规划IP地址 角色192.168.1.10 writer192.168.1.20 read…

Go开发者路线图2019,请收下这份指南
整理 | Rachel责编 | 阿司匹林出品 | AI科技大本营(ID: rgznai100)Go是Google开发的一种静态、强类型、编译型、并发型,并具有垃圾回收功能的类C编程语言。2009以开源项目的形式发布,2012年发布1.0稳定版本,距今已经十…

【Ubuntu】在Ubuntu中设置永久的DNS
1、问题描述 ping不通域名,比如“ping www.baidu.com”时,报错“ping: unknown host www.baidu.com”。这是因为ubuntu默认情况下没有设置DNS。 在ubuntu上设置DNS的方法,修改“/etc/resolv.conf”,添加“nameserver 8.8.8.8”&a…

实习期间问题总结
主要针对实习期间,接触的部分问题进行总结,后续会不间断的补充,作为实习期间的回顾。 1,git ,github和gitlab的关系 git 是一个版本控制工具,github是一个用git做版本控制的项目托管平台,他是一个网站&…

在windows sever 2008系统中如何添加桌面体验功能
1.开启THEMES服务:运行-services.msc -找到Themes服务项,默认是禁用,改为自动。 2.运行服务器管理器:左窗口选择功能-右边点“添加功能”在弹出的“添加功能向导”窗口中拖到最下面,…

17篇论文入选CVPR 2019,百度AI都在关注什么?(附论文地址)
整理 | 阿司匹林出品 | AI科技大本营(公众号id:rgznai100)计算机视觉和模式识别大会CVPR 2019即将于6月在美国长滩召开,作为人工智能领域计算机视觉方向的重要学术会议,CVPR每年都会吸引全球最顶尖的学术机构和公司的研…

【GStreamer】在x264enc中设置profile级别
1、问题描述 在使用GStreamer生成h.264的rtmp流时,不知道怎么设置h.264的profile级别。默认一直是“high”: video/x-h264, ... profile=(string)high, ...2、解决方法 查看官网手册中,有如下解释 The H264 profile that is eventually used depends on a few settings. …

js 使用a标签 下载资源
文档 let data new Blob([hello ajanuw], {type: application/text})let src window.URL.createObjectURL(data)let dl document.createElement(a)dl.href src;dl.download hello.txtdl.click() 切片下载 let data new Blob([hello ajanuw], {type: application/text }) …

linux 新增swap分区
由于用vmware 物理机转换成虚拟机时 忘记把swap 分区转过来了,只能手动在系统里添加了 1建立1G 大小的交换分区 # dd if/dev/zore of/opt/swapfile bs1M count1024 2,设置交换分区文件 # mkswap /opt/swapfile 3.立即启用交换分区文件 # swapon /opt/swapfile 4.使系…

通过cookies跳过验证码登陆页面,直接访问网站的其它URL
我每次手动访问去NN网的一家酒店,就不需要登陆,一旦我用脚本打开就会让我登陆,而登陆页面又有验证码,不想识别验证码,所以就想:“通过cookies跳过验证码登陆页面,直接访问网站的其它URL”转载虫…

可视化深入理解损失函数与梯度下降 | 技术头条
作者 | Hugegene译者 | 刘畅责编 | Rachel出品 | AI科技大本营(id:rgznai100)【导语】本文对梯度函数和损失函数间的关系进行了介绍,并通过可视化方式进行了详细展示。另外,作者对三种常见的损失函数和两种常用的激活函…

【Qt】Linux上设置自启动后qApp->applicationDirPath()的返回值问题
1、问题描述 开发程序过程中,使用qApp->applicationDirPath()返回程序所在目录,一直没问题。但是在设置自启动后,qApp->applicationDirPath()返回的目录不是程序所在目录。 2、原因分析 查看qApp->applicationDirPath()官方手册&…

sqlserver 行转列
还写了一篇Linq 实现 DataTable 行转列有时间大家可以看一下 sqlserver把行转成列在我们编码中是经常遇到的我做一个小例子大家看一下 1 --创建一个表 2 create table PayPhoneMoney 3 ( 4 id int identity(1,1), 5 userName Nvarchar(20), 6 payType nvarchar(20)…

Javascript闭包和闭包的几种写法及用途
好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了。好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法、用法和用途。 一、什么是闭包和闭…

【GStreamer】使用capsfilter设置x264enc中的profile级别
1、问题描述 在【GStreamer】在x264enc中设置profile级别中,通过设置x264enc的属性,只将profile由high级别切换到main,但是在切换到baseline时,失败了。 2、解决方法 这里使用capsfilter,直接指定x264enc的profile。相关代码如下: // 创建元素 GstElement *h264enc =…

一文帮你梳理清楚:奇异值分解和矩阵分解 | 技术头条
作者 | K. Delphino译者 | Linstancy编辑 | Rachel出品 | AI科技大本营(id:rgznai100)【导读】在推荐系统的相关研究中,我们常常用到两个相关概念:矩阵分解和奇异值分解。这两个概念是同一种算法吗?两者到底…

[转]程序员技术练级攻略
2019独角兽企业重金招聘Python工程师标准>>> 月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我࿰…

聊天机器人落地及进阶实战 | 公开课速记
嘉宾 | 邵浩编辑 | suiling来源 | AI科技大本营在线公开课近年来,聊天机器人技术及产品得到了快速的发展。聊天机器人作为人工智能技术的杀手级应用,发展得如火如荼,各种智能硬件层出不穷。本次公开课中,AI科技大本营联合电子工业…

【GStreamer】官网基本教程学习(basic-tutorial)
目录 下载和编译basic-tutorial-1.c 直接创建管道播放视频basic-tutorial-2.c 创建元件-->装入管道-->连接元件0、gstreamer 函数调用顺序1、元素 videotestsrc 的 pattern 属性详解2、GST_BIN 将其它类型指针转换成 GstBin*basic-tutorial-3.c 信号触发后再连接元件0、g…

IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【中】...
上一篇文章中,我们已经完成了服务端数据库的搭建,本篇主要处理多【传统HTTP】【依赖CORE环境】客户端之间协同在线【SSO】以及不需要SSO的场景处理。 目标: 1)实现多类型客户端接入IdentityServer 后文简称【IDSV】 2)…

WEB SSH Ajaxterm客户端配置(1)
Ajaxterm是一款基于Web的SSH客户端软件,它是采用Python编写的,这也就保证了它能在多种Linux发行版的系统中使用,同时它的安装非常简单。实验环境:Centos 5.5 ip:192.168.20.165pcre-7.8.tar.gzAjaxterm-0.10.tar.gzn…

如何为回归问题选择最合适的机器学习方法?
作者 | 何从庆本文经授权转载自 AI算法之心(id:AIHeartForYou)在目前的机器学习领域中,最常见的三种任务就是:回归分析、分类分析、聚类分析。在之前的文章中,我曾写过一篇《15分钟带你入门sklearn与机器学…

【Qt】获取本地IP(IPv4)
1、问题描述 获取本地IP列表有“127.0.0.1”、IPv4、IPv6等,一般使用IPv4,如何从已经获取的IP列表中挑出IPv4。 2、解决方法 QString ipv4; auto ips = QNetworkInterface::allAddresses(); foreach (auto ip, ipps) {if ( (ip.

2.2元组介绍+字符串操作
元组可以理解为“一旦创建就不能再修改的列表”,所以也叫只读列表 语法:names("A","B","C","D") 他只有两个方法: ①count ②index 字符串操作: 示例:name"chan" 1…

医生再添新助手!深度学习诊断传染病 | 完整代码+实操
作者 | Dipanjan (DJ) Sarkar译者 | Monanfei编辑 | Rachel、Jane出品 | AI科技大本营(id:rgznai100)【导读】文本基于深度学习和迁移学习方法,对疟疾等传染病检测问题进行了研究。作者对疟疾的检测原理以及迁移学习理论进行了介绍…

DIV限制宽度,字符断行,避免变形
代码如下:<div style"width:740px;word-break:break-all;word-wrap:break-word;">参考文章怎么强制限制div宽度转载于:https://www.cnblogs.com/leftfist/archive/2012/02/07/4258078.html

【渗透】node.js经典问题
1.循环问题 当循环调用 require() 时,一个模块可能在未完成执行时被返回。例如以下情况:a.js: exports.done false; const b require(./b.js); console.log(在 a 中,b.done %j, b.done); exports.done true; console.log(a 结束); b.js: console.log…