The accepted answer did not work for me but the following method did. However, if you have a directory that contains your LPD control files, typically it's /var/spool/cups
, you'll notice a bunch of control files in there. These files are kept as a result of theMaxJobs` setting, which defaults to 500 when unset.
$ sudo ls -l /var/spool/cups/ | wc -l
Another source of usernames?
If you look through these files you'll notice that they contain usernames, and not just ones for accounts that are present on the system.
$ strings /var/spool/cups/* | grep -A 1 job-originating-user-name | head -5
So we could select all the entries that contain the username followed by the B.
$ sudo strings /var/spool/cups/* | grep -A 1 job-originating-user-name | \
grep -oP '.*(?=B)' | sort -u
This list can then be adapted in the same way as we were originally using to take the list of users from
getent passwd, like so:
$ 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