Controle total do CUPS

Publicado por julio cesar fais (última atualização em 08/12/2010)

[ Hits: 7.255 ]

Homepage: juliovarginha.blogspot.com

Download Cups_total_control.sh




Script com opção de instalar impressora, remover impressora, definir como padrão dentre outras.

Dependências: zenity, cups(cupsys)

  



Esconder código-fonte

#!/bin/bash
#script Júlio César Fais - Controle Total do Cups - 23 Novembro 2010
#julio.tecnico@bol.com.br
#juliovarginha.blogspot.com
#Dependencias: Zenity,cups(ou cupsys)


#########################################inicio da função visualizar impressora instalada (8)
function function_visualizar () {
a=$(lpstat -p -d;lpq)
zenity --info --text "$a"

}

#########################################inicio da função impressora padrão (7)
function function_padrao () {
`zenity --warning --text "Execute Como Administrador (root)!" --title "AVISO DO JULIO!!!"`
nomelocal=$(zenity --entry --text="Digite o Nome da Impressora que Será a Padrão" --title="Ex.: HP, Kyocera" --width=300)

/usr/sbin/lpadmin -d $nomelocal 2> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"

}

#########################################Inicio da função remover impressora (6)
function function_remover () {
`zenity --warning --text "Execute Como Administrador (root), ou Adicione seu usuario ao grupo lpadmin!" --title "AVISO DO JULIO!!!"`
nomelocal=$(zenity --entry --text="Digite o Nome da Impressora que Será Removida" --title="Ex.: HP, Kyocera" --width=300)

/usr/sbin/lpadmin -x $nomelocal 2> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"

}

##########################################inicio da função CANCELAR TRABALHOS E INICIAR IMPRESSORA (5)
function function_canc () {
nomelocal=$(zenity --entry --text="Digite o Nome da Impressora." --title="Ex.: HP, Kyocera" --width=300)
cancel -a $nomelocal
/usr/bin/enable $nomelocal
/usr/sbin/accept $nomelocal
lpadmin -p $nomelocal -E

}

##########################################inicio da função imprimir arquivo (4)
function function_imprimir () {

imp=$(zenity --entry --text="Digite o Nome da Impressora." --title="Ex.: HP, Kyocera" --width=300)
arquivo=$(zenity --file-selection --title "Escolha um Arquivo.")
lp -d $imp $arquivo &> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"

#outro comando idêntico=> lpr -P $imp $arquivo

}

###########################################inicio da função impressora remota windows (3)
function function_smb () {
`zenity --warning --text "Execute Como Administrador (root), ou Adicione seu usuario ao grupo lpadmin!" --title "AVISO DO JULIO!!!"`
nomelocal=$(zenity --entry --text="Digite o Nome para a Impressora..." --title="Ex.: HP, Kyocera" --width=300)
ipmicro=$(zenity --entry --text="Digite o IP do Micro com a Impressora Compartilhada..." --title="Ex.: 192.168.1.x" --width=300)
nomecompartilhado=$(zenity --entry --text="Digite o Nome da Impressora (Compartilhado)" --title="Atenção Nome Compartilhado" --width=300)
driverlocal=`zenity --file-selection --filename=/usr/share/foomatic/db/source/PPD/ --title "Escolha o Driver(.ppd)"`

/usr/sbin/lpadmin -p $nomelocal -E -v smb://$ipmicro/$nomecompartilhado -m $driverlocal

zenity --info --text "A Impressora $nomelocal Foi Instalada!."

}

###########################################Início da função paralela (2)
function  function_paralela () {
zenity --warning --text "Execute Como Administrador (root), ou Adicione seu usuario ao grupo lpadmin!" --title "AVISO DO JULIO!!!"
nomelocal=$(zenity --entry --text="Digite o Nome para a Impressora..." --title="Ex.: HP, Kyocera" --width=300)
driverlocal=`zenity --file-selection --filename=/usr/share/foomatic/db/source/PPD/ --title "Escolha o Driver(.ppd)"`

/usr/sbin/lpadmin -p $nomelocal -E -v parallel:/dev/lp0 -m $driverlocal


zenity --info --text "A Impressora $nomelocal Foi Instalada!."
clear

}

