Очередь печати linux mint

Система печати CUPS в Linux

Практически все сервисные подсистемы, будь то графическая подсистема X Window, службы резервного копирования и т. д., для операционной системы (ОС) Linux, как и сама ОС построены на модели «клиент-сервер». Не стала исключением и служба печати, такая как CUPS. На сегодняшний день эта система является самой популярной для UNIX-подобных систем. А также активно развивается и поддерживается разработчиками. В данной статье речь пойдёт о том, что собой представляет система печати CUPS в целом. О принципах её работы, а также об особенностях её использования. Поскольку это может помочь как обычным пользователям, так и администраторам UNIX/Linux при использовании принтеров. Да и вообще задач печати.

Что собой представляет CUPS?

Система печати CUPS – это обычный веб-сервер (cupsd) и веб-клиенты, взаимодействующие между собой по протоколу HTTP. На самом деле обмен данными происходит по протоколу IPP (Internet Printing Protocol). Который является тем же HTTP, в который добавлена поддержка печати. В основе взаимодействия лежат отправка клиентами своих заданий с помощью метода POST протокола HTTP (IPP), а также запросы соответствующих статусов по методу GET всё по тому же протоколу.

По-умолчанию сервер cupsd работает по порту 631. Поскольку это типичный веб-сервер, то для него доступен веб-интерфейс для администрирования. Достаточно в любом браузере перейти по адресу http://хост_печати:631. В локальной системе это будет адрес http://localhost:631. Естественно, если сконфигурировать сеть и требуемые виртуальные хосты для работы с SSL (для должной безопасности или секретности), то можно также использовать и соответствующий порт для доступа к админке CUPS: https://хост_печати:433.

Также для администрирования cupsd существуют и обычные команды. Обычно над такими командами создаются соответствующие «обёртки» в виде графических утилит. Они доступны «из коробки» для любой графической среды. Соответствующие разделы обычно находятся в составе главных утилит по настройке системы. Также управление печатью и принтерами доступно через виджеты и апплеты рабочего стола. К примеру в GNOME или KDE.

Как работает CUPS?

Как уже было отмечено, сервер cupsd хоть и поддерживает использование командной оболочки для своего управления, всё же имеющийся веб-интерфейс более удобен. Но более консервативные пользователи или администраторы, которым лень настраивать/запускать X-сервер, могут легко обойтись и интерфейсом командной строки. Например, чтобы распечатать документ таким способом, следует выполнить команду:

$ lpr ~/Documents/week_report.pdf

Команда lpr передаст копию файла week_report.pdf на сервер cupsd. Который в свою очередь формирует для принтера очередь печати. Как только принтер будет доступен (готов для печати), сервер cupsd начнёт последовательную обработку очереди. В процессе работы CUPS читает файл документа, а также файл описания принтера (PPD-файл) для получения сведений о том, какие действия необходимо дополнительно выполнять, чтобы конкретный документ был корректно распечатан.

Читайте также:  Управление файлами в линукс

Процесс формирования задания для печати системой CUPS также довольно примечателен. Дело в том, что прежде чем задание будет сформировано, оно должно пройти сквозь конвейер подготовки. Который состоит из специализированных фильтров. Каждый из таких фильтров задаёт, в частности, некоторые параметры печати. Например, если пользователем было задано, чтобы на одном листе печаталось несколько страниц, то будет применён соответствующий фильтр и в итоге задание печати будет иметь определённый формат, зависящий от исходных параметров, заданных пользователем. Фильтры могут выполнять самые различные функции, например помогают принтерам выполнять растеризацию печатаемых изображений или просто инициализировать сам принтер.

Заключительным и важным этапом в работе системы CUPS является передача сформированного задания через внутренний интерфейс с узла (на котором работает сервер cupsd) непосредственно на принтер через поддерживаемый протокол и/или сетевой интерфейс, например через Ethernet. В обратном направлении передаются сведения о состоянии задания. Следующая команда выводит все доступные внутренние интерфейсы, через которые возможно взаимодействие с принтером:

$ locate backend | grep -i cups

