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

Цена договорная
08 марта 2021, 15:37 • 1 отклик • 34 просмотра
На сервер периодически в определенную папку по sftp закидываются файлы pdf. Размер от 10 кб до 25 мб. Количество страниц в файлах от 1 до 200.

Есть локальный скрипт, который мониторит эту папку. Как только в папке появляется файл, скрипт ожидает полной загрузки файла, после чего кидает его на печать через CUPs и затем переносит файл в папку, где хранятся уже распечатанные файлы.
Смотрите архив в приложении. В нем сам скрипт spooler, его конфиг spooler.conf и файл run для runit.

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

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

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