Script para verificar uma pasta, imprimir os arquivos e excluir esses arquivos

2

Estou procurando alguma orientação sobre como criar um script que verificará uma pasta específica, imprimirá todos os documentos (se houver algum) e excluirá esses documentos. Eu também gostaria de executar este script como um cron job.

A razão pela qual estou procurando fazer isso é porque eu tenho atualmente um webapp PHP que cria instantaneamente faturas em PDF e salva-as em uma certa pasta, mas não tenho como imprimir automaticamente esses documentos da web (imagino para problemas de segurança / spam).

Não sou preferência de idioma, mas seria ideal que o script controlasse quantas cópias são impressas, a bandeja a ser usada na impressora etc.

    
por user37353 17.04.2013 / 15:36

1 resposta

5

Eu não testei isso, mas isso deve funcionar:

cd some-directory

for file in *.pdf ; do
    lp -n2                        # number of copies
    -o media=a4\                  # media
    -o number-up=2\               # number of pages per sheet
    -o fit-to-page\               # scale to page
    -o sides=two-sided-long-edge\ # duplex (can be 'one-sided')
    -o tray1\                     # tray
    -d SomePrinter\               # device
    "$file"
    rm "$file"
done

Você precisará instalar e configurar os cups antes de poder usar lp . Veja a% man_de% manpage ( lp ) para mais informações sobre opções comuns.

Você pode querer arquivar os arquivos e excluí-los assim que souber que foram impressos.

Para isso, substitua man lp por:

mkdir archived
mv "$file" archived

Como mencionado em O comentário de Anthon , você pode querer implementar algum tipo de bloqueio de arquivo para garantir que o trabalho e os aplicativos do cron não interfiram uns nos outros. Para isso, você tem um poucas opções . rm "$file" é provavelmente sua melhor aposta; tem excelente suporte PHP.

Você pode jogar esse script em um cronjob. Apenas certifique-se de definir seu caminho para incluir flock e /usr/bin .

Não execute o script como um cronjob ou com seus arquivos reais até saber que funciona.

    
por 17.04.2013 / 15:57