После получения задания от сервера cupsd, принтер приступает (точнее пытается это сделать, поскольку попытки могут быть не всегда успешными) к его выполнению. В свою очередь, сервер печати, передав задание принтеру, возвращается к формированию других заданий и обработке запросов от клиентов.

Очереди печати

Для клиентов системы CUPS есть возможность управлять очередями печати, которые уже сформированы сервером cupsd. Таким образом можно откладывать задания, отменять, изменять их приоритет и даже переносить их между разными очередями.

Для получения информации об имеющихся заданиях и их состояниях существует команда:

Именно из её вывода можно получить номер (или идентификатор) задания, который потом используется для управления этим заданием. Таким образом осуществляется непосредственное управление очередями печати. К примеру, для того, чтобы отменить какое-либо задание в очереди следует выполнить команду:

Для получения информации о текущем состоянии сервера cupsd существует команда:

планировщик запущен назначение системы по умолчанию ML-2010 устройство для ML-2010: usb://Samsung/ML-2010?serial=3D678BKCN2671V. ML-2010 сейчас принимает запросы с момента Пн 18 фев 2019 17:36:51 принтер ML-2010 сейчас печатает ML-2010-1. Включен с момента Пн 18 фев 2019 17:36:51 Rendering completed ML-2010-1 john 450560 Пн 18 фев 2019 17:36:51

Использование нескольких принтеров

Когда в системе установлено и корректно настроено несколько принтеров, неплохо иметь какой-то один, используемый по-умолчанию. Это можно сделать, задав соответствующую переменную окружения PRINTER:

$ export PRINTER=имя_принтера

Или можно воспользоваться командой lpoptions, которая задаёт параметры работы (и использования) принтера по-умолчанию для текущей учётной записи пользователя:

Настройки, устанавливаемые по-умолчанию для пользователей хранятся в их домашних каталогах в файле ~/lpoptions. А для учётной записи администратора, для тех же целей существует файл /etc/cups/lpoptions.

Несколько экземпляров одного принтера

Система CUPS позволяет использовать один и тот же принтер для различных целей, определяя для него несколько режимов работы. Распространённым случаем является печать на одном принтере черновых (для экономии краски или тонера) и законченных документов с высококачественной печатью.

Читайте также:  Open dwg files linux

Всё, что нужно — это задать для принтера несколько его экземпляров со своими настройками, которые можно определить отдельно, как для «самостоятельного» принтера. Например, следующая команда для принтера ML-2010:

$ lpoptions -р ML-2010/2up -о number-up=2 -о job-sheets=standard

создаст для него экземпляр ML-2010/2up, который настроен таким образом, что будет печатать две страницы на листе, да ещё и добавлять к ним титульные страницы. Теперь для печати можно использовать команду lpr в следующем виде:

$ lpr -Р ML-2010/2up week_report.pdf

Как видно, ключ -P задаёт используемый принтер, в данном случае созданный экземпляр ML2010/2up для печати двух страниц на листе с соответствующими титульными страницами.

Печать по сети

Система CUPS обладает хорошей гибкостью для адаптации и развёртыванию в сетях. На каждом компьютере в сети работают свои сервера cupsd, которые при должной настройке можно заставить обмениваться информацией между собой. Благодаря этому возможен доступ к удалённым принтерам. Причём к тем, что находятся даже в других посетях. Все настройки для этого делаются в файле /etc/cups/cupsd.conf. Кроме того, этого же можно добиться, активировав соответствующие опции через веб-интерфейс сервера CUPS.

Пусть требуется, чтобы к серверам john (192.168.1.5) и michael (192.168.2.7). Которые находятся в разных подсетях, можно было получить доступ для печати из третьей подсети 192.168.3. Решением является организация «подчинённого» сервера печати (к примеру bob на 192.168.3.8). Путём добавления в его файл конфигурации cupsd.conf следующих строк:

BrowsePoll john BrowsePoll michael BrowseRelay 127.0.0.1 192.168.3.255

