Еще вариант печати с сервера терминалов связка Winserver+Linux client (или аналог Screw Drivers)

Модераторы: dimbor, Модераторы разделов

Bedazzled
Сообщения: 311
ОС: ubuntu

Еще вариант печати с сервера терминалов связка Winserver+Linux client (или аналог Screw Drivers)

Сообщение Bedazzled »

данное решение меня очень выручило.

имеем:
сервер терминалов на Win2003 -1шт
клиенты ОС Linux для подключения по RDP , использую клиент REMMINA - 30шт

при пробросе принтера стандартными средствами win2003 есть минусы, во всяком случаи у меня они точно были.
- нужен драйвер тот или иной
- на некоторые принтеры очень долгий отклик печати с сервера
- переодически приходилось перезапускать "диспетчер очереди печати"

решение таково: клиент на сервере печатает на PDF принтер, файл падает в папку на пк клиента и скрипт его распечатывает на стороне клиента.

на сервер win2003 был устновлен PDFCreator , можете выбрать любой другой pdf принтер.
Был настроен так: всё что отправляется на него авто-сохраняется в нужную папку без лишних вопросов, мой путь:
\\tsclient\.tmp\ (.tmp это монтируемая папка)

на клиентах создаём подключение в remmina с нужными параметрами и указываем какую папку монтировать, в маём примере это:
/home/user/.tmp
теперь то что отправляется на печать будет попадать в эту папку.
INCRON будет отслеживать появления файла в папке и запускать скрипт.
За скрипт спасибо sgfault из этой темы

в incrontab -e добавляем наш скрипт:
/home/user/.tmp IN_CLOSE_WRITE /home/user/.tmp/conf/pdftoprint.sh

<путь> <событие> <команда>

не забываем сделать скрипт исполняемым.
перезагружаем компьютер и проверяем.

сам скрипт:

Код: Выделить всё

#!/bin/bash

DIR="$HOME/.tmp"
ERR_LOG="err.log"

cd "$DIR" || exit 1
find -maxdepth 1 -type f -iname "*.pdf*" -exec sh -euf -c 'l="$1"; f="$2"; if lp "$f" ; then rm "$f" ; else echo "Unable to print \"$f\"" >>"$l" ; fi' sh "$ERR_LOG" {} \;

exit 0
Спасибо сказали: