Hola, tenemos la solución a tu búsqueda, deslízate y la obtendrás un poco más abajo.
Solución:
Sí existe un programa: lpstat
– imprimir información sobre el estado de las tazas
$ lpstat -W completed
-W which-jobs Specifies which jobs to show, completed or not-completed (the default). This option must appear before the -o option and/or any printer names, otherwise the default (not-completed) value will be used in the request to the scheduler.
O si lo prefiere a través de la siguiente páginas web:
https://localhost:631/printers/[NameOfPrinter]?which_jobs=completed
http://localhost:631/jobs?which_jobs=completed
Atentamente
La otra respuesta cuando se probó produjo lo siguiente:
$ sudo lpstat -W completed
mfc-8480dn-1652 root 1024 Tue 28 Jan 2014 01:19:34 AM EST
Agregar un usuario, saml
te da el historial de ese usuario:
$ sudo lpstat -W completed -u saml | head -2
mfc-8480dn-1524 saml 23552 Thu 28 Nov 2013 10:45:44 AM EST
mfc-8480dn-1526 saml 699392 Sat 30 Nov 2013 10:34:34 AM EST
Pero el -u all
mencionado en estas preguntas y respuestas de U&L tituladas: Ver todos los trabajos de impresión del usuario desde la línea de comandos no hizo nada por mí.
$ sudo lpstat -W completed -u all | head -2
$
Curiosamente pude hacer esto:
$ sudo lpstat -W completed -u saml,root | head -3
mfc-8480dn-1524 saml 23552 Thu 28 Nov 2013 10:45:44 AM 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
Entonces, una forma ingeniosa de hacer esto sería formalizar una lista de los usuarios en su sistema y luego agregar eso como un subcomando al -u
argumento así:
$ sudo lpstat -W completed -u $(getent passwd |
awk -F: 'print $1' | paste -sd ',')
Solo para mostrar que esto ve a todos los usuarios localmente, puede obtener una lista única de sus usuarios así:
$ sudo lpstat -W completed -u $(getent passwd |
awk -F: 'print $1' | paste -sd ',') | awk 'print $2' | sort -u
ethan
root
sam
tammy
¿Problemas?
Un problema con esto es que si el usuario que imprime en CUPS no tiene una cuenta local, no se mostrarán.
Pero si tiene un directorio que contiene sus archivos de control LPD, normalmente es /var/spool/cups, you'll notice a bunch of control files in there. These files are kept as a result of the
Configuración de MaxJobs, que por defecto es 500 cuando no está configurada.
$ sudo ls -l /var/spool/cups/ | wc -l
502
¿Otra fuente de nombres de usuario?
Si revisa estos archivos, notará que contienen nombres de usuario, y no solo los de las cuentas que están presentes en el sistema.
$ strings /var/spool/cups/* | grep -A 1 job-originating-user-name | head -5
job-originating-user-name
tammyB
--
job-originating-user-name
tammyB
Así podríamos seleccionar todas las entradas que contengan el nombre de usuario seguido de la 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 se puede adaptar de la misma manera que se usó originalmente para tomar la lista de usuarios de getent passwd
al igual que:
$ 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
Referencias
- ¿Por qué /var/spool/cups es tan grande?
pienso /var/log/cups/page_log
etc. tiene el historial de trabajos completados.
Una alternativa es la interfaz web
http://localhost:631/
que también muestra los trabajos completados. No estoy seguro de dónde obtiene la información la interfaz web.