Как видно, первые две строки указывают «подчинённому» серверу bob запрашивать информацию у серверов john и michael о принтерах в их собственных подсетях. В третьей строке задаётся инструкция для предоставления полученной от john и michael информации о принтерах внутри подсети сервера bob.

Система CUPS довольно функциональная и позволяет решать широкий спектр задач, как например:

  • задание нескольких очередей для одного принтера со своими параметрами по-умолчанию;
  • балансировка нагрузки между несколькими принтерами с помощью отдельного сервера;
  • организация нескольких серверов для работы с несколькими экземплярами одного и того же принтера;
  • поддержка клиентов Windows;

Заключение

В заключении следует отметить, что при рассмотрении приводимых в примерах команд подробно не рассматривались сами команды. Поскольку эта информация не является принципиальной или труднодоступной. Обо всех интересующих деталях можно подробнее узнать, используя справочные руководства, например посредством команды man lpoptions. Сама же процедура настройки системы печати даже в сложных сетях трудностей обычно не вызывает. Если нет проблем с драйверами самих принтеров. Сама же система CUPS очень надёжна и стабильна. Не говоря уже о её гибкости и возможностях масштабирования. Неудивительно, что именно системой CUPS комплектуются все современные дистрибутивы Linux по-умолчанию.

Читайте также:  Create python gui linux

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Похожие записи:

Источник

34.12. Управление заданиями печати

Когда вы отправляете задание печати демону принтера, например, печатаете текстовый файл в Emacs или изображение в GIMP , это задание печати добавляется в очередь печати. Очередь печати представляет собой список заданий печати, отправленных на принтер, и содержит информацию о выполнении каждого задания, имя пользователя и компьютера, пославшего это задание, номер задания и т.д.

Если вы используете графическое окружение рабочего стола, щёлкните значок Диспетчер принтеров (Printer Manager) на панели, чтобы запустить Диспетчер печати GNOME (GNOME Print Manager) , показанный на рисунке 34-13 .

Рисунок 34-13. Диспетчер печати GNOME

Чтобы изменить параметры принтера, щёлкните правой кнопкой его значок и выберите Свойства (Properties) . При этом запускается программа Настройка принтера (Printer Configuration Tool) .

Дважды щёлкните настроенный принтер, чтобы просмотреть очередь печати, как показано на рисунке 34-14 .

Рисунок 34-14. Список заданий печати

Чтобы отменить определённое задание печати, показанное в Диспетчере печати GNOME (GNOME Print Manager) , выделите его в списке и выберите в выпадающем меню Изменить (Edit) => Отменить документы (Cancel Documents) .

Если в очереди печати находятся активные задания, в области уведомлений на панели рабочего стола может появиться значок уведомлений принтера, показанный на рисунке 34-15 . Так как он проверяет наличие активных заданий печати каждые пять секунд, он может не появляться, если задания имеют небольшой размер.

Рисунок 34-15. Значок уведомления принтера

Если вы щёлкните значок уведомления принтера, запустится Диспетчер печати GNOME (GNOME Print Manager) и покажет список текущих заданий печати.

Также на панели размещён значок Диспетчер печати (Print Manager) . Чтобы напечатать файл в Наутилусе , перейдите к размещению этого файла в файловой системе, потяните и отпустите его на значке Диспетчер печати (Print Manager) , расположенном на панели. При этом на экране появится окно, показанное на рисунке 34-16 . Нажмите OK , чтобы начать печать файла.

Рисунок 34-16. Окно проверки параметров печати

Чтобы просмотреть список заданий в очереди печати, используя приглашение оболочки, введите команду lpq . Последние несколько строк будут выглядеть примерно так:

Rank Owner/ID Class Job Files Size Time active user@localhost+902 A 902 sample.txt 2050 01:20:46

Пример 34-1. Пример сообщений команды lpq

Кроме этого вы можете напечатать файл прямо в приглашении оболочки. Например, команда lpr sample.txt распечатывает текстовый файл sample.txt . Фильтр печати определяет тип файла, и преобразует его содержимое в формат, понятный принтеру.

Источник

Оцените статью
Adblock
detector