L'autre réponse lors de l'essai a produit ce qui suit:
$ sudo lpstat -W completed
mfc-8480dn-1652 root 1024 Tue 28 Jan 2014 01:19:34 AM EST
L'ajout d'un utilisateur saml
vous donne l'historique de cet utilisateur:
$ 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
Mais la -u all
mention dans cette Q&R U&L intitulée: Voir tous les travaux d'impression de l'utilisateur à partir de la ligne de commande n'a rien fait pour moi.
$ sudo lpstat -W completed -u all | head -2
$
Curieusement, je pourrais faire ceci:
$ 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
Donc, une façon hackée de le faire serait de formaliser une liste des utilisateurs de votre système, puis d'ajouter cela en tant que sous-commande à l' -u
argument comme ceci:
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',')
Juste pour montrer que cela voit tous les utilisateurs localement, vous pouvez obtenir une liste unique de vos utilisateurs comme ceci:
$ sudo lpstat -W completed -u $(getent passwd | \
awk -F: '{print $1}' | paste -sd ',') | awk '{print $2}' | sort -u
ethan
root
sam
tammy
Problèmes?
Un problème avec cela est que si l'utilisateur qui imprime sur CUPS n'a pas de compte local, il ne s'affichera pas.
Mais si vous disposez d'un répertoire contenant vos fichiers de contrôle LPD, il s'agit généralement du , you'll notice a bunch of control files in there. These files are kept as a result of the
paramètre / var / spool / cups MaxJobs, qui par défaut est 500 lorsqu'il n'est pas défini.
$ sudo ls -l /var/spool/cups/ | wc -l
502
Une autre source de noms d'utilisateurs?
Si vous regardez ces fichiers, vous remarquerez qu'ils contiennent des noms d'utilisateur, et pas seulement ceux des comptes présents sur le système.
$ strings /var/spool/cups/* | grep -A 1 job-originating-user-name | head -5
job-originating-user-name
tammyB
--
job-originating-user-name
tammyB
Nous pourrions donc sélectionner toutes les entrées contenant le nom d'utilisateur suivi du 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
Cette liste peut ensuite être adaptée de la même manière que nous utilisions à l'origine pour extraire la liste des utilisateurs getent passwd
, comme ceci:
$ 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
Les références