Вопрос или проблема
Я управляю системой клиента, которая печатает на несколько удаленных принтеров. Некоторые из них подключены к ПК и общие, поэтому на сервере они настроены как smb-принтеры.
Есть два сетевых линейных принтера, которые настроены на портах lpd. Они не поддерживают IPP или SMB.
В течение дня задания на печать работают нормально; они печатаются так, как и ожидается. Все они отключаются ночью. CUPS удерживает задания в очереди для них до следующего включения, и скрипт выдает команды cupsenable для повторного включения. Прямо сейчас я вижу, что задания находятся в очереди на нескольких принтерах последние 3 дня.
Однако для линейных принтеров задания не печатаются. Некоторые задания выполняются ночью и генерируют файлы спулов. Из журнала CUPS я вижу, что эти файлы были отправлены на устройство. Когда офис открывается утром, очереди только для этих двух принтеров пусты.
Сервер работает на Oracle Linux 9.4
Существует ли что-то в политике lpd, что не может проверить, отвечает ли принтер, и из-за этого задания теряются?
Ответ или решение
Проблема: Утеря печатных заданий в LPD
Введение
Управление печатью в распределённых системах — задача, требующая тщательного подхода и понимания всех тонкостей как программного обеспечения, так и аппаратного обеспечения. В данном случае мы имеем дело с системой, использующей несколько сетевых принтеров, в том числе линии принтеров, подключённых через LPD (Line Printer Daemon). Вопреки тому, что печать осуществляется корректно в течение рабочего времени, возникают проблемы с потерей заданий в ночное время, когда принтеры отключены.
Описание проблемы
На сервере Oracle Linux 9.4 настроены два сетевых принтера в режиме LPD, которые не поддерживают IPP или SMB. В течение рабочего дня они обрабатывают задания надлежащим образом. Однако после отключения принтеров на ночь, заказы, отправленные в ночное время, не сохраняются, что приводит к отсутствию документов в очереди на утро.
CUPS (Common Unix Printing System) сохраняет задания в очереди для SMB-принтеров, но, судя по логам, задания для LPD-принтеров не сохраняются должным образом.
Возможные причины проблемы
-
Проблемы с архитектурой LPD: LPD не всегда способен кросс-считывать статус принтера. Это может привести к тому, что задания отправляются даже когда принтер отключён, и в результате они теряются, не сохраняясь для дальнейшей печати.
-
Недостаточная обработка сбоев: LPD имеет свои ограничения в обработке ошибок и времени ожидания. Если принтер не отвечает, задание может быть сброшено в очередь без ведома оператора или администраторов системы.
-
Логика очереди CUPS: В CUPS заложены алгоритмы управления очередями, которые могут быть настроены недостаточно эффективно для работы с LPD. Важно убедиться, что необходимая конфигурация для моделей LPD установлена.
-
Проблемы совместимости: В зависимости от версии CUPS и драйверов для LPD-принтеров могут возникнуть несовместимости, которые приведут к потере данных. Также стоит рассмотреть возможность наличия ошибок в программном обеспечении, работающем на каждом из принтеров.
Рекомендации по решению проблемы
-
Настройка CUPS: Проверьте и настройте параметры CUPS для улучшенной поддержки LPD-принтеров. Убедитесь, что все необходимые опции сохранения заданий включены.
-
Логи и диагностика: Убедитесь, что включено расширенное ведение логов CUPS. Это позволит более детально изучить, что происходит с заданиями и почему они не обрабатываются после отключения принтеров.
-
Скрипты для управления принтерами: Обновите ваш скрипт, который включает в себя
cupsenable
, чтобы он также использовалlpstat
для проверки состояния принтеров перед отправкой задания и, при необходимости, включал их. -
Тестирование оборудования: Если возможно, протестируйте принтеры в условиях, аналогичных рабочим, с отправкой заданий в разные временные интервалы. Это может помочь выявить неожиданные проблемы.
-
Обратите внимание на политику LPD: Некоторые экземпляры LPD могут обладать различными политиками в зависимости от реализаций. Исследуйте документацию к вашей версии LPD и изучите возможности настройки времени ожидания и обработки заданий.
Заключение
Система печати, основанная на LPD, может столкнуться с различными проблемами, особенно в условиях, когда оборудование отключается на длительные промежутки времени. Важно критически оценить текущую настройку и логистику процесса печати, чтобы предотвратить потерю заданий. Свяжитесь с командой поддержки CUPS или изучите дополнительные ресурсы, чтобы найти оптимальное решение для вашей ситуации.