Visualize todos os trabalhos de impressão do usuário na linha de comando

4

Estou executando o Fedora 17, Gnome (3?) e usando o bash do terminal. Sempre que eu executo lpstat , eu só obtenho uma lista dos meus trabalhos, mas toda vez que eu vou para recuperar meus trabalhos da impressora, outra pessoa está imprimindo e a minha nem sequer começou! O que dá?

Eu quero ver uma lista dos trabalhos de todos os usuários, não apenas dos meus.

Eu tentei lpq sem sucesso. Eu também tentei lpstat -t e o mesmo resultado - apenas meus trabalhos, não de qualquer outra pessoa. O que estou fazendo errado aqui?

    
por Eric Hepperle - CodeSlayer2010 01.02.2013 / 19:04

2 respostas

1

lpstat -u all (como root) deve mostrar todos os usuários e todos os trabalhos atualmente enfileirados:

-u <logon-IDs>

Imprime o status de solicitações de saída para usuários, no qual pode ser um ou todos os itens a seguir:

  • <user> - Um usuário no sistema local, como em lpstat -u user
  • <host!user> - Um usuário em um sistema, como em lpstat -u systema!user
  • <host!all> - Todos os usuários em um sistema específico, como em lpstat- u systema!all
  • <all!user> - Um usuário em particular em todos os sistemas, como em lpstat -u all!user
  • all - Todos os usuários em todos os sistemas especificados, como em lpstat -u all
por 01.02.2013 / 20:54
2

A resposta aceita não funcionou para mim, mas o método a seguir fez. No entanto, se você tiver um diretório que contenha seus arquivos de controle LPD, normalmente é a configuração / var / spool / cups , you'll notice a bunch of control files in there. These files are kept as a result of the MaxJobs, cujo padrão é 500 quando não definido.

$ sudo ls -l /var/spool/cups/ | wc -l
502

Outra fonte de nomes de usuários?

Se você examinar esses arquivos, perceberá que eles contêm nomes de usuários e não apenas aqueles que estão presentes no sistema.

$ strings /var/spool/cups/* | grep -A 1 job-originating-user-name | head -5
job-originating-user-name
tammyB
--
job-originating-user-name
tammyB

Assim, podemos selecionar todas as entradas que contenham o nome de usuário seguido pelo B.

$ sudo strings /var/spool/cups/* | grep -A 1 job-originating-user-name | \
    grep -oP '.*(?=B)' | sort -u
ethan
guest-AO22e7
root
sam
saml
slm
tammy

Esta lista pode então ser adaptada da mesma forma como estávamos usando originalmente para pegar a lista de usuários de getent passwd , assim:

$ sudo lpstat -W completed -u $(strings /var/spool/cups/* | \
    grep -A 1 job-originating-user-name | \
    grep -oP '.*(?=B)' |sort -u | paste -sd ',') 
mfc-8480dn-1525         tammy           545792   Thu 28 Nov 2013 01:36:59 PM EST
mfc-8480dn-1526         saml            699392   Sat 30 Nov 2013 10:34:34 AM EST
mfc-8480dn-1652         root              1024   Tue 28 Jan 2014 01:19:34 AM EST
mfc-8480dn-1672         saml              1024   Sun 09 Feb 2014 01:56:26 PM EST

Referências

por 08.10.2014 / 05:05