L'altra risposta, una volta provata, ha prodotto quanto segue:
$ sudo lpstat -W completed
mfc-8480dn-1652 root 1024 Tue 28 Jan 2014 01:19:34 AM EST
L'aggiunta di un utente saml
ti fornisce la cronologia di quell'utente:
$ 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
Ma quanto -u all
menzionato in queste domande e risposte U&L dal titolo: Visualizza tutti i lavori di stampa dell'utente dalla riga di comando non ha fatto nulla per me.
$ sudo lpstat -W completed -u all | head -2
$
Curiosamente potrei farlo:
$ 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
Quindi un modo hacker per farlo sarebbe quello di formalizzare un elenco di utenti sul tuo sistema e quindi aggiungerlo come sottocomando -u
all'argomento in questo modo:
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',')
Solo per mostrare che questo vede tutti gli utenti localmente puoi ottenere un elenco unico dei tuoi utenti in questo modo:
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',') | awk '{print $2}' | sort -u
ethan
root
sam
tammy
Problemi?
Un problema con questo è se l'utente che stampa su CUPS non ha un account localmente, quindi non verrà visualizzato.
Ma se hai una directory che contiene i tuoi file di controllo LPD, in genere è l' , you'll notice a bunch of control files in there. These files are kept as a result of the
impostazione / var / spool / cups MaxJobs`, che per impostazione predefinita è 500 quando non impostata.
$ sudo ls -l /var/spool/cups/ | wc -l
502
Un'altra fonte di nomi utente?
Se guardi attraverso questi file noterai che contengono nomi utente e non solo quelli per gli account presenti sul sistema.
$ strings /var/spool/cups/* | grep -A 1 job-originating-user-name | head -5
job-originating-user-name
tammyB
--
job-originating-user-name
tammyB
Quindi potremmo selezionare tutte le voci che contengono il nome utente seguito da 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
Questo elenco può quindi essere adattato allo stesso modo in cui stavamo usando originariamente per prendere l'elenco degli utenti getent passwd
, in questo modo:
$ 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
Riferimenti