Доработка скрипта для автоматической печати

3 000 руб. за проект
09 марта 2021, 12:03 • 4 отклика • 43 просмотра
На сервер периодически в определенную папку по sftp закидываются файлы pdf. Размер от 10 кб до 25 мб. Количество страниц в файлах от 1 до 200.

Есть локальный скрипт, который мониторит эту папку. Как только в папке появляется файл, скрипт ожидает полной загрузки файла, после чего кидает его на печать через CUPs и затем переносит файл в папку, где хранятся уже распечатанные файлы.
Скрипт здесь - https://www.dropbox.com/s/we8iengka3a7dhv/Druckserver.zip?dl=0
Сам скрипт spooler, его конфиг spooler.conf и файл run для runit.

Все в целом работает за исключением одного момента. Файл переносится в папку уже распечатанных файлов сразу же после того, как он уходит на печать в CUPs. В связи с этим мы сталкиваемся с ситуацией когда файл "вытаскивают" из папки до момента как он целиком попал в CUPs. В итоге мы получаем не полностью распечатанные документы. Это происходит редко, но происходит.

Мы пытались опытным путем установить задержку переноса файла в папку отработанных документов. Мы добились того, что все документы печатаются целиком, но при этом получили случаи дублей, когда файл печатается 2 раза, что вобщем неудивительно, потому как мониторинг папки успевает "отловить" файл 2 раза до момента его переноса.

Нам нужно доделать или переделать скрипт так, чтобы он работал как часы. Сервер с принтером находятся удаленно и печать файла не целиком или печать дублей приводит к куску дополнительной работы.