Pular para o conteúdo

Filtrando trabalhos de impressão...

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
Marcelo de Souza Sant´Anna SantAnna
Hits: 4.917 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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
Download prnfltprinter1 Enviar nova versão

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

Dropando IPs

envia-bakcup

cal2svg gerador de calendários em formato vetorial SVG

Árvore de Natal do Julio Neves

Gera estatísticas de tráfego de pacotes nas interfaces de um servidor linux via SNMPv3.

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.