У меня следующая проблема. Мои обычные рабочие файлы находятся на удаленном компьютере, к которому я могу подключиться по SSH. Я хочу иметь возможность печатать с удаленного компьютера на локальном принтере без необходимости печатать в файл, а затем в файл scp на локальный компьютер.
Мне нужен сценарий или программа, которую можно вызвать на удаленном компьютере, которая принимает файл в качестве аргумента (или считывает ввод из стандартного ввода, это не имеет значения) и каким-то образом выполняет lpr на локальной машине.
Ограничения: 1) На локальной машине не запущен SSH-сервер. Таким образом, у меня не может быть сценария, который возвращает файл scp на локальный компьютер и удаленно выполняет lpr.
2) На локальном компьютере нет почтового сервера, поэтому я не могу отправить файл по электронной почте и отфильтровать его локально.
Обе машины работают под управлением Linux с обычным набором программ, и я могу запускать свои собственные сценарии и компилировать программы. Любые идеи?
Предполагая, что на вашем локальном сервере Linux работает сервер печати, вы можете использовать переадресацию портов ssh, чтобы он работал ...
-R 515:localhost:515
Если на удаленном сервере уже работает сервер печати, я считаю возможным изменить порты, чтобы предотвратить конфликт.
Нашел нужную программу: bcvi использует обратную переадресацию портов, чтобы разрешить выполнение различных команд на локальном компьютере. Он плохо документирован и, в частности, делает серьезные предположения об установке, и в моем случае изменения по умолчанию, внесенные в файл инициализации оболочки, противоречат обработке переменной TERM в другом месте, но исходный код не требует пояснений и прост. модифицировать.
При печати с помощью управляющих кодов VT100 вы можете отправлять PostScript или другие двоичные файлы с помощью этих команд обратно на локальный принтер, ваш клиент может отличаться.
Some terminals support local printing:
Print Screen <ESC>[i
Print the current screen.
Print Line <ESC>[1i
Print the current line.
Stop Print Log <ESC>[4i
Disable log.
Start Print Log <ESC>[5i
Start log; all received text is echoed to a printer.