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