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.
#!/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