Filtrando trabalhos de impressão...

Publicado por Marcelo de Souza Sant´Anna 27/03/2005

[ Hits: 4.525 ]

Homepage: http://paginas.terra.com.br/informatica/marcelosantanna

Download prnfltprinter1




Este script filtra os trabalhos de impressão entre o samba e o cups.
Lembre-se de colocar este script em /usr/bin
Instale o CUPS e configure uma impressora. Ex printer1
Instale o SAMBA e compartilhe esta, acrescentando estas linhas no smb.conf:

...
[printer1]
...
printer name = printer1
print command = echo "`date`*%p*%f*%J*%z*%c*%u*%m--%M" >> /tmp/smbprnprinter1; \
                    prnfltprinter1; \
                    lp -d %p %f; rm %f

  



Esconder código-fonte

#!/bin/bash

# Arquivo de log criado pelo samba, cujo conteudo e:
# DATA*IMPRESSORA*TRABALHO*TITULO*TAMANHO*PAGINAS*USUARIO*COMPUTADOR
#
# DATA - Contem a data atual, no momento do pedido de impressao
# IMPRESSORA - Contem o nome da impressora
# TRABALHO - Contem o nome do trabalho gerado pelo samba
# TITULO - Contem o nome do titulo do documento
# TAMANHO - Contem o tamanho, em Kilobytes, do documento
# PAGINAS - Contem o numero de paginas pedidas.(Dependendo do gerenciador)
# USUARIO - Contem o nome do usuario que esta fazendo o pedido a impressao
# COMPUTADOR - Contem o nome do computador, seguido do endereco IP, que esta solicitando a impressao.
#
# EXEMPLO:
#
#      Mon Oct 25 04:54:38 BRST 2004*printer1*smbprn.00002172.ZFpgbN*Evol*2945k*0*santanna*cir-santanna--192.168.0.10
#
#
INLOGTOT=/tmp/smbprnprinter1

# verifica se o arquivo existe
if [[ -e $INLOGTOT ]]
then
  # variavel TLINHAS recebe o total de linhas
  TLINHAS=$(wc -l $INLOGTOT | cut -d " " -f1)

  # cria um loop, o numero de vezes de acordo com a quantidade de linhas
  for LINHA in $(seq 1 $TLINHAS)
  do
    # recebe o conteudo de cada linha, uma por loop.
    CONTEUDOLINHA=$(head -n $LINHA $INLOGTOT | tail -n 1)

    # variavel TRABALHO recebe o nome do trabalho, do documento, gerado pelo samba
    TRABALHO=$(echo $CONTEUDOLINHA | cut -d "*" -f3)

    # variavel TITULO recebe o titulo do documento
    TITULO=$(echo $CONTEUDOLINHA | cut -d "*" -f4)

    # Todos os trabalhos que nao tiverem no titulo algumas destas palavras serao excluidos...
    if [[ $(echo $TITULO | egrep -i -v '(evol|seagate|report|viewer|preview|client)') ]]
       then  rm -f /var/spool/samba/$TRABALHO
    fi
  done
  rm -f $INLOGTOT
fi

Scripts recomendados

Backup Automatizado (atualizado)

Gerando lista de arquivos mp3 do disco em arquivo de formato HTML

Pra quem não usa WhatsUp e Nagios mas tem um *inx.

Update no-ip utilizando Shell Script

Limpando memória em cache do sistema!!!


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts