Привет! Многие из вас наверняка сталкивались с ситуацией, когда необходимо реализовать сканирование сети в офисе через Linux. У меня получилось что-то похожее, но немного с другой стороны.
Имеем: главный офис с основным терминальным сервером (Windows Server 2008R2), десяток филиалов, разбросанных по городу, подключенных к серверу через VPN-туннели.
Оборудование в каждой локации одинаковое — нетбук HP mini (была версия OpenSuse, но был переведён на Debian 6.0) и МФУ HP LaserJet M1214. Задача: реализовать возможность пользователю сканировать документы на сервере.
Поскольку на сервере у пользователя работает только одно приложение (клиент 1С), то для него это должно выглядеть как «нажал кнопку — сканирование в базе данных».
Как это должно было быть сделано: МФУ подключено к сети и может сканировать по сети.
Это означает, что пользователь просто выбирает свой сканер, и все в порядке.
Не так.
Оказалось, что МФУ не могут работать как сетевой сканер, одновременно установленный на одном ПК (в данном случае сервере).
Какой бы сканер не был выбран, всегда сканировался последний установленный.
Ответ техподдержки HP окончательно похоронил этот вариант. Короткий ответ был: «Это невозможно».
Менять оборудование не вариант - это дорого для нас (практически за наш счет, так как по ТЗ сканирование должно работать) и дорого для клиента.
Это означает, что вам нужно заставить МФУ сканировать «локально» на нетбуке и передать сканирование на сервер.
В этом случае пользователю необходимо сделать это из терминала – нажать на кнопку и подождать.
Хорошо, что есть такой проект, как HPLIP. Первая попытка подключить МФУ к нетбуку оказалась неудачной - версия Debian не самая новая и не поддерживает HP LJ M1214. Мне пришлось скачать и скомпилировать последнюю версию.
Здесь МФУ на удивление хорошо узнали и заработали, как на печать, так и на сканирование.
Далее нам нужно было автоматизировать процесс сканирования.
Для начала был создан простой скрипт, который запускал сканирование, сохранял результат в /tmp/scan и тут же конвертировал его в jpg. скан.
ш:
Параметром сценария является суффикс имени.#!/bin/bash mkdir /tmp/scan/ rm /tmp/scan/* scanimage --source Flatbed --format=pnm --resolution 100 --mode Gray > /tmp/scan/scan.$1.pnm &&convert /tmp/scan/scan.$1.pnm /tmp/scan/scan.$1.jpg
Качество сканирования не очень хорошее, но клиенту вполне достаточно.
Одно сканирование занимает около 300-400 кб.
Сканирует быстро и не слишком засоряет базу данных.
Теперь вам нужно заставить этот скрипт выполняться удаленно с терминала.
Здесь помог набор утилит из замечательного проекта Putty. А точнее две утилиты — plink.exe и pscp.exe. Первый отправляет команду сканирования, а второй принимает результат. В результате проб и ошибок был создан следующий bat-файл: c:\putty\plink.exe 192.168.%1.100 -l root -pw mypass /bin/scan.sh %2
c:\putty\pscp.exe -pw mypass [email protected].%1.100:/tmp/scan/*.
jpg %3
Каждая ветвь имеет номер, который соответствует последнему номеру подсети, который передается в качестве первого параметра.
А номер хоста — около 100. Второй параметр — это суффикс имени изображения.
Третий — место на сервере, где хранить темповые сканы до того, как 1с их схватит. Ну а дальше программисты 1С сделали заветную кнопку «Сканировать», которая запускала батник с параметрами специально для этого пользователя.
Чтобы не приходилось делать установку и настройку HPLIP в каждой точке с нуля, был сделан образ, который сильно сократил время работы в одной точке - в среднем до получаса.
В целом эта система работает без сбоев уже 2 месяца.
Спасибо за внимание! Теги: #linux #сетевое сканирование #Chulan #hplip
-
Обзор Acer Extensa Series Ex5635Ez-422G16Mn
19 Oct, 24 -
Волоф
19 Oct, 24 -
Control, Trackbar, Но С Двумя Ползунками
19 Oct, 24 -
Президент «Не Поддерживает» Ie6
19 Oct, 24 -
Виста
19 Oct, 24 -
Новый Алгоритм Яндекса Минусинск
19 Oct, 24