Instituto de Ciências Biológicas

UFMG - Universidade Federal de Minas Gerais

Ferramentas do usuário

Ferramentas do site


informatica:script_cups

O script abaixo pega a lista de impressoras fornecidas pelo comando lpstat e faz uma varredura verificando se o status da impressora está como “since” (pausado), caso a impressora esteja pausada, ela é despausada utilizando o comando cupsenable.

  • O script fica localizado no caminho /opt/cron_resume_prt/cron_resume_prt.sh
#!/bin/bash

prt_list=($(lpstat -t |cut -d ' ' -f2,4 | grep 'prt '))
prt_list_len=${#prt_list[@]}
prt_list_len=$((prt_list_len / 2))

for i in $(seq 0 $prt_list_len);
do
  prt=${prt_list[ (2 * i) ]}
  prt_status=${prt_list[ (2 * i) + 1 ]}
  if [[ $prt_status == "since" ]];
  then
      /usr/sbin/cupsenable "$prt"
  fi
done

Explicação dos comandos:

lpstat -t #mostra a lista de impressoras do servidor CUPS
cut -d ' ' -f2,4 #pega somente a segunda e a quarta coluna da lista do lpstat (nome da impressora e estado)
/usr/sbin/cupsenable "$prt" #despausa a impressora da lista que se encontra pausada

Adicione uma cron para o root executar a cada minuto, adicionando a linha abaixo no arquivo /var/spool/cron/root

*/1 * * * * sh /opt/cron_resume_prt/cron_resume_prt.sh

Criar a pasta para a montagem do script

mkdir /opt/cron_resume_prt/

Se o arquivo /var/spool/cron/root nao existir, crie ele e depois execute os comandos

chmod 600 /var/spool/cron/root
chown root.root /var/spool/cron/root
informatica/script_cups.txt · Última modificação: 2018/12/04 11:13 por mike