linux - 无法在 Debian Squeeze 中检查 cups 打印机状态

标签 linux bash printing cups

对不起我的英语!

我正在使用 Debian squeeze,为了完成一项作业,我创建了 2 台虚拟 pdf cups 打印机。两者都工作得很好。 测试不同的管理命令;我尝试禁用其中一台打印机并将其队列文件移至第二台。我能够轻松做到。

现在,我想编写一个 bash 脚本来测试打印机的状态。因此,如果打印机被禁用,它只会执行“移动”脚本。 有没有办法知道杯子打印机的状态并在脚本中使用该信息?

例如,可以返回“O”的命令/函数表示杯子打印机已启用,否则返回“1”。

谢谢你的帮助,

最佳答案

正如 Andrei 提到的,您应该能够使用 lpstat 命令来处理这个问题。具体来说,尝试解析输出:

lpstat -p

在正常情况下,您会得到如下内容:

printer HP_DESKJET_940C is idle.  enabled since Mon 09 Aug 2010 10:42:20 PM CDT
printer HP_LaserJet_1012 is idle.  enabled since Mon 09 Aug 2010 10:36:26 PM CDT

当其中一台打印机出现问题时,“空闲”文本将会改变。我建议尝试使用虚拟打印机的状态,直到获得所需的输出。对于你的 bash 脚本,也许你想要这样的东西:

lpstat -p | grep -E 'HP_DESKJET.*\(idle|printing\)' >/dev/null || false

这一系列命令将测试您的打印机是否处于空闲或打印状态,如果不是,则将产生退出代码 1。否则,将产生退出代码 0。当然,您需要根据项目的需要调整打印机的名称和可用状态。

关于linux - 无法在 Debian Squeeze 中检查 cups 打印机状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941188/

相关文章:

c - 在一个套接字上订阅多个多播组(Linux,C)

c - 在c中使用gawk

linux - 如何计算linux机器中的内存利用率?

bash - 如何转义嵌套 bash 命令返回的空格

browser - 从网站/网络应用程序打印到标签打印机?

regex - 奇怪的 grep 角落案例?

linux - 在 Chromebook 的开发者控制台中更改键盘布局

c - SDL makefile 缺少分隔符

printing - Prolog 打印值作为结果而不是 true

java - 使用 java applet 在打印机中打印渲染的网页