Невозможно проверить состояние принтера чашек в Debian Squeeze - PullRequest
1 голос
/ 15 октября 2010

Извините за мой английский!

Я использую Debian Squeeze и для задания я создал 2 виртуальных PDF-принтера для чашек.Оба работают очень хорошо.Чтобы проверить различные команды администрирования;я пытаюсь отключить один из принтеров и переместить его файл очереди во второй.Я могу сделать это легко.

Теперь я хочу написать bash-скрипт, который будет проверять состояние принтера.Так что, если принтер отключен, он просто выполняет сценарий «перемещение».Есть ли способ узнать состояние принтера с чашками и использовать эту информацию в сценарии?

Например, команда / функция, которая может возвращать «O», означает, что принтер чашек включен, и «1», еслинет.

Спасибо за помощь,

1 Ответ

1 голос
/ 28 января 2011

Как уже упоминал Андрей, вы должны иметь возможность использовать команду 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. Конечно, вам нужно настроить имя вашего принтера и доступные состояния в соответствии с потребностями вашего проекта.

...