Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Achlinux Light&Dark I
Por Smithux
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Script Nagios + NRPE checa filas CUPS
Linux user
Publicado por Rogério Tomassoni em 07/05/2011

Login: tomassoni, 396747 pontos
[ Hits: 2040 ]

Script Nagios + NRPE checa filas CUPS

Script para atuar junto com Nagios que verifica filas de impressão CUPS. Funciona com NRPE.

Crie o script "check_imp_cups" com conteúdo abaixo, dê permissões de execução para o usuário que está executando o Nagios.

#!/bin/bash

# Script que verifica filas cups
# trabalhos parados.
# exit 1 = warning; exit 2 = Critico; exit 3 = Unknown

# Script que habilita caso esteja parada
habilita_imp="/usr/local/nagios/libexec/habilitaImpressorasCups"

# Script que reinicia os trabalhos parados
reinicia_trab="/usr/local/nagios/libexec/reiniciaTrabalhosCups"

# Testa primeiro argumento nome da fila
if [ -z "$1" ]
then
    echo "Informe nome da fila. Ex.: ./check_imp_cups nome_fila"
    exit 3
fi

# Notificacao
MSG=""

# A notificação via "netsend" só irá funcionar para notificar estações Windows com mensageiro ativo.
notificacao(){

    #Rogerio
    echo $MSG | smbclient -M sistema02 -I 10.1.5.50 -U "Impressora balcao NFE"

}

# Primeiro argumento nome da fila
nomeFila=$1

# Arquivo temporario
tmp_jobs="/tmp/$1-jobscups"

# Zera contador
count_job=0

# Verifica trabalhos parados, faz contagem
verifica_jobs_parados (){
        # Verifica todos os trabalhos parados
        jobs=$( lpq -P$nomeFila )
        echo "$jobs" > $tmp_jobs
        # Le arquivo criado com todos os trabalhos;
        while read JOB; do
        # Remove as linhas desnecessarias e cria um novo arquivo auxiliar
        if [ $count_job -gt 1 ]; then
        #echo "$JOB" >> $tmp_jobs_aux;
        job_owner=$(echo "$JOB" | tr -s " " ": "| cut -d: -f2)
        job_id=$(echo "$JOB" | tr -s " " ": "| cut -d: -f3)
        fi
        count_job=$(expr $count_job + 1);
        done < $tmp_jobs
        # Ajusta quantidade de trabalhos manipulados
        count_job=$(expr $count_job - 2);
}

ON_OFF=$(lpstat -p $nomeFila | grep -iw $nomeFila|cut -d" " -f3)
TRAB_ON_OFF=$(lpstat -a $nomeFila | grep -iw $nomeFila |cut -d" " -f2)

# Testa os estados da fila
if [[ "$ON_OFF" != "disabled" && "$ON_OFF" != "desativada" ]]; then
    if [[ "$TRAB_ON_OFF" = "accepting" || "$TRAB_ON_OFF" = "aceitando" ]]; then
     verifica_jobs_parados
    echo "Fila OK. Trab. parados: $count_job"
    exit 0;
    elif [[ "$TRAB_ON_OFF" != "accepting" || "$TRAB_ON_OFF" != "aceitando" ]]; then
    verifica_jobs_parados
    MSG="Verifique a fila: $nomeFila, desativada. Trab. parados: $count_job"
    #notificacao
    echo "Ativa, mas nao esta aceitando trabalhos. Trab. parados: $count_job"
    exit 1;
    fi
   elif [[ "$ON_OFF" = "disabled" || "$ON_OFF" = "desativada" ]]; then
   echo "Verifique a fila, desativada. Trab. parados: $count_job"
   MSG="Detectei a fila: $nomeFila, desativada. Com $count_job trab. parados. Se continuar recebendo esta msg realize procedimento manual."
   #Lembre-se isso só funciona para Windows com mensageiro ativo.
   notificacao

   exit 2;
  else
  echo "Verifique o script check_imp_cups, opcao desconhecida."
  exit 3;
fi
exit 3;

No nrpe.cfgi:

#Filas de impressao
command[check_nfebalba]=/usr/local/nagios/libexec/check_imp_cups <nome_da_fila>

Exemplo:

#Filas de impressao
command[check_nfebalba]=/usr/local/nagios/libexec/check_imp_cups nfebalba

No Nagios:

Crie por exemplo o arquivo filasImp.cfg (adicione-o no nagios.cfg) com o conteúdo:

define host{
   use generic-printer
   host_name Balcao BA
   alias nfebalba
   address 10.12.0.56
   hostgroups ImpressorasNFE
}

define service{
   use fila_imp
   host_name Balcao BA
   service_description Status Fila Imp.
   check_command check_nrpe_com_ssl_cups!check_nfebalba
}

Simples assim...


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Brincando com HTML - Jogo dos carrinhos
   Dica Linux recomendada Tenha seu próprio velocímetro de internet (teste de banda) em Flash
   Dica Linux recomendada Como transformar apresentações do BrOffice.org em páginas web ou imagens JPG
   Dica Linux recomendada Remover o enorme banner do Live Hotmail
   Dica Linux recomendada Como configurar um favicon

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.