无法在Debian Squeeze中检查杯子打印机状态

时间:2010-10-15 09:58:09

标签: linux bash printing cups

抱歉我的英文!

我正在使用Debian挤压和分配,我已经创建了2个虚拟pdf杯打印机。两者都运作良好。 测试不同的administion命令;我尝试禁用其中一个打印机并将其队列文件移动到第二个。我能够轻松完成。

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

例如,可以返回“O”的命令/功能是杯子打印机启用,否则为“1”。

感谢您的帮助,

1 个答案:

答案 0 :(得分: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.当然,您需要根据项目需要调整打印机名称和可用状态。