###########################################inicio da função (1)
function function_geral () {
`zenity --warning --text "Execute Como root, a seguir aparecerão seus dispositivos,anote o que for Necessário...Aguarde" --title "AVISO DO JULIO!!!"`
a=$(lpinfo -v) &> /tmp/2345678.txt
b=$(cat /tmp/2345678.txt)
zenity --info --text "$a"
disp=$(zenity --entry --text="Ex.: socket://10.1.1.1:9100, USB, HTTP://10.1.1.1:631/printers/imp." --title="Digite Caminho/Nome do Dispositivo" --width=300)
j=$(zenity --file-selection --filename=/usr/share/foomatic/db/source/PPD/  --title "Escolha o Driver (.ppd)") 
mkdir /tmp/jj
cp $j /tmp/jj
cd /tmp/jj
gzip -d *
driverlocal=$(cp /tmp/jj/*.ppd)

nomelocal=$(zenity --entry --text="Digite o Nome para a Impressora..." --title="Ex.: HP, Kyocera" --width=300)


lpadmin -p $nomelocal -E -v $disp -m $driverlocal -u allow:all -o printer-is-shared=true

mv /tmp/jj/*.ppd /etc/cups/ppd/$nomelocal.ppd
/etc/init.d/cups stop
/etc/init.d/cups start
/etc/init.d/cupsys stop
/etc/init.d/cupsys stop
a=$(lpstat -p -d;lpq)

zenity --info --text "A Impressora $nomelocal Foi Instalada!."
zenity --info --text "$a"

rm -fr /tmp/jj

}

################################################## MENU ######################################################################
while true; do
  acao="$(zenity --width=400 --height=370 --list --column "        ATENÇÃO...EXECUTE-O COMO ROOT." --title="          SCRIPT JULIO CUPS" \
    "1) INSTALAR => GERAL <=" \
    "2) ADICIONAR IMPRESSORA PARALELA LOCAL" \
   "3) ADICIONAR IMPRESSORA REMOTA NO WINDOWS" \
   "4) IMPRIMIR UM ARQUIVO" \
   "5) CANCELAR TRABALHOS E INICIAR IMPRESSORA" \
   "6) REMOVER IMPRESSORA" \
   "7) DEFINIR IMPRESSORA COMO PADRÂO" \
   "8) VISUALIZAR IMPRESSORAS INSTALADAS" \
   "   SAIR")"

case $acao in

"1) INSTALAR => GERAL <=")
function_geral ;;

"2) ADICIONAR IMPRESSORA PARALELA LOCAL")
function_paralela ;;

"3) ADICIONAR IMPRESSORA REMOTA NO WINDOWS")
function_smb ;;

"4) IMPRIMIR UM ARQUIVO")
function_imprimir ;;

"5) CANCELAR TRABALHOS E INICIAR IMPRESSORA")
function_canc ;;

"6) REMOVER IMPRESSORA")
function_remover ;;

"7) DEFINIR IMPRESSORA COMO PADRÂO" )
function_padrao ;;

"8) VISUALIZAR IMPRESSORAS INSTALADAS" )
function_visualizar ;;

*) exit ;;

esac

done

############################################### FIM #################################################
#script Júlio César Fais - Controle Total do Cups - 23 Novembro 2010
#julio.tecnico@bol.com.br
#juliovarginha.blogspot.com
#Dependencias: Zenity,cups(ou cupsys)

Scripts recomendados

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

Checa Host

Agenda de Contatos - Shell Script + MYSQL

shell script

Jogo de perguntas e respostas


  

Comentários
[1] Comentário enviado por removido em 11/12/2010 - 03:12h

Muito bom cara.

